huge merge
@@ -0,0 +1,141 @@
|
||||
local function Fooled()
|
||||
local phrases = {
|
||||
"hornswaggled",
|
||||
"bamboozled",
|
||||
"hoodwinked",
|
||||
"swindled",
|
||||
"duped",
|
||||
"hoaxed",
|
||||
"fleeced",
|
||||
"shafted",
|
||||
"caboodled",
|
||||
"beguiled",
|
||||
"finagled",
|
||||
"two-timed",
|
||||
"suckered",
|
||||
"flimflammed"
|
||||
}
|
||||
return phrases[math.random(#phrases)]
|
||||
end
|
||||
|
||||
local ssc = {
|
||||
"AJ Kelly as freem",
|
||||
"Jonathan Payne (Midiman)",
|
||||
"Colby Klein (shakesoda)",
|
||||
}
|
||||
|
||||
local sm_ssc = {
|
||||
"Jason Felds (wolfman2000)",
|
||||
"Alberto Ramos (Daisuke Master)",
|
||||
"Jack Walstrom (FSX)",
|
||||
}
|
||||
|
||||
local stepmania = {
|
||||
"Chris Danford",
|
||||
"Glenn Maynard",
|
||||
"Steve Checkoway",
|
||||
-- and various other contributors
|
||||
}
|
||||
|
||||
local contrib = {
|
||||
"Aldo Fregoso (Aldo_MX)", -- delays
|
||||
"Chris Eldridge (kurisu)", -- dance-threepanel
|
||||
"cerbo",
|
||||
"cesarmades", -- pump/cmd* noteskins
|
||||
"corec", -- various fixes
|
||||
"galopin", -- piu PlayStation2 usb mat support
|
||||
"gholms", -- automake 1.11 support
|
||||
"juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods
|
||||
"Kaox", -- pump/default noteskin
|
||||
"NitroX72", -- pump/frame noteskin
|
||||
"sy567", -- beginner helper fix
|
||||
"Thai Pangsakulyanont (theDtTvB)",
|
||||
"v1toko", -- x-mode from StepNXA
|
||||
}
|
||||
|
||||
local thanks = {
|
||||
"A Pseudonymous Coder", -- support
|
||||
"Bill Shillito (DM Ashura)", -- Music (not yet though)
|
||||
"cpubasic13", -- testing (a lot)
|
||||
"Dreamwoods",
|
||||
"Infamouspat", -- oitg bro
|
||||
"Jason Bolt (LightningXCE)",
|
||||
"Jousway", -- Noteskins
|
||||
"Matt1360", -- Automake magic + oitg bro
|
||||
"Mark Cannon (vyhd)", -- oitg bro + twirl/roll
|
||||
"Petriform", -- Music
|
||||
"Renard",
|
||||
"Ryan McKanna (Plaguefox)",
|
||||
}
|
||||
|
||||
local shoutout = {
|
||||
"The Lua team", -- lua project lead or some shit. super nerdy but oh hell.
|
||||
"Mojang", -- minecraft forever -freem
|
||||
"NAKET Coder",
|
||||
"Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits
|
||||
--Image(), -- we should have some logos probably to look super pro
|
||||
"You showed us... your ultimate dance",
|
||||
-- "Can't stop crying... buckets of tears!"
|
||||
}
|
||||
|
||||
local copyright = {
|
||||
"StepMania is released under the terms of the MIT license.",
|
||||
"If you paid for the program you've been " .. Fooled() .. ".",
|
||||
"All content is the sole property of their respectful owners."
|
||||
}
|
||||
|
||||
local sections = {
|
||||
{ "the spinal shark collective (project lead)", ssc },
|
||||
{ "sm-ssc Team", sm_ssc },
|
||||
{ "StepMania Team", stepmania },
|
||||
{ "Other Contributors", contrib },
|
||||
{ "Special Thanks", thanks },
|
||||
{ "Shoutouts", shoutout },
|
||||
{ "Copyright", copyright },
|
||||
}
|
||||
|
||||
-- To add people or sections modify the above.
|
||||
|
||||
local lineOn = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,3)
|
||||
local sectionOn = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,3)
|
||||
local item_padding_start = 4;
|
||||
|
||||
local creditScroller = Def.ActorScroller {
|
||||
SecondsPerItem = 0.5;
|
||||
NumItemsToDraw = 40;
|
||||
TransformFunction = function( self, offset, itemIndex, numItems)
|
||||
self:y(30*offset)
|
||||
end;
|
||||
OnCommand = cmd(scrollwithpadding,item_padding_start,15);
|
||||
}
|
||||
|
||||
local function AddLine( text, command )
|
||||
local text = Def.ActorFrame{
|
||||
LoadFont("Common normal")..{
|
||||
Text = text or "";
|
||||
OnCommand = command or lineOn;
|
||||
}
|
||||
}
|
||||
table.insert( creditScroller, text )
|
||||
end
|
||||
|
||||
-- Add sections with padding.
|
||||
for section in ivalues(sections) do
|
||||
AddLine( section[1], sectionOn )
|
||||
for name in ivalues(section[2]) do
|
||||
AddLine( name )
|
||||
end
|
||||
AddLine()
|
||||
AddLine()
|
||||
end
|
||||
|
||||
creditScroller.BeginCommand=function(self)
|
||||
SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (t.SecondsPerItem * (#t + item_padding_start) + 5) );
|
||||
end;
|
||||
|
||||
|
||||
return Def.ActorFrame{
|
||||
creditScroller..{
|
||||
InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64),
|
||||
}
|
||||
};
|
||||
@@ -1,9 +1,9 @@
|
||||
function GetLocalProfiles()
|
||||
local ret = {};
|
||||
local t = {};
|
||||
|
||||
for p = 0,PROFILEMAN:GetNumLocalProfiles()-1 do
|
||||
local profile=PROFILEMAN:GetLocalProfileFromIndex(p);
|
||||
local item = Def.ActorFrame {
|
||||
local ProfileCard = Def.ActorFrame {
|
||||
--[[ Def.Quad {
|
||||
InitCommand=cmd(zoomto,200,1;y,40/2);
|
||||
OnCommand=cmd(diffuse,Color('Outline'););
|
||||
@@ -22,10 +22,10 @@ function GetLocalProfiles()
|
||||
end;
|
||||
};
|
||||
};
|
||||
table.insert( ret, item );
|
||||
t[#t+1]=ProfileCard;
|
||||
end;
|
||||
|
||||
return ret;
|
||||
return t;
|
||||
end;
|
||||
|
||||
function LoadCard(cColor)
|
||||
@@ -38,14 +38,14 @@ function LoadCard(cColor)
|
||||
return t
|
||||
end
|
||||
function LoadPlayerStuff(Player)
|
||||
local ret = {};
|
||||
local t = {};
|
||||
|
||||
local pn = (Player == PLAYER_1) and 1 or 2;
|
||||
|
||||
--[[ local t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 200, 230) .. {
|
||||
Name = 'BigFrame';
|
||||
}; --]]
|
||||
local t = Def.ActorFrame {
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
Name = 'JoinFrame';
|
||||
LoadCard(Color('Orange'));
|
||||
--[[ Def.Quad {
|
||||
@@ -62,23 +62,13 @@ function LoadPlayerStuff(Player)
|
||||
OnCommand=cmd(diffuseshift;effectcolor1,Color('White');effectcolor2,color("0.5,0.5,0.5"));
|
||||
};
|
||||
};
|
||||
table.insert( ret, t );
|
||||
|
||||
t = Def.ActorFrame {
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
Name = 'BigFrame';
|
||||
LoadCard(PlayerColor(Player));
|
||||
};
|
||||
table.insert( ret, t );
|
||||
|
||||
--[[ t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 170, 20) .. {
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
Name = 'SmallFrame';
|
||||
}; --]]
|
||||
t = Def.ActorFrame {
|
||||
Name = 'SmallFrame';
|
||||
--[[ Def.Quad {
|
||||
InitCommand=cmd(zoomto,170+4,32+4);
|
||||
OnCommand=cmd(shadowlength,1);
|
||||
}; --]]
|
||||
InitCommand=cmd(y,-2);
|
||||
Def.Quad {
|
||||
InitCommand=cmd(zoomto,200-10,40+2);
|
||||
@@ -97,9 +87,8 @@ function LoadPlayerStuff(Player)
|
||||
OnCommand=cmd(diffuse,PlayerColor(Player);glow,color("1,1,1,0.25"));
|
||||
};
|
||||
};
|
||||
table.insert( ret, t );
|
||||
|
||||
t = Def.ActorScroller{
|
||||
t[#t+1] = Def.ActorScroller{
|
||||
Name = 'Scroller';
|
||||
NumItemsToDraw=6;
|
||||
-- InitCommand=cmd(y,-230/2+20;);
|
||||
@@ -114,34 +103,17 @@ function LoadPlayerStuff(Player)
|
||||
end;
|
||||
children = GetLocalProfiles();
|
||||
};
|
||||
table.insert( ret, t );
|
||||
|
||||
t = Def.ActorFrame {
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
Name = "EffectFrame";
|
||||
--[[ Def.Quad {
|
||||
InitCommand=cmd(y,-230/2;vertalign,top;zoomto,200,8;fadebottom,1);
|
||||
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
||||
};
|
||||
Def.Quad {
|
||||
InitCommand=cmd(y,230/2;vertalign,bottom;zoomto,200,8;fadetop,1);
|
||||
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
||||
}; --]]
|
||||
};
|
||||
table.insert( ret, t );
|
||||
--[[ t = Def.BitmapText {
|
||||
OnCommand = cmd(y,160);
|
||||
Name = 'SelectedProfileText';
|
||||
Font = "Common Normal";
|
||||
Text = 'No profile';
|
||||
}; --]]
|
||||
t = LoadFont("Common Normal") .. {
|
||||
t[#t+1] = LoadFont("Common Normal") .. {
|
||||
Name = 'SelectedProfileText';
|
||||
--InitCommand=cmd(y,160;shadowlength,1;diffuse,PlayerColor(Player));
|
||||
InitCommand=cmd(y,160;shadowlength,1;);
|
||||
};
|
||||
table.insert( ret, t );
|
||||
|
||||
return ret;
|
||||
return t;
|
||||
end;
|
||||
|
||||
function UpdateInternal3(self, Player)
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.5 KiB |
@@ -1,4 +1,4 @@
|
||||
[common]
|
||||
[common]
|
||||
Top=5
|
||||
Baseline=26
|
||||
LineSpacing=28
|
||||
@@ -42,4 +42,5 @@ line 2=큰탑터투트티펌페
|
||||
line 3=폼핑할함해행헤혀
|
||||
line 4=환회휘태난터까시
|
||||
line 5=간너샐러버문쳐달
|
||||
line 6=깡천림홍석
|
||||
line 6=깡천림홍석악전반
|
||||
line 7=채
|
||||
|
||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 400 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 429 B |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 239 B |
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 233 B |
|
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 263 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 250 B After Width: | Height: | Size: 226 B |
|
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 188 B |
|
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 156 B |
|
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 188 B |
|
Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 156 B |
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 577 B After Width: | Height: | Size: 577 B |
|
Before Width: | Height: | Size: 672 B After Width: | Height: | Size: 672 B |
|
Before Width: | Height: | Size: 488 B After Width: | Height: | Size: 488 B |
@@ -0,0 +1 @@
|
||||
_blank
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 981 B |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 104 B |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 104 B |
@@ -435,7 +435,7 @@ SoundResampleQuality=Advanced: Select the resampling quality to use.
|
||||
SoundVolume=Adjust the volume level during gameplay.
|
||||
SoundVolumeAttract=Adjust the volume level during attract mode.
|
||||
Speed=Speed
|
||||
Stepmania Credits=The Stepmania Development Team
|
||||
StepMania Credits=The StepMania Development Team.
|
||||
Steps=Steps
|
||||
Style=
|
||||
Test Input=Test the responsiveness of connected joysticks.
|
||||
@@ -534,6 +534,7 @@ x2.5=2.5x
|
||||
8=8
|
||||
8th=8th
|
||||
9=9
|
||||
Actual=Actual
|
||||
Add=Additive
|
||||
All Music=All Music
|
||||
AllDifficulties=All Difficulties
|
||||
@@ -706,6 +707,7 @@ Song BGAnimation=Song BGAnimation
|
||||
Song Bitmap=Song Bitmap
|
||||
Song Movie=Song Movie
|
||||
Space=Space
|
||||
Specified=Specified
|
||||
Split=Split
|
||||
Standard=Standard
|
||||
Start=Start
|
||||
@@ -822,6 +824,7 @@ Delete=Delete
|
||||
Delete beat and shift up=Delete beat and shift up
|
||||
Description=Description
|
||||
Difficulty=Difficulty
|
||||
Display BPM=Display BPM
|
||||
DisplayAspectRatio=Aspect Ratio
|
||||
DisplayColorDepth=Display Color
|
||||
DisplayResolution=Display Resolution
|
||||
@@ -843,6 +846,7 @@ Edit time signature (top)=Edit time signature (beats per measure)
|
||||
Edit time signature (bottom)=Edit time signature (single beat note value)
|
||||
Edit tickcount=Edit tickcount
|
||||
Edit combo=Edit combo
|
||||
Edit warp=Edit warp
|
||||
Editor options=Options
|
||||
EditorShowBGChangesPlay=Show Backgrounds
|
||||
Effect=Effect
|
||||
@@ -900,9 +904,11 @@ Low Meter=Low Meter
|
||||
Advanced Options=Advanced Options
|
||||
Main title=Main title
|
||||
Main title transliteration=Main title transliteration
|
||||
Max BPM=Max Specified BPM
|
||||
MaxTextureResolution=Texture Resolution
|
||||
MenuTimer=Menu Timer
|
||||
Meter=Meter
|
||||
Min BPM=Min Specified BPM
|
||||
Mines=Mines
|
||||
MoveRandomToEnd=Random At End
|
||||
More Options=More Options
|
||||
@@ -985,7 +991,7 @@ ShowSongOptions=Show Song Options
|
||||
ShowStats=Show Stats
|
||||
SmoothLines=SmoothLines
|
||||
SoundEffect=Sound Effect
|
||||
Stepmania Credits=Stepmania Credits
|
||||
StepMania Credits=StepMania Credits
|
||||
Center1Player=Center 1 Player
|
||||
Song=Song
|
||||
Song Group=Song Group
|
||||
@@ -1209,6 +1215,7 @@ Enter a new Time Signature numerator value.=Enter the number of beats per measur
|
||||
Enter a new Time Signature denominator value.=Enter the note value that represents one beat.
|
||||
Enter a new Tickcount value.=Enter a new Tickcount value.
|
||||
Enter a new Combo value.=Enter a new Combo value.
|
||||
Enter a new Warp value.=Enter the beat you will warp to when you reach this point.
|
||||
Enter a new artist transliteration.=Enter a new artist transliteration.
|
||||
Enter a new artist.=Enter a new artist.
|
||||
Enter a new genre.=Enter a new genre.
|
||||
@@ -1221,6 +1228,8 @@ Enter a new main title transliteration.=Enter a new main title transliteration.
|
||||
Enter a new main title.=Enter a new main title.
|
||||
Enter a new sub title transliteration.=Enter a new sub title transliteration.
|
||||
Enter a new sub title.=Enter a new sub title.
|
||||
Enter a new min BPM.=Enter the minimum displayed BPM.
|
||||
Enter a new max BPM.=Enter the maximum displayed BPM.
|
||||
More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted.
|
||||
No backgrounds available=No backgrounds available
|
||||
EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nCreate roll note:\n Hold Shift,\n then create a\n hold note.\nSpace bar:\n Set area\n marker\nEnter:\n Area Menu\nEscape:\n Main Menu\nF1:\n Show help\n
|
||||
@@ -2221,18 +2230,6 @@ HeaderText=Edit Course
|
||||
HelpText=&MENUUP;&MENUDOWN; Move &MENULEFT;&MENURIGHT; Change Value
|
||||
[ScreenOptionsCourseOverview]
|
||||
HeaderText=Course Overview
|
||||
[ScreenQuickSetupOverview]
|
||||
HeaderText=Quick Setup - Welcome!
|
||||
[ScreenQuickSetupPhaseOne]
|
||||
HeaderText=Quick Setup - Page 1: Profile
|
||||
[ScreenQuickSetupPhaseTwo]
|
||||
HeaderText=Quick Setup - Page 2: Gameplay
|
||||
[ScreenQuickSetupPhaseThree]
|
||||
HeaderText=Quick Setup - Page 3: Appearance
|
||||
[ScreenQuickSetupPhaseFour]
|
||||
HeaderText=Quick Setup - Page 4: Extra
|
||||
[ScreenQuickSetupFinished]
|
||||
HeaderText=Quick Setup - Finished!
|
||||
[ScreenSelectProfile]
|
||||
HeaderText=Select Profile
|
||||
[ScreenSelectPlayStyle]
|
||||
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 104 B |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 104 B |
@@ -71,6 +71,13 @@ Branch = {
|
||||
end;
|
||||
return "ScreenSelectProfile";
|
||||
end,
|
||||
OptionsEdit = function()
|
||||
-- Similar to above, don't let anyone in here with 0 songs.
|
||||
if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then
|
||||
return "ScreenHowToInstallSongs";
|
||||
end;
|
||||
return "ScreenOptionsEdit";
|
||||
end,
|
||||
AfterProfileLoad = function()
|
||||
return "ScreenSelectProfile"
|
||||
end,
|
||||
@@ -186,10 +193,4 @@ Branch = {
|
||||
Network = function()
|
||||
return IsNetConnected() and "ScreenTitleMenu" or "ScreenTitleMenu"
|
||||
end,
|
||||
QuickSetupStart = "ScreenQuickSetupOverview",
|
||||
QuickSetupA = "ScreenQuickSetupPhaseOne",
|
||||
QuickSetupB = "ScreenQuickSetupPhaseTwo",
|
||||
QuickSetupC = "ScreenQuickSetupPhaseThree",
|
||||
QuickSetupD = "ScreenQuickSetupPhaseFour",
|
||||
QuickSetupFinished = "ScreenQuickSetupFinished"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
function Actor:LyricCommand(side)
|
||||
self:settext( Var "LyricText" )
|
||||
self:draworder(102)
|
||||
|
||||
self:stoptweening()
|
||||
self:shadowlengthx(0)
|
||||
|
||||
@@ -40,7 +40,7 @@ v1.1
|
||||
* Cleaned up code some, I think.
|
||||
________________________________________________________________________________
|
||||
anticipated future changes:
|
||||
* M-Mod support (when sm-ssc imntegrates it)
|
||||
* M-Mod support (when sm-ssc integrates it)
|
||||
]]
|
||||
|
||||
-- ProfileDir(slot): gets the profile dir for slot,
|
||||
@@ -68,7 +68,7 @@ local function ParseSpeedModFile(path)
|
||||
return mods
|
||||
else
|
||||
-- error; write a fallback mod file and return it
|
||||
local fallbackString = "0.5x,0.75x,1x,1.75x,2x,2.25x,2.5x,C150,C300"
|
||||
local fallbackString = "0.5x,1x,1.5x,2x,3x,4x,8x,C200,C400"
|
||||
Trace("[CustomSpeedMods]: Could not read SpeedMods; writing fallback to "..path)
|
||||
file:Open(path, 2)
|
||||
file:Write(fallbackString)
|
||||
|
||||
@@ -141,6 +141,10 @@ function Actor:xy(actorX,actorY)
|
||||
self:y(actorY)
|
||||
end
|
||||
|
||||
function PositionPerPlayer(player, p1X, p2X)
|
||||
return player == PLAYER_1 and p1X or p2X
|
||||
end
|
||||
|
||||
-- MaskSource([clearzbuffer])
|
||||
-- Sets an actor up as the source for a mask. Clears zBuffer by default.
|
||||
function Actor:MaskSource(noclear)
|
||||
|
||||
@@ -64,6 +64,7 @@ OverlayScreens="ScreenSystemLayer,ScreenSyncOverlay,ScreenStatsOverlay,ScreenDeb
|
||||
PercentScoreDecimalPlaces=2
|
||||
|
||||
# 02 #
|
||||
|
||||
[LightsManager]
|
||||
# Mostly useless since it doesn't work, as well as that barely anyone has
|
||||
# lights to play around with.
|
||||
@@ -122,12 +123,39 @@ UnlockColor=color("1,0.5,0,1")
|
||||
ExtraColor=color("#ff0000") -- red
|
||||
|
||||
[UnlockManager]
|
||||
# Unlock specific things. we'll go in-depth with this one day, but it really
|
||||
# isnt what sm-ssc was designed for.
|
||||
# Unlock specific things.
|
||||
AutoLockChallengeSteps=false
|
||||
UnlockNames=""
|
||||
|
||||
# useful commands:
|
||||
# require,(UnlockRequirement),(value);
|
||||
# where (UnlockRequirement) is one of the UnlockRequirement enums.
|
||||
|
||||
# song,(Song Name);
|
||||
# sets a Song to be unlocked
|
||||
|
||||
# course,(Course Name);
|
||||
# sets a Course to be unlocked
|
||||
|
||||
# roulette;
|
||||
# Song shows up in roulette (useful with Song only)
|
||||
|
||||
# mod,(modifier);
|
||||
# sets a modifier to be unlocked.
|
||||
|
||||
# code,(code);
|
||||
# assigns a code to the unlock
|
||||
|
||||
# examples:
|
||||
# 1) The song "Pledge" requires 500 AP.
|
||||
# Unlock1Command=song,"Pledge";require,"UnlockRequirement_ArcadePoints",500
|
||||
|
||||
# 2) The song "ABC" can be unlocked via roulette; pick an arbitrary code
|
||||
# to use to store the unlock.
|
||||
# Unlock2Command=song,"ABC";code,"59183751";roulette
|
||||
|
||||
# 03 #
|
||||
|
||||
[ArrowEffects]
|
||||
# Complicated stuff you probably shouldn't ever mess with or else you'll
|
||||
# destroy mods completely!
|
||||
@@ -193,6 +221,8 @@ BottomEdge=SCREEN_BOTTOM
|
||||
# Scroll stuff when you roll over it, DDR Extreme style.
|
||||
ScrollRandom=false
|
||||
ScrollRoulette=false
|
||||
# Control how fast the banner scrolls. Higher numbers mean slower.
|
||||
ScrollSpeedDivisor=2
|
||||
|
||||
[BitmapText]
|
||||
# The colors in the 'roulette' text. you can have alot!
|
||||
@@ -233,6 +263,11 @@ FormatString="%03.0f"
|
||||
|
||||
[CodeDetector]
|
||||
# Codes on the MusicWheel that change stuff!
|
||||
# For Future Reference:
|
||||
# @ = Holding
|
||||
# - = In Conjuction With / Then
|
||||
# ~ = Released
|
||||
# + = At The Same Time
|
||||
PrevSteps1="Up,Up"
|
||||
PrevSteps2="MenuUp,MenuUp"
|
||||
NextSteps1="Down,Down"
|
||||
@@ -279,6 +314,7 @@ SaveScreenshot1="MenuLeft-MenuRight"
|
||||
SaveScreenshot2=""
|
||||
CancelAllPlayerOptions="Left,Right,Left,Right,Left,Right"
|
||||
BackInEventMode=""
|
||||
|
||||
[CodeDetectorOnline]
|
||||
Fallback="CodeDetector"
|
||||
PrevSteps1="MenuUp,MenuUp"
|
||||
@@ -337,6 +373,7 @@ TipShowTime=4
|
||||
TipSwitchTime=1
|
||||
# The Command when its made
|
||||
TipOnCommand=shadowlength,0;diffuseblink
|
||||
|
||||
[Judgment]
|
||||
# New #
|
||||
JudgmentOnCommand=
|
||||
@@ -438,6 +475,7 @@ PumpRoutineString="Routine"
|
||||
# Difficulty_Edit-StepsType_Pump_Halfdouble=Edit
|
||||
# Difficulty_Edit-StepsType_Pump_Double=Edit
|
||||
# Course=Progressive
|
||||
|
||||
[CustomScoring]
|
||||
# Custom scoring, usually good for custom games.
|
||||
|
||||
@@ -464,6 +502,7 @@ PointsCheckpointMiss=-5
|
||||
PointsNone=0
|
||||
PointsHoldHeld=+5
|
||||
PointsHoldLetGo=-5
|
||||
|
||||
[DifficultyList]
|
||||
# A list that shows difficulties in a song.
|
||||
CapitalizeDifficultyNames=false
|
||||
@@ -483,6 +522,9 @@ BannerFadeOffCommand=diffusealpha,1;stoptweening;linear,0.25;diffusealpha,0
|
||||
# ?
|
||||
BannerResetFadeCommand=diffusealpha,1
|
||||
|
||||
BannerRouletteCommand=
|
||||
BannerRandomCommand=
|
||||
|
||||
[Gameplay]
|
||||
# System Direction
|
||||
ComboIsPerRow=ComboPerRow()
|
||||
@@ -585,6 +627,7 @@ StreamX=0
|
||||
StreamY=0
|
||||
OverX=0
|
||||
OverY=0
|
||||
|
||||
[LifeMeterBattery]
|
||||
# The bar that shows up in Oni mode.
|
||||
|
||||
@@ -627,7 +670,6 @@ DancePointsP2Y=0
|
||||
DancePointsP2OnCommand=zoom,0.7;shadowlength,0;diffuse,PlayerColor(PLAYER_2)
|
||||
DancePointsP2OffCommand=
|
||||
|
||||
|
||||
[LifeMeterTime]
|
||||
# The Lifemeter that shows up when you're playing survival.
|
||||
|
||||
@@ -838,16 +880,19 @@ PortalColor=color("1,0,0,1")
|
||||
|
||||
SortOrders={ "SortOrder_Preferred", "SortOrder_Group", "SortOrder_Title", "SortOrder_BPM", "SortOrder_Artist", "SortOrder_Genre" }
|
||||
# SortOrders={ "SortOrder_Preferred", "SortOrder_Group", "SortOrder_Title", "SortOrder_BPM", "SortOrder_Popularity", "SortOrder_Artist", "SortOrder_Genre" }
|
||||
#
|
||||
|
||||
ShowRoulette=true
|
||||
ShowRandom=false
|
||||
ShowPortal=false
|
||||
#
|
||||
|
||||
SortBPMDivision=20
|
||||
SortLengthDivision=5
|
||||
|
||||
MostPlayedSongsToShow=30
|
||||
RecentSongsToShow=30
|
||||
#
|
||||
|
||||
UseEasyMarkerFlag=false
|
||||
#
|
||||
|
||||
ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent"
|
||||
# ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent,NormalMode,BattleMode"
|
||||
ChoicePreferred="sort,Preferred"
|
||||
@@ -870,7 +915,7 @@ ChoiceLength="sort,Length"
|
||||
ChoiceRecent="sort,Recent"
|
||||
ChoiceNormalMode="playmode,regular"
|
||||
ChoiceBattleMode="playmode,battle"
|
||||
#
|
||||
|
||||
CustomWheelItemNames=""
|
||||
|
||||
[CourseWheel]
|
||||
@@ -963,6 +1008,7 @@ RoutineNoteSkinP2=RoutineSkinP2()
|
||||
BPMColor=color("1,0,0,1")
|
||||
StopColor=color("0.8,0.8,0,1")
|
||||
DelayColor=color("0,0.8,0.8,1")
|
||||
WarpColor=color("1,0,0.5,1")
|
||||
TimeSignatureColor=color("1,0.55,0,1")
|
||||
TickcountColor=color("0,1,0,1")
|
||||
ComboColor=color("0.55,1,0,1")
|
||||
@@ -970,13 +1016,15 @@ ComboColor=color("0.55,1,0,1")
|
||||
BPMIsLeftSide=true
|
||||
StopIsLeftSide=true
|
||||
DelayIsLeftSide=true
|
||||
WarpIsLeftSide=false
|
||||
TimeSignatureIsLeftSide=true
|
||||
TickcountIsLeftSide=false
|
||||
ComboIsLeftSide=false
|
||||
#
|
||||
BPMOffsetX=60
|
||||
StopOffsetX=10
|
||||
DelayOffsetX=10
|
||||
StopOffsetX=50
|
||||
DelayOffsetX=120
|
||||
WarpOffsetX=60
|
||||
TimeSignatureOffsetX=30
|
||||
TickcountOffsetX=10
|
||||
ComboOffsetX=30
|
||||
@@ -1095,7 +1143,6 @@ TextOffCommand=
|
||||
|
||||
[ScoreDisplayOni]
|
||||
|
||||
|
||||
[ScoreDisplayLifeTime]
|
||||
FrameX=
|
||||
FrameY=
|
||||
@@ -1245,6 +1292,7 @@ SoundProperty="Pitch"
|
||||
PropertyMin=7/8
|
||||
PropertyCenter=1.0
|
||||
PropertyMax=9/8
|
||||
|
||||
[StepsDisplayListRow]
|
||||
FrameX=0
|
||||
FrameY=0
|
||||
@@ -1321,6 +1369,7 @@ ShowTraining=false
|
||||
BlinkPlayersBest=true
|
||||
|
||||
# 04 #
|
||||
|
||||
[Screen]
|
||||
ScreenInitCommand=
|
||||
ScreenOnCommand=
|
||||
@@ -1371,6 +1420,7 @@ HeaderTextOffCommand=
|
||||
|
||||
LineOnCommand=zoom,0.75
|
||||
#
|
||||
|
||||
[ScreenSystemLayer]
|
||||
Class="ScreenSystemLayer"
|
||||
Fallback="Screen"
|
||||
@@ -1421,6 +1471,7 @@ Fallback="Screen"
|
||||
StatusOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+150;shadowlength,2;strokecolor,color("#000000");
|
||||
AdjustmentsOnCommand=x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y;
|
||||
#
|
||||
|
||||
[ScreenStatsOverlay]
|
||||
Class="ScreenStatsOverlay"
|
||||
Fallback="Screen"
|
||||
@@ -1434,6 +1485,7 @@ SkipOnCommand=zoom,0.5
|
||||
SkipWidth=190
|
||||
SkipSpacingY=14
|
||||
#
|
||||
|
||||
[ScreenWithMenuElements]
|
||||
Class="ScreenWithMenuElements"
|
||||
Fallback="Screen"
|
||||
@@ -1657,21 +1709,18 @@ Choice1="applydefaultoptions;text,Game Start;screen,"..Branch.StartGame()
|
||||
Choice2="screen,ScreenNetworkOptions;text,Play Online"
|
||||
Choice3="screen,ScreenSelectGame;text,Select Game"
|
||||
Choice4="screen,ScreenOptionsService;text,Options"
|
||||
Choice5="screen,ScreenOptionsEdit;text,Edit/Share"
|
||||
Choice5="text,Edit/Share;screen,"..Branch.OptionsEdit()
|
||||
Choice6="screen,ScreenJukeboxMenu;text,Jukebox"
|
||||
Choice7="screen,ScreenExit;text,Exit"
|
||||
Choice8="screen,ScreenTest;text,Sandbox"
|
||||
Choice9="screen,ScreenQuickSetupOverview;text,Setup"
|
||||
# Aliases for the future.
|
||||
ChoiceSetup="screen,ScreenQuickSetupOverview;text,Setup"
|
||||
ChoiceGameStart="applydefaultoptions;screen,ScreenSelectProfile;text,Game Start"
|
||||
ChoiceGameStart="applydefaultoptions;text,Game Start;screen,"..Branch.StartGame()
|
||||
ChoiceOnline="screen,ScreenNetworkOptions;text,Play Online"
|
||||
ChoiceGameSelect="screen,ScreenSelectGame;text,Select Game"
|
||||
ChoiceOptions="screen,ScreenOptionsSystemDirection;text,Options"
|
||||
ChoiceEdit="screen,ScreenOptionsEdit;text,Edit/Share"
|
||||
ChoiceEdit="text,Edit/Share;screen,"..Branch.OptionsEdit()
|
||||
ChoiceJukebox="screen,ScreenJukeboxMenu;text,Jukebox"
|
||||
ChoiceSandbox="screen,ScreenTest;text,Sandbox"
|
||||
ChoiceSetup="screen,ScreenQuickSetupOverview;text,Setup"
|
||||
ChoiceExit="screen,ScreenExit;text,Exit"
|
||||
#
|
||||
AllowRepeatingInput=true
|
||||
@@ -1720,87 +1769,7 @@ LogoX=SCREEN_CENTER_X
|
||||
LogoY=SCREEN_CENTER_Y-80
|
||||
LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,8,0;zoom,0;bounceend,0.35;zoom,1
|
||||
LogoOffCommand=
|
||||
[ScreenQuickSetupOverview]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenSelectMaster"
|
||||
#
|
||||
NextScreen=Branch.QuickSetupA
|
||||
PrevScreen=Branch.TitleMenu()
|
||||
#
|
||||
TimerSeconds=-1
|
||||
#
|
||||
DefaultChoice="Start"
|
||||
ChoiceNames="Start,Back"
|
||||
#
|
||||
ChoiceStart="name,Start;screen,".. Branch.QuickSetupA
|
||||
ChoiceBack="name,Back;screen,".. Branch.TitleMenu
|
||||
#
|
||||
PerChoiceScrollElement=false
|
||||
PerChoiceIconElement=false
|
||||
#
|
||||
ShowScroller=true
|
||||
WrapScroller=false
|
||||
ShowIcon=true
|
||||
[ScreenQuickSetupPhaseOne]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenQuickSetupOverview"
|
||||
#
|
||||
NextScreen=Branch.QuickSetupBl
|
||||
PrevScreen=Branch.QuickSetupStart
|
||||
#
|
||||
DefaultChoice="Set"
|
||||
ChoiceNames="Set,Back"
|
||||
#
|
||||
ChoiceSet="name,Set;screen,".. Branch.QuickSetupB
|
||||
ChoiceBack="name,Back;screen,".. Branch.QuickSetupStart
|
||||
[ScreenQuickSetupPhaseTwo]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenQuickSetupOverview"
|
||||
#
|
||||
NextScreen=Branch.QuickSetupC
|
||||
PrevScreen=Branch.QuickSetupA
|
||||
#
|
||||
DefaultChoice="Set"
|
||||
ChoiceNames="Set,Back"
|
||||
#
|
||||
ChoiceSet="name,Set;screen,".. Branch.QuickSetupC
|
||||
ChoiceBack="name,Back;screen,".. Branch.QuickSetupA
|
||||
[ScreenQuickSetupPhaseThree]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenQuickSetupOverview"
|
||||
#
|
||||
NextScreen=Branch.QuickSetupD
|
||||
PrevScreen=Branch.QuickSetupB
|
||||
#
|
||||
DefaultChoice="Set"
|
||||
ChoiceNames="Set,Back"
|
||||
#
|
||||
ChoiceSet="name,Set;screen,".. Branch.QuickSetupD
|
||||
ChoiceBack="name,Back;screen,".. Branch.QuickSetupB
|
||||
[ScreenQuickSetupPhaseFour]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenQuickSetupOverview"
|
||||
#
|
||||
NextScreen=Branch.QuickSetupFinished
|
||||
PrevScreen=Branch.QuickSetupC
|
||||
#
|
||||
DefaultChoice="Set"
|
||||
ChoiceNames="Set,Back"
|
||||
#
|
||||
ChoiceSet="name,Set;screen,".. Branch.QuickSetupFinished
|
||||
ChoiceBack="name,Back;screen,".. Branch.QuickSetupC
|
||||
[ScreenQuickSetupFinished]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenQuickSetupOverview"
|
||||
#
|
||||
NextScreen=Branch.TitleMenu()
|
||||
PrevScreen=Branch.QuickSetupD
|
||||
#
|
||||
DefaultChoice="Set"
|
||||
ChoiceNames="Set,Back"
|
||||
#
|
||||
ChoiceSet="name,Set;screen,".. Branch.TitleMenu
|
||||
ChoiceBack="name,Back;screen,".. Branch.QuickSetupD
|
||||
|
||||
[ScreenProfileLoad]
|
||||
Class="ScreenProfileLoad"
|
||||
Fallback="ScreenWithMenuElementsBlank"
|
||||
@@ -1817,7 +1786,7 @@ LoadEdits=true
|
||||
Fallback="ScreenWithMenuElements"
|
||||
Class="ScreenSelectProfile"
|
||||
#
|
||||
ScreenOnCommand=lockinput,1
|
||||
ScreenOnCommand=%function(self) self:lockinput(3); end;
|
||||
#
|
||||
NextScreen=Branch.AfterSelectProfile()
|
||||
PrevScreen=Branch.TitleMenu()
|
||||
@@ -1830,7 +1799,8 @@ CodeUp="+MenuUp"
|
||||
CodeUp2="+Up"
|
||||
CodeDown="+MenuDown"
|
||||
CodeDown2="+Down"
|
||||
CodeStart="Start"
|
||||
# Holding Start let us skip ( annoying )
|
||||
CodeStart="~Start,+Start"
|
||||
CodeBack="Back"
|
||||
CodeCenter="Center"
|
||||
CodeDownLeft="DownLeft"
|
||||
@@ -1850,16 +1820,16 @@ DefaultChoice="Single"
|
||||
ChoiceNames=GameCompatibleModes()
|
||||
#
|
||||
OptionOrderAuto="1:2,2:1"
|
||||
ChoiceSingle="name,Single;style,single;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceDouble="name,Double;style,double;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceSolo="name,Solo;style,solo;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceVersus="name,Versus;style,versus;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceCouple="name,Couple;style,couple;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice5Keys="name,5Keys;style,single5;;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice7Keys="name,7Keys;style,single7;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice10Keys="name,10Keys;style,double10;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice14Keys="name,14Keys;style,double14;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceSingle="name,Single;style,single;text,Single;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceDouble="name,Double;style,double;text,Double;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceSolo="name,Solo;style,solo;text,Solo;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceVersus="name,Versus;style,versus;text,Versus;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceCouple="name,Couple;style,couple;text,Couple;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;text,HalfDouble;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice5Keys="name,5Keys;style,single5;text,5Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice7Keys="name,7Keys;style,single7;text,7Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice10Keys="name,10Keys;style,double10;text,10Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||
Choice14Keys="name,14Keys;style,double14;text,14Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||
ChoiceKB7="name,kb7;style,single;screen,"..Branch.AfterSelectPlayMode()
|
||||
#
|
||||
PerChoiceScrollElement=false
|
||||
@@ -1880,7 +1850,7 @@ PrevScreen=Branch.TitleMenu()
|
||||
#
|
||||
TimerSeconds=40
|
||||
#
|
||||
DefaultChoice="Easy"
|
||||
DefaultChoice="Normal"
|
||||
ChoiceNames="Normal,Rave,Extended,Oni,Endless"
|
||||
#
|
||||
PerChoiceScrollElement=false
|
||||
@@ -1890,13 +1860,13 @@ ShowScroller=true
|
||||
WrapScroller=true
|
||||
ShowIcon=false
|
||||
#
|
||||
ChoiceEasy="applydefaultoptions;name,Easy;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||
ChoiceNormal="applydefaultoptions;name,Normal;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||
ChoiceHard="applydefaultoptions;name,Hard;playmode,regular;difficulty,hard;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||
ChoiceRave="applydefaultoptions;name,Rave;playmode,rave;screen,ScreenSelectMusic;setenv,sMode,Rave"
|
||||
ChoiceExtended="applydefaultoptions;name,Extended;playmode,nonstop;screen,ScreenSelectCourse;setenv,sMode,Extended"
|
||||
ChoiceOni="applydefaultoptions;name,Oni;playmode,oni;screen,ScreenSelectCourse;setenv,sMode,Oni"
|
||||
ChoiceEndless="applydefaultoptions;name,Endless;playmode,endless;screen,ScreenSelectCourse;setenv,sMode,Endless"
|
||||
ChoiceEasy="applydefaultoptions;name,Easy;text,Easy;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||
ChoiceNormal="applydefaultoptions;name,Normal;text,Normal;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||
ChoiceHard="applydefaultoptions;name,Hard;text,Hard;playmode,regular;difficulty,hard;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||
ChoiceRave="applydefaultoptions;name,Rave;text,Rave;playmode,rave;screen,ScreenSelectMusic;setenv,sMode,Rave"
|
||||
ChoiceExtended="applydefaultoptions;name,Extended;text,Extended;playmode,nonstop;screen,ScreenSelectCourse;setenv,sMode,Extended"
|
||||
ChoiceOni="applydefaultoptions;name,Oni;text,Oni;playmode,oni;screen,ScreenSelectCourse;setenv,sMode,Oni"
|
||||
ChoiceEndless="applydefaultoptions;name,Endless;text,Endless;playmode,endless;screen,ScreenSelectCourse;setenv,sMode,Endless"
|
||||
|
||||
[ScreenSelectCharacter]
|
||||
Class="ScreenSelectMaster"
|
||||
@@ -1911,6 +1881,7 @@ PerChoiceIconElement=false
|
||||
ShowScroller=true
|
||||
WrapScroller=true
|
||||
ShowIcon=false
|
||||
|
||||
[ScreenGameInformation]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenSelectMaster"
|
||||
@@ -2035,6 +2006,7 @@ ScreenModsCommand=setupcoursestagemods
|
||||
#
|
||||
MusicWheelType="CourseWheel"
|
||||
Codes="CourseCodeDetector"
|
||||
|
||||
[CourseCodeDetector]
|
||||
Fallback="CodeDetector"
|
||||
NextSort1=
|
||||
@@ -2042,7 +2014,6 @@ NextSort2=
|
||||
NextSort3=
|
||||
NextSort4=
|
||||
|
||||
|
||||
[StepsDisplay]
|
||||
FrameX=0
|
||||
FrameY=0
|
||||
@@ -2076,7 +2047,7 @@ ShowAutogen=true
|
||||
AutogenX=40
|
||||
AutogenY=0
|
||||
AutogenOnCommand=
|
||||
AutogenSetCommand=%function(self,param) if param.CustomDifficulty then self:diffuse(CustomDifficultyToLightColor(param.CustomDifficulty)); self:strokecolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); end end
|
||||
AutogenSetCommand=
|
||||
ShowStepsType=false
|
||||
StepsTypeX=0
|
||||
StepsTypeY=0
|
||||
@@ -2137,9 +2108,12 @@ PageOnCommand=
|
||||
ContainerOnCommand=
|
||||
ContainerOffCommand=
|
||||
CursorOnCommand=
|
||||
LineHighlightOnCommand=
|
||||
LineHighlightChangeCommand=
|
||||
LineHighlightChangeToExitCommand=
|
||||
LineHighlightP1OnCommand=
|
||||
LineHighlightP1ChangeCommand=
|
||||
LineHighlightP1ChangeToExitCommand=
|
||||
LineHighlightP2OnCommand=
|
||||
LineHighlightP2ChangeCommand=
|
||||
LineHighlightP2ChangeToExitCommand=
|
||||
ShowScrollBar=false
|
||||
ScrollBarHeight=0
|
||||
ScrollBarTime=0
|
||||
@@ -2527,9 +2501,13 @@ Fallback="ScreenOptionsSimple"
|
||||
|
||||
OptionRowNormalMetricsGroup="OptionRowService"
|
||||
|
||||
LineHighlightOnCommand=visible,false
|
||||
LineHighlightChangeCommand=
|
||||
LineHighlightChangeToExitCommand=
|
||||
LineHighlightP1OnCommand=visible,false
|
||||
LineHighlightP1ChangeCommand=
|
||||
LineHighlightP1ChangeToExitCommand=
|
||||
|
||||
LineHighlightP2OnCommand=visible,false
|
||||
LineHighlightP2ChangeCommand=
|
||||
LineHighlightP2ChangeToExitCommand=
|
||||
|
||||
CursorOnCommand=visible,false
|
||||
|
||||
@@ -2540,7 +2518,7 @@ Fallback="ScreenOptionsSimpleService"
|
||||
NextScreen=Branch.Init()
|
||||
PrevScreen=Branch.Init()
|
||||
|
||||
LineNames="SystemDirection,KeyConfig,GameType,6,8,Reload,MoreOptions"
|
||||
LineNames="SystemDirection,KeyConfig,GameType,6,8,Reload,Credits,MoreOptions"
|
||||
# LineNames="SystemDirection,1,2,Sync,13,3,10,11,4,12,6,5,Theme,8,9"
|
||||
Line1="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings"
|
||||
Line2="gamecommand;screen,ScreenTestInput;name,Test Input"
|
||||
@@ -2561,6 +2539,7 @@ LineKeyConfig="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings"
|
||||
LineGameType="gamecommand;screen,ScreenSelectGame;name,Select Game"
|
||||
LineSync="gamecommand;screen,ScreenGameplaySyncMachine;name,Calibrate Machine Sync"
|
||||
LineReload="gamecommand;screen,ScreenReloadSongs;name,Reload Songs"
|
||||
LineCredits="gamecommand;screen,ScreenCredits;name,StepMania Credits"
|
||||
LineMoreOptions="gamecommand;screen,ScreenOptionsExtended;name,More Options"
|
||||
|
||||
[ScreenOptionsExtended]
|
||||
@@ -2585,9 +2564,13 @@ PrevScreen="ScreenOptionsService"
|
||||
NextScreen="ScreenOptionsService"
|
||||
HelpText=Screen.String("HelpTextOptionsAndBack")
|
||||
|
||||
LineHighlightOnCommand=visible,false
|
||||
LineHighlightChangeCommand=
|
||||
LineHighlightChangeToExitCommand=
|
||||
LineHighlightP1OnCommand=visible,false
|
||||
LineHighlightP1ChangeCommand=
|
||||
LineHighlightP1ChangeToExitCommand=
|
||||
|
||||
LineHighlightP2OnCommand=visible,false
|
||||
LineHighlightP2ChangeCommand=
|
||||
LineHighlightP2ChangeToExitCommand=
|
||||
#
|
||||
ExplanationTogetherX=SCREEN_CENTER_X
|
||||
ExplanationTogetherY=SCREEN_CENTER_Y+174
|
||||
@@ -2596,6 +2579,7 @@ ExplanationTogetherOffCommand=
|
||||
|
||||
[ScreenOptionsServiceExtendedChild]
|
||||
Fallback="ScreenOptionsServiceChild"
|
||||
|
||||
[ScreenMiniMenu]
|
||||
Class="ScreenMiniMenu"
|
||||
Fallback="ScreenOptions"
|
||||
@@ -2915,12 +2899,14 @@ Line16="list,Steps"
|
||||
Line17="list,Characters"
|
||||
|
||||
#
|
||||
|
||||
[ScreenPlayerOptionsRestricted]
|
||||
Fallback="ScreenPlayerOptions"
|
||||
NextScreen="ScreenStageInformation"
|
||||
LineNames="1,8,16,17"
|
||||
|
||||
# funny
|
||||
|
||||
[ScreenSongOptions]
|
||||
Fallback="ScreenOptions"
|
||||
Class="ScreenSongOptions"
|
||||
@@ -2955,6 +2941,7 @@ AllowStartToSkip=false
|
||||
PrepareScreen=
|
||||
|
||||
# 05 # A
|
||||
|
||||
[ScreenExit]
|
||||
# Midiman:
|
||||
# Fun fact, if you don't enable this screen, Force Crashing will hang
|
||||
@@ -3248,6 +3235,7 @@ DebugX=SCREEN_CENTER_X
|
||||
DebugY=SCREEN_BOTTOM-72
|
||||
DebugOnCommand=zoom,0.75
|
||||
#
|
||||
SongNumberFormat="%d"
|
||||
SongNumberP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") - 60
|
||||
SongNumberP1Y=SCREEN_TOP+24+7
|
||||
SongNumberP1OnCommand=visible,false
|
||||
@@ -3299,6 +3287,7 @@ PlayerOptionsHideFailType=false
|
||||
MaxComboNumDigits=4
|
||||
#
|
||||
ShowBannerArea=true
|
||||
RollingNumbersClass="RollingNumbersJudgment"
|
||||
ShowSharedJudgmentLineLabels=false
|
||||
ShowJudgmentLineW1=false
|
||||
ShowJudgmentLineW2=false
|
||||
@@ -3367,6 +3356,7 @@ DisqualifiedP2OffCommand=
|
||||
#
|
||||
DetailLineFormat="%3d/%3d"
|
||||
#
|
||||
|
||||
[ScreenEvaluationNormal]
|
||||
Fallback="ScreenEvaluation"
|
||||
#
|
||||
@@ -3419,11 +3409,13 @@ NextScreen=Branch.AfterProfileSave()
|
||||
PrevScreen=Branch.TitleMenu()
|
||||
#
|
||||
TimerSeconds=-1
|
||||
|
||||
[ScreenProfileSaveSummary]
|
||||
Fallback="ScreenProfileSave"
|
||||
#
|
||||
NextScreen="ScreenGameOver"
|
||||
PrevScreen="ScreenGameOver"
|
||||
|
||||
[ScreenGameOver]
|
||||
Class="ScreenEnding"
|
||||
Fallback="ScreenAttract"
|
||||
@@ -3486,6 +3478,7 @@ Answer3Of3OffCommand=
|
||||
#
|
||||
# stuff for edit mode:
|
||||
#
|
||||
|
||||
[ScreenOptionsEdit]
|
||||
Class="ScreenOptionsMaster"
|
||||
Fallback="ScreenOptionsSimpleService"
|
||||
@@ -3614,6 +3607,7 @@ TimerSeconds=-1
|
||||
HelpText=Screen.String("HelpTextOptionsAndBack")
|
||||
|
||||
# could use a redo but whatever
|
||||
|
||||
[ScreenEdit]
|
||||
Class="ScreenEdit"
|
||||
Fallback="ScreenWithMenuElementsBlank"
|
||||
@@ -3628,6 +3622,7 @@ ShowHelp=false
|
||||
AllowOperatorMenuButton=false
|
||||
ShowCreditDisplay=false
|
||||
ShowStyleIcon=false
|
||||
InvertScrollSpeedButtons=false
|
||||
TimerSeconds=-1
|
||||
EditModifiers="no reverse"
|
||||
EditHelpX=SCREEN_LEFT+4
|
||||
@@ -3694,13 +3689,14 @@ CancelTransitionsOut=true
|
||||
PlayMusic=false
|
||||
TimerSeconds=-1
|
||||
ShowStyleIcon=false
|
||||
LineNames="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16"
|
||||
LineNames="1,2,3,4,5,6,R,7,8,9,10,11,12,13,14,15,16"
|
||||
Line1="list,Speed"
|
||||
Line2="list,Accel"
|
||||
Line3="list,Effect"
|
||||
Line4="list,Appearance"
|
||||
Line5="list,Turn"
|
||||
Line6="list,Insert"
|
||||
LineR="list,Remove"
|
||||
Line7="list,Scroll"
|
||||
Line8="list,NoteSkins"
|
||||
Line9="list,Holds"
|
||||
@@ -3717,6 +3713,7 @@ OutCancelCommand=
|
||||
Fallback="StepsDisplay"
|
||||
|
||||
# oh, right, minimenus.
|
||||
|
||||
[ScreenMiniMenuEditHelp]
|
||||
Fallback="ScreenMiniMenu"
|
||||
ShowFooter=false
|
||||
@@ -3778,6 +3775,7 @@ Fallback="ScreenMiniMenu"
|
||||
Fallback="ScreenMiniMenu"
|
||||
|
||||
# Export Packages
|
||||
|
||||
[ScreenOptionsExportPackage]
|
||||
Class="ScreenOptionsExportPackage"
|
||||
Fallback="ScreenOptionsSimpleService"
|
||||
@@ -3795,6 +3793,7 @@ Fallback="OptionRowService"
|
||||
TitleX=SCREEN_CENTER_X-150
|
||||
|
||||
# Manage Courses
|
||||
|
||||
[OptionRowCourseOverview]
|
||||
Fallback="OptionRowService"
|
||||
ItemsLongRowSharedX=SCREEN_CENTER_X-100
|
||||
@@ -3843,6 +3842,7 @@ EditScreen="ScreenOptionsEditCourse"
|
||||
OptionRowNormalMetricsGroup="OptionRowCourseOverview"
|
||||
|
||||
# visual/interactive syncing
|
||||
|
||||
[ScreenGameplaySyncMachine]
|
||||
Class="ScreenGameplaySyncMachine"
|
||||
Fallback="ScreenGameplay"
|
||||
@@ -3851,7 +3851,7 @@ NextScreen="ScreenOptionsExtended"
|
||||
PlayerType="PlayerSyncMachine"
|
||||
|
||||
AllowCenter1Player=false
|
||||
SyncInfoOnCommand=x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y;zoom,0;decelerate,0.5;zoom,0.6
|
||||
SyncInfoOnCommand=x,PositionPerPlayer(GAMESTATE:GetMasterPlayerNumber(),SCREEN_CENTER_X+160,SCREEN_CENTER_X-160);y,SCREEN_CENTER_Y;zoom,0;decelerate,0.5;zoom,0.6
|
||||
|
||||
# hidden by default:
|
||||
LifeP1OnCommand=visible,false
|
||||
@@ -3872,6 +3872,7 @@ Fallback="Player"
|
||||
ComboOnCommand=visible,false
|
||||
|
||||
# sm-ssc helper screens
|
||||
|
||||
[ScreenHowToInstallSongs]
|
||||
Class="ScreenSplash"
|
||||
Fallback="ScreenSplash"
|
||||
@@ -3882,6 +3883,7 @@ TimerSeconds=-1
|
||||
ShowHelp=false
|
||||
|
||||
# stuff for online mode:
|
||||
|
||||
[ScreenSMOnlineLogin]
|
||||
Class="ScreenSMOnlineLogin"
|
||||
Fallback="ScreenOptionsServiceChild"
|
||||
@@ -4126,6 +4128,7 @@ UserOnCommand=
|
||||
UserOffCommand=
|
||||
|
||||
# Arcade
|
||||
|
||||
[ScreenLogo]
|
||||
Fallback="ScreenAttract"
|
||||
#
|
||||
@@ -4189,6 +4192,7 @@ ChoiceNames="1"
|
||||
IdleCommentSeconds=-1
|
||||
IdleTimeoutSeconds=-1
|
||||
IdleTimeoutScreen=Branch.AfterInit()
|
||||
|
||||
[ScreenDemonstration]
|
||||
Fallback="ScreenGameplay"
|
||||
Class="ScreenDemonstration"
|
||||
@@ -4232,3 +4236,15 @@ StartScreen="ScreenTitleMenu"
|
||||
LightsMode="LightsMode_Demonstration"
|
||||
ShowCourseModifiersProbability=0
|
||||
AllowAdvancedModifiers=true
|
||||
|
||||
[ScreenCredits]
|
||||
Class="ScreenSplash"
|
||||
Fallback="ScreenSplash"
|
||||
AllowStartToSkip=true
|
||||
NextScreen=Branch.TitleMenu()
|
||||
PrevScreen=Branch.TitleMenu()
|
||||
TimerSeconds=40
|
||||
TimerStealth=true
|
||||
ForceTimer=true
|
||||
TimerMetricsGroup="MenuTimerNoSound"
|
||||
TimerOnCommand=visible,false
|
||||
@@ -0,0 +1 @@
|
||||
return Def.Actor { OnCommand=cmd(sleep,0.3); }
|
||||
@@ -0,0 +1 @@
|
||||
return Def.Actor { OnCommand=cmd(sleep,0.3); }
|
||||
@@ -0,0 +1,384 @@
|
||||
local PlayerIndexes = { PlayerNumber_P1 = 1, PlayerNumber_P2 = 1 }
|
||||
-- Reads mods from a file
|
||||
-- keywords: Speed, Noteskins, None, Clear
|
||||
local function ReadMods()
|
||||
local file = THEME:GetCurrentThemeDirectory() .. "mods.txt"
|
||||
local mods = File.Read( file )
|
||||
if not mods
|
||||
or mods == ""
|
||||
then
|
||||
local buff = ";Set mods here, one per line or various in one separated with commas\r\n;Keywords: 'Speed', 'Noteskins', 'None', 'Clear'\r\nSpeeds\r\nNoteskins"
|
||||
File.Write(file,buff)
|
||||
return {
|
||||
ReadSpeedMods();
|
||||
NOTESKIN:GetNoteSkinNames();
|
||||
"Clear";
|
||||
}
|
||||
end
|
||||
|
||||
mods = string.gsub(mods,"\r","")
|
||||
mods = split("\n",mods)
|
||||
|
||||
local ret = {}
|
||||
local clear = false
|
||||
|
||||
for k,v in ipairs(mods) do
|
||||
if string.sub(v,1,1) == ";"
|
||||
or v == ""
|
||||
then
|
||||
--skip
|
||||
elseif v == "Speeds" then
|
||||
table.insert(ret, ReadSpeedMods())
|
||||
elseif v == "Noteskins" then
|
||||
table.insert(ret, NOTESKIN:GetNoteSkinNames())
|
||||
else
|
||||
local ModToAdd = string.gsub(v,"%s","")
|
||||
if string.find(ModToAdd, ",") ~= nil then
|
||||
ModToAdd = split(",", ModToAdd)
|
||||
if ModToAdd[1] ~= "None" then
|
||||
table.insert(ModToAdd,1,"None")
|
||||
end
|
||||
table.insert(ret,ModToAdd)
|
||||
else
|
||||
if ModToAdd == "Clear" then
|
||||
if not clear then table.insert(ret,ModToAdd) end
|
||||
clear = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- This will happen...
|
||||
if not clear then table.insert(ret,"Clear") end
|
||||
|
||||
return ret
|
||||
end
|
||||
|
||||
local modslist = ReadMods()
|
||||
|
||||
-- Displays the mods with actorscrollers
|
||||
local function OptionsListDisplay(player)
|
||||
local function GetPlayerMods()
|
||||
local playerstate = GAMESTATE:GetPlayerState(player)
|
||||
local playermods = playerstate:GetPlayerOptionsArray('ModsLevel_Preferred')
|
||||
return playermods
|
||||
end
|
||||
|
||||
local make = {}
|
||||
-- iterate modslist entries
|
||||
for k,v in ipairs(modslist) do
|
||||
-- not kinopio
|
||||
local RowToAdd
|
||||
if type(v) == "table" then
|
||||
-- it's a table, make it a scroller
|
||||
local choices = {}
|
||||
-- build the choices
|
||||
for i,j in ipairs(v) do
|
||||
choices[i] = LoadFont()..{ Text=j };
|
||||
end
|
||||
RowToAdd = Def.ActorScroller {
|
||||
NumItemsToDraw=3;
|
||||
SecondsPerItem=0.075;
|
||||
-- init indexes here
|
||||
-- I like how InitCommand is not allowed to be played or queued
|
||||
-- (HURR TOO MUCH COMMANDS ARG!)
|
||||
SetChoicesCommand=function(self)
|
||||
local found = false
|
||||
--SCREENMAN:SystemMessage(join(",", defmods))
|
||||
for idx,Mod in ipairs(GetPlayerMods()) do
|
||||
-- In before I forgot what's this: those are the nod entries
|
||||
for jdx,Nod in ipairs(v) do
|
||||
if Mod == Nod then
|
||||
found = true
|
||||
self:SetCurrentAndDestinationItem(jdx-1);
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- oops, no defaults, set them
|
||||
if not found then
|
||||
for idx,Mod in ipairs(v) do
|
||||
if Mod == "1x"
|
||||
or Mod == "default"
|
||||
or Mod == "None"
|
||||
then
|
||||
self:SetCurrentAndDestinationItem(idx-1);
|
||||
break
|
||||
else
|
||||
self:SetCurrentAndDestinationItem(0);
|
||||
end
|
||||
end
|
||||
end
|
||||
end;
|
||||
CleanModsMessageCommand=function(self,params)
|
||||
if player ~= params.PlayerNumber then return end
|
||||
self:playcommand("SetChoices");
|
||||
end;
|
||||
InitCommand=function(self)
|
||||
self:SetLoop(true);
|
||||
self:playcommand("SetChoices");
|
||||
end;
|
||||
TransformFunction=function(self, offset, itemIndex, numItems)
|
||||
self:x(offset * 100);
|
||||
local focus = math.abs(offset)
|
||||
focus = scale(focus,0,1,1,0.75)
|
||||
|
||||
self:zoom(focus)
|
||||
end;
|
||||
ChoiceSwapMessageCommand=function(self,params)
|
||||
if params.PlayerNumber ~= player then return end
|
||||
if params.Row ~= k then return end
|
||||
|
||||
local index = params.Index
|
||||
--SCREENMAN:SystemMessage(ToEnumShortString(player).." row mods index: "..index);
|
||||
if params.bHasLooped then
|
||||
self:SetCurrentAndDestinationItem(-1)
|
||||
end
|
||||
|
||||
self:SetDestinationItem(index-1)
|
||||
end;
|
||||
-- actors are wrapped here:
|
||||
children = choices;
|
||||
};
|
||||
elseif type(v) == "string" then
|
||||
-- it's not, make single switchable choice
|
||||
RowToAdd = Def.ActorFrame {
|
||||
LoadFont()..{
|
||||
Text=v;
|
||||
-- init highlights here
|
||||
SetChoicesCommand=function(self)
|
||||
local cc = color("#000000")
|
||||
for idx,Mod in ipairs(GetPlayerMods()) do
|
||||
if Mod == v then
|
||||
cc = color("#ffffff")
|
||||
break
|
||||
end
|
||||
end
|
||||
if v == "Clear" then
|
||||
cc = color("#0000ff")
|
||||
end
|
||||
self:diffuse(cc);
|
||||
end;
|
||||
InitCommand=function(self)
|
||||
self:playcommand("SetChoices");
|
||||
end;
|
||||
-- Following commands you'll understand (I've heard that somewhere...)
|
||||
CleanModsMessageCommand=function(self,params)
|
||||
--if v == "Clear" then return end
|
||||
if player ~= params.PlayerNumber then return end
|
||||
self:playcommand("SetChoices");
|
||||
--self:diffuse(color("#000000"));
|
||||
end;
|
||||
-- cmd(diffuse,color("#000000"));
|
||||
ChoiceToggleMessageCommand=function(self,params)
|
||||
if params.PlayerNumber ~= player then return end
|
||||
if params.Row ~= k then return end
|
||||
|
||||
local cc = color("#ffffff")
|
||||
if not params.Activated then
|
||||
cc = color("#000000")
|
||||
end
|
||||
|
||||
--self:visible(params.Activated)
|
||||
-- why the fuck is not coloring itself? oh I think I got it... duh!
|
||||
self:diffuse(cc)
|
||||
end;
|
||||
}
|
||||
}
|
||||
else
|
||||
--table.remove(modslist,k)
|
||||
--Def.Actor { };
|
||||
end
|
||||
make[k] = RowToAdd
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
Draw.RoundBox(300,320,50,50,color("1,0,1,0.5"));
|
||||
Draw.RoundBox(300,50,25,25,color("1,0,0,0.5"));
|
||||
Def.ActorScroller {
|
||||
Name="OptionsListScroller";
|
||||
NumItemsToDraw=5;
|
||||
SecondsPerItem=0.075;
|
||||
InitCommand=function(self)
|
||||
self:SetLoop(true);
|
||||
end;
|
||||
TransformFunction=function(self, offset, itemIndex, numItems)
|
||||
self:y(offset * 50);
|
||||
end;
|
||||
children = make;
|
||||
};
|
||||
}
|
||||
end
|
||||
|
||||
-- Internals
|
||||
return Def.ActorFrame {
|
||||
OptionsListDisplay(PLAYER_1)..{
|
||||
Name="OptionsListDisplay"..PLAYER_1;
|
||||
Condition=GAMESTATE:IsHumanPlayer(PLAYER_1);
|
||||
InitCommand=function(self)
|
||||
if #GAMESTATE:GetHumanPlayers() == 1
|
||||
and PREFSMAN:GetPreference("Center1Player")
|
||||
then
|
||||
self:CenterX()
|
||||
else
|
||||
self:FromLeft(160)
|
||||
end
|
||||
self:CenterY();
|
||||
end;
|
||||
};
|
||||
OptionsListDisplay(PLAYER_2)..{
|
||||
Name="OptionsListDisplay"..PLAYER_2;
|
||||
Condition=GAMESTATE:IsHumanPlayer(PLAYER_2);
|
||||
InitCommand=function(self)
|
||||
if #GAMESTATE:GetHumanPlayers() == 1
|
||||
and PREFSMAN:GetPreference("Center1Player")
|
||||
then
|
||||
self:CenterX()
|
||||
else
|
||||
self:FromRight(-160)
|
||||
end
|
||||
self:CenterY();
|
||||
end;
|
||||
};
|
||||
-- Everything here and beyond is pure magic
|
||||
CodeMessageCommand=function(self,params)
|
||||
-- I'm reusing code from CustomCodeDetector
|
||||
local code = params.Name
|
||||
local player = params.PlayerNumber
|
||||
local movement = "none"
|
||||
local modscleared = false
|
||||
|
||||
if not GAMESTATE:IsHumanPlayer(player) then return end;
|
||||
|
||||
if code == "Back" then
|
||||
--SCREENMAN:SystemMessage(ToEnumShortString(player).." closed the oplist")
|
||||
SCREENMAN:GetTopScreen():Cancel();
|
||||
elseif code == "Prev" then
|
||||
PlayerIndexes[player] = PlayerIndexes[player]-1
|
||||
if PlayerIndexes[player] < 1 then
|
||||
PlayerIndexes[player] = #modslist
|
||||
movement = "first"
|
||||
end
|
||||
--SCREENMAN:SystemMessage(ToEnumShortString(player).." index: "..PlayerIndexes[player]);
|
||||
elseif code == "Next" then
|
||||
PlayerIndexes[player] = PlayerIndexes[player]+1
|
||||
if PlayerIndexes[player] > #modslist then
|
||||
PlayerIndexes[player] = 1
|
||||
movement = "last"
|
||||
end
|
||||
--SCREENMAN:SystemMessage(ToEnumShortString(player).." index: "..PlayerIndexes[player]);
|
||||
elseif code == "Toggle" then
|
||||
-- changes will be done here
|
||||
-- get playerstate and playermods
|
||||
local playerstate = GAMESTATE:GetPlayerState(player)
|
||||
local playermods = playerstate:GetPlayerOptionsArray('ModsLevel_Preferred')
|
||||
|
||||
-- let's check in what index we are
|
||||
local ModToAdd = modslist[PlayerIndexes[player]]
|
||||
--the mod is a table, scroll those
|
||||
if type(ModToAdd) == "table" then
|
||||
-- iteration, once again, like in the custom code detector I made :x
|
||||
local index = 1
|
||||
local found = false
|
||||
local looped = false
|
||||
for i,j in ipairs(playermods) do
|
||||
for k,l in ipairs(ModToAdd) do
|
||||
if j == l then
|
||||
found = true
|
||||
index = k+1
|
||||
if index > #ModToAdd then
|
||||
index = 1
|
||||
looped = true
|
||||
end
|
||||
--replace
|
||||
playermods[i] = ModToAdd[index]
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- looks like nothing was found, we can assume those are the default mods
|
||||
-- (1x and default noteskin) they are not listed for some reason...
|
||||
if not found then
|
||||
-- set the first on the list (nono, better list 1x and default)
|
||||
for k,v in ipairs(ModToAdd) do
|
||||
if v == "1x"
|
||||
or v == "default"
|
||||
then
|
||||
index = k+1
|
||||
if index > #ModToAdd then
|
||||
index = 1
|
||||
looped = true
|
||||
end
|
||||
table.insert(playermods, ModToAdd[index])
|
||||
break
|
||||
elseif v == "None" then
|
||||
table.insert(playermods, ModToAdd[2])
|
||||
index = 2
|
||||
end
|
||||
end
|
||||
end
|
||||
-- send message broadcasts to be able to move things on the oplist displays
|
||||
MESSAGEMAN:Broadcast("ChoiceSwap",{ Row = PlayerIndexes[player]; Index = index; PlayerNumber = player; bHasLooped = looped })
|
||||
elseif ModToAdd == "Clear" then
|
||||
local defaultmods = PREFSMAN:GetPreference("DefaultModifiers")
|
||||
playermods = split(",", defaultmods)
|
||||
modscleared = true
|
||||
--MESSAGEMAN:Broadcast("CleanMods",{ PlayerNumber = player });
|
||||
else
|
||||
-- if type(ModToAdd) == "string" then end
|
||||
-- we know it's a string...
|
||||
local found = false
|
||||
for i,j in ipairs(playermods) do
|
||||
if j == ModToAdd then
|
||||
-- remove it
|
||||
found = true
|
||||
table.remove(playermods, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not found then
|
||||
table.insert(playermods, ModToAdd)
|
||||
end
|
||||
MESSAGEMAN:Broadcast("ChoiceToggle",{ Row = PlayerIndexes[player]; Activated = not found; PlayerNumber = player })
|
||||
end
|
||||
-- let's check if noteskins aren't missing (we're avoiding crashes here...)
|
||||
local found = false
|
||||
-- iterate again uh
|
||||
for i,j in ipairs(playermods) do
|
||||
-- yes because noteskins are stored in the second slot...
|
||||
for k,l in ipairs(modslist[2]) do
|
||||
if j == l then
|
||||
found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- apparently there aren't any noteskins...
|
||||
if not found then
|
||||
table.insert(playermods, "default")
|
||||
end
|
||||
|
||||
-- everything is ready to be set
|
||||
playermods = join(", ",playermods)
|
||||
playerstate:SetPlayerOptions('ModsLevel_Preferred',playermods)
|
||||
-- and thats pretty much it :D
|
||||
end
|
||||
|
||||
if modscleared then
|
||||
MESSAGEMAN:Broadcast("CleanMods",{ PlayerNumber = player });
|
||||
end
|
||||
|
||||
--this moves the scroller...
|
||||
local scroller = self:GetChild("OptionsListDisplay"..player):GetChild("OptionsListScroller")
|
||||
if movement ~= "none" then
|
||||
local tomove
|
||||
if movement == "first" then
|
||||
tomove = PlayerIndexes[player]
|
||||
elseif movement == "last" then
|
||||
tomove = PlayerIndexes[player]-2
|
||||
end
|
||||
scroller:SetCurrentAndDestinationItem(tomove);
|
||||
end
|
||||
scroller:SetDestinationItem(PlayerIndexes[player]-1);
|
||||
end;
|
||||
};
|
||||
@@ -0,0 +1,118 @@
|
||||
local function Labels()
|
||||
local captions = {
|
||||
"Perfect",
|
||||
"Great",
|
||||
"Good",
|
||||
"Bad",
|
||||
"Miss",
|
||||
"Combo",
|
||||
"Score",
|
||||
};
|
||||
|
||||
local t = Def.ActorFrame {}
|
||||
|
||||
for idx,k in ipairs(captions) do
|
||||
local _ = idx-1
|
||||
t[#t+1] = LoadFont("_arial black 20px")..{
|
||||
Text=k;
|
||||
InitCommand=cmd(y,_*40;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
end
|
||||
|
||||
return t
|
||||
end
|
||||
|
||||
local function Scores(player)
|
||||
if not player or not GAMESTATE:IsPlayerEnabled(player) then return Def.Actor {} end
|
||||
|
||||
local curstats = STATSMAN:GetCurStageStats():GetPlayerStageStats(player)
|
||||
|
||||
local timmings = {
|
||||
{
|
||||
curstats:GetTapNoteScores('TapNoteScore_CheckpointHit'),
|
||||
curstats:GetTapNoteScores('TapNoteScore_W1'),
|
||||
curstats:GetTapNoteScores('TapNoteScore_W2'),
|
||||
},
|
||||
{
|
||||
curstats:GetTapNoteScores('TapNoteScore_W3')
|
||||
},
|
||||
{
|
||||
curstats:GetTapNoteScores('TapNoteScore_W4')
|
||||
},
|
||||
{
|
||||
curstats:GetTapNoteScores('TapNoteScore_W5')
|
||||
},
|
||||
{
|
||||
curstats:GetTapNoteScores('TapNoteScore_CheckpointMiss'),
|
||||
curstats:GetTapNoteScores('TapNoteScore_Miss'),
|
||||
},
|
||||
{
|
||||
curstats:MaxCombo()
|
||||
},
|
||||
{
|
||||
curstats:GetScore()
|
||||
}
|
||||
}
|
||||
|
||||
local t = Def.ActorFrame {}
|
||||
|
||||
for idx,k in ipairs(timmings) do
|
||||
local _ = idx-1
|
||||
local curstats = STATSMAN:GetCurStageStats():GetPlayerStageStats(player)
|
||||
local number = 0
|
||||
|
||||
for i,v in ipairs(k) do
|
||||
number = number + v-- curstats:GetTapNoteScores(v);
|
||||
end
|
||||
|
||||
t[#t+1] = LoadFont("_arial black 20px")..{
|
||||
Text=string.format("%03d", number); --curstats:GetTapNoteScores(k)
|
||||
InitCommand=cmd(y,_*40;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
end
|
||||
|
||||
return t
|
||||
end
|
||||
|
||||
local function Grade(player)
|
||||
if not player or not GAMESTATE:IsPlayerEnabled(player) then return Def.Actor {} end
|
||||
|
||||
local captions = {
|
||||
Grade_Tier01 = "S";
|
||||
Grade_Tier02 = "S";
|
||||
Grade_Tier03 = "A";
|
||||
Grade_Tier04 = "B";
|
||||
Grade_Tier05 = "C";
|
||||
Grade_Tier06 = "D";
|
||||
Grade_Tier07 = "F";
|
||||
Grade_Failed = "S";
|
||||
}
|
||||
local grade = STATSMAN:GetCurStageStats():GetPlayerStageStats(player):GetGrade()
|
||||
|
||||
return LoadFont("_impact 50px")..{
|
||||
Text=captions[grade];
|
||||
--OnCommand=cmd(zoom,2;diffuse,color("#000000");Stroke,color("#ffffff");diffusealpha,0;sleep,1;linear,1;zoom,1;diffuse,color("#000000");Stroke,color("#ffffff");;diffusealpha,1);
|
||||
}
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_impact 50px")..{
|
||||
Text="Evaluation";
|
||||
InitCommand=cmd(CenterX;y,50;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
Labels()..{
|
||||
InitCommand=cmd(CenterX;FromTop,130);
|
||||
};
|
||||
Scores(PLAYER_1)..{
|
||||
InitCommand=cmd(FromCenterX,-160;FromTop,130);
|
||||
};
|
||||
Scores(PLAYER_2)..{
|
||||
InitCommand=cmd(FromCenterX,160;FromTop,130);
|
||||
};
|
||||
Grade(PLAYER_1)..{
|
||||
InitCommand=cmd(FromLeft,50;FromTop,240);
|
||||
};
|
||||
Grade(PLAYER_2)..{
|
||||
InitCommand=cmd(FromRight,-50;FromTop,240);
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_impact 50px")..{
|
||||
Text="THE GAME IS OVER";
|
||||
InitCommand=cmd(Center;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return Def.Actor { OnCommand=cmd(sleep,1); }
|
||||
@@ -0,0 +1,30 @@
|
||||
--a simple life display...
|
||||
local function LifeDisplay(pn)
|
||||
local function update(self)
|
||||
--local this = self:GetChildren()
|
||||
local lifemeter = SCREENMAN:GetTopScreen():GetLifeMeter(pn)
|
||||
--ºvº
|
||||
local life = lifemeter:GetLife()
|
||||
life = clamp(life,0,1)
|
||||
|
||||
self:GetChild("LifeText"):settextf("Life: %.2f%%", life*100)
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
InitCommand=cmd(player,pn;SetUpdateFunction,update);
|
||||
|
||||
LoadFont("_arial black 20px")..{
|
||||
--Text="100%";
|
||||
Name="LifeText";
|
||||
};
|
||||
};
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_impact 50px")..{
|
||||
InitCommand=cmd(CenterX;FromTop,30);
|
||||
Text=string.format("%02i", STATSMAN:GetStagesPlayed()+1);
|
||||
};
|
||||
LifeDisplay(PLAYER_1)..{ InitCommand=cmd(FromCenterX,-160;FromTop,20); };
|
||||
LifeDisplay(PLAYER_2)..{ InitCommand=cmd(FromCenterX,160;FromTop,20); };
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
-- CH32 asked me if this was possible, and as you can see, it is!!
|
||||
local function GetSpeedChanges()
|
||||
local smfile = GAMESTATE:GetCurrentSong():GetSongFilePath()
|
||||
local file = File.Read( smfile )
|
||||
if not file then return end
|
||||
-- search the tag
|
||||
local find = string.find(file , "#SPEED:")
|
||||
if not find then return end
|
||||
-- search the next semicolon
|
||||
local last = string.find(file , ";" , find)
|
||||
local found = string.sub(file,find,last)
|
||||
-- cleans
|
||||
found = string.gsub(found, "\r", "")
|
||||
found = string.gsub(found, "\n", "")
|
||||
found = string.gsub(found, "#SPEED:", "")
|
||||
found = string.gsub(found, ";", "")
|
||||
-- make it a table
|
||||
found = split(",", found)
|
||||
-- return it
|
||||
return found
|
||||
end
|
||||
|
||||
local speeds = GetSpeedChanges()
|
||||
|
||||
-- what are those things made of?
|
||||
local function update(self)
|
||||
if speeds ~= nil then
|
||||
for idx,Spd in ipairs(speeds) do
|
||||
local part = split("=", Spd)
|
||||
local ebeat = tonumber(part[1]) --WHERE
|
||||
assert(ebeat)
|
||||
local songbeat = GAMESTATE:GetSongBeat()
|
||||
|
||||
if songbeat >= ebeat
|
||||
-- 1/20 beat
|
||||
and songbeat <= ebeat + (1/20)
|
||||
--and not GAMESTATE:GetSongFreeze()
|
||||
--and not GAMESTATE:GetSongDelay()
|
||||
then
|
||||
local bps = 60 / GAMESTATE:GetCurrentSong():GetTimingData():GetBPMAtBeat( ebeat )
|
||||
--local bps = GAMESTATE:GetSongBPS()
|
||||
local value = tonumber(part[2]) --SPEED
|
||||
local approach = part[3] --APPLY TIME
|
||||
-- Odd, it needs to be a string to be evaluated o_o;
|
||||
if not approach then approach = tostring(4*bps) end
|
||||
|
||||
if string.sub(approach,approach:len()) == "s" then
|
||||
approach = string.sub(approach,1,approach:len()-1)
|
||||
approach = tonumber(approach)
|
||||
approach = 1/approach
|
||||
else
|
||||
approach = 1/(approach*bps)
|
||||
end
|
||||
|
||||
local pastspeed = 1
|
||||
if idx > 1 then
|
||||
pastspeed = split("=", speeds[idx-1])
|
||||
pastspeed = tonumber(pastspeed[2])
|
||||
end
|
||||
|
||||
approach = approach * math.abs(value-pastspeed)
|
||||
|
||||
approach = approach + 0.05
|
||||
|
||||
--if value ~= 0 then
|
||||
--approach = value/approach
|
||||
--approach = scale(value,0,approach,0,1)
|
||||
--end
|
||||
|
||||
MESSAGEMAN:Broadcast("SpeedModLaunched",{ Value = value ; Approach = approach });
|
||||
--SCREENMAN:SystemMessage("APP: " .. approach .. " SPD: " .. value);
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
InitCommand=cmd(SetUpdateFunction,update);
|
||||
SpeedModLaunchedMessageCommand=function(self,params)
|
||||
local approach = params.Approach
|
||||
local value = params.Value
|
||||
|
||||
local playerstate = GAMESTATE:GetPlayerState(PLAYER_1)
|
||||
local playermods = playerstate:GetPlayerOptionsArray('ModsLevel_Preferred')
|
||||
|
||||
local found = false
|
||||
for idx,Mod in ipairs(playermods) do
|
||||
if string.find(Mod,"%dx") ~= nil
|
||||
--or string.find(Mod,"%d.%dx") ~= nil
|
||||
then
|
||||
found = true
|
||||
local xmod = playermods[idx]
|
||||
xmod = string.gsub(xmod,"x","")
|
||||
xmod = tonumber(xmod)
|
||||
xmod = xmod * value
|
||||
--duh, floats
|
||||
xmod = string.format("*%.2f %.2fx",approach,xmod)
|
||||
playermods[idx] = xmod
|
||||
--SCREENMAN:SystemMessage(xmod)
|
||||
end
|
||||
end
|
||||
if not found then
|
||||
local xmod = string.format("*%.2f %.2fx",approach,value)
|
||||
table.insert( playermods, xmod)
|
||||
end
|
||||
|
||||
playermods = join(",",playermods)
|
||||
playerstate:SetPlayerOptions('ModsLevel_Song', playermods)
|
||||
--self:GetChild("_debug"):settext(playermods)
|
||||
--SCREENMAN:SystemMessage(playerstate:GetPlayerOptions('ModsLevel_Preferred'));
|
||||
--SCREENMAN:SystemMessage(value)
|
||||
end;
|
||||
--LoadFont()..{ Name="_debug"; InitCommand=cmd(x,50;CenterY;rotationz,90); };
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_impact 50px")..{
|
||||
Text="Try next stage";
|
||||
InitCommand=cmd(Center;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
return Def.ActorFrame {
|
||||
BeginCommand=function(self)
|
||||
self:visible(false);
|
||||
if SCREENMAN:GetTopScreen():HaveProfileToLoad() then
|
||||
self:visible(true);
|
||||
self:sleep(1);
|
||||
end;
|
||||
self:queuecommand("Load");
|
||||
end;
|
||||
LoadCommand=function(self)
|
||||
SCREENMAN:GetTopScreen():Continue();
|
||||
end;
|
||||
--
|
||||
Draw.Box(SCREEN_WIDTH,50)..{
|
||||
InitCommand=cmd(Center);
|
||||
};
|
||||
LoadFont("_arial black 20px")..{
|
||||
Text="Loading Profiles...";
|
||||
InitCommand=cmd(Center;skewx,-0.1;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
return Def.ActorFrame {
|
||||
BeginCommand=function(self)
|
||||
self:visible(false);
|
||||
if SCREENMAN:GetTopScreen():HaveProfileToSave() then
|
||||
self:visible(true);
|
||||
self:sleep(1);
|
||||
end;
|
||||
self:queuecommand("Save");
|
||||
end;
|
||||
SaveCommand=function(self)
|
||||
SCREENMAN:GetTopScreen():Continue();
|
||||
end;
|
||||
--
|
||||
Draw.Box(SCREEN_WIDTH,50)..{
|
||||
InitCommand=cmd(Center);
|
||||
};
|
||||
LoadFont("_arial black 20px")..{
|
||||
Text="Saving Profiles...";
|
||||
InitCommand=cmd(Center;skewx,-0.1;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,224 @@
|
||||
--Whew... this one took some time...
|
||||
local function ModIcons(p)
|
||||
local oldmods
|
||||
|
||||
--todo: add more
|
||||
local noteskinbuttons = {
|
||||
pump = "UpLeft";
|
||||
dance ="Down";
|
||||
};
|
||||
local function ModiconRow(caption)
|
||||
return Def.ActorFrame {
|
||||
Draw.RoundBox(35,35,6,6,color("#32ff00"));
|
||||
Draw.RoundBox(25,25,3,3,color("#32c800"));
|
||||
LoadFont("_arial black")..{
|
||||
Name="caption";
|
||||
Text=caption or "";
|
||||
};
|
||||
LoadActor("i can flash")..{
|
||||
Name="sfx";
|
||||
InitCommand=cmd(blend,Blend.Add;zoom,0.125);
|
||||
SFXCommand=cmd(stoptweening;diffusealpha,1;zoom,0.5;linear,0.2;zoom,1;diffusealpha,0);
|
||||
};
|
||||
}
|
||||
end
|
||||
--ActorScrollers <3
|
||||
return Def.ActorScroller {
|
||||
--TransformFunctions are both love and hate...
|
||||
TransformFunction=function(self, offset, itemIndex, numItems)
|
||||
self:y(offset * 40);
|
||||
end;
|
||||
InitCommand=function(self)
|
||||
local items = self:GetNumChildren()
|
||||
self:SetCurrentAndDestinationItem(items/2);
|
||||
if SSC then
|
||||
self:SetNumItemsToDraw(items);
|
||||
end
|
||||
self:SetLoop(true);
|
||||
self:playcommand("Set");
|
||||
end;
|
||||
PlayerOptionsChangedMessageCommand=cmd(playcommand,"Set");
|
||||
PlayerJoinedMessageCommand=cmd(playcommand,"Set");
|
||||
--Here's where the magic happens
|
||||
SetCommand=function(self)
|
||||
local playermods = GAMESTATE:GetPlayerState(p):GetPlayerOptionsArray('ModsLevel_Preferred')
|
||||
--clean (invisible everything)
|
||||
for k,v in pairs(self:GetChildren()) do
|
||||
self:GetChild(k):visible(false);
|
||||
end
|
||||
--stop early
|
||||
if not GAMESTATE:IsHumanPlayer(p) then return end;
|
||||
--this thing is based on iteration... ugh
|
||||
for k,v in ipairs(playermods) do
|
||||
--check if it's speed
|
||||
if string.find(v,"%dx") ~= nil then
|
||||
local c = self:GetChild("%dx")
|
||||
c:visible(true);
|
||||
c:GetChild("caption"):settext(v);
|
||||
c:GetChild("sfx"):playcommand("SFX");
|
||||
else
|
||||
--check if it's noteskin
|
||||
local noteskins = NOTESKIN:GetNoteSkinNames()
|
||||
for i,n in ipairs(noteskins) do
|
||||
if n == v then
|
||||
local c = self:GetChild("Noteskin")
|
||||
local button = noteskinbuttons[sGame] or "fallback"
|
||||
local toload = NOTESKIN:GetPathForNoteSkin(button, "Tap Note", v)
|
||||
--make it visible
|
||||
c:visible(true);
|
||||
--adjust sizes here
|
||||
c:GetChild("skingraphic"):Load(toload);
|
||||
c:GetChild("skingraphic"):zoom(0.45);
|
||||
--effects
|
||||
c:GetChild("skinframe"):GetChild("sfx"):playcommand("SFX");
|
||||
else
|
||||
--it's anything else then
|
||||
local c = self:GetChild(v)
|
||||
if c then
|
||||
c:visible(true);
|
||||
c:GetChild("sfx"):playcommand("SFX");
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--yeah whatever...
|
||||
self:GetChild("revg"):visible(getenv("GradeReverse"..p));
|
||||
self:GetChild("revg"):GetChild("sfx"):playcommand("SFX");
|
||||
end
|
||||
|
||||
oldmods = playermods
|
||||
end;
|
||||
--speed
|
||||
ModiconRow("1x")..{ Name="%dx" };
|
||||
--reserved for noteskins
|
||||
Def.ActorFrame {
|
||||
Name="Noteskin";
|
||||
ModiconRow("")..{ Name="skinframe"; };
|
||||
Def.Sprite { Name="skingraphic"; };
|
||||
};
|
||||
--the rest
|
||||
ModiconRow("RS")..{ Name="SuperShuffle" };
|
||||
ModiconRow("MR")..{ Name="Left" };
|
||||
ModiconRow("VN")..{ Name="Hidden" };
|
||||
ModiconRow("FD")..{ Name="Dark" };
|
||||
ModiconRow("XM")..{ Name="XMode" };
|
||||
ModiconRow("RG")..{ Name="revg" };
|
||||
}
|
||||
end
|
||||
|
||||
local function DifficultyMeter(p)
|
||||
return LoadFont("_impact 50px")..{
|
||||
Text="";
|
||||
SetCommand=function(self)
|
||||
if not GAMESTATE:IsHumanPlayer(p) then return end;
|
||||
|
||||
local steps = GAMESTATE:GetCurrentSteps(p)
|
||||
local diff = steps:GetDifficulty()
|
||||
local stype = steps:GetStepsType()
|
||||
local desc = steps:GetDescription()
|
||||
local meter = steps:GetMeter()
|
||||
--local autogen = steps:IsAutogen() and "AUTO " or ""
|
||||
|
||||
--compatible
|
||||
local text = DifficultyAndStepstypeToString(diff,stype,desc)
|
||||
text = string.upper(text);
|
||||
|
||||
self:settextf("%s [%d]",text,meter);
|
||||
end;
|
||||
CurrentSongChangedMessageCommand=function(self)
|
||||
local song = GAMESTATE:GetCurrentSong()
|
||||
if not song then self:visible(false); return end
|
||||
self:visible(true);
|
||||
end;
|
||||
};
|
||||
end
|
||||
|
||||
local function SongInformationDisplay()
|
||||
local index = 1
|
||||
return LoadFont("_arial black 20px")..{
|
||||
--Text="asd";
|
||||
SetCommand=function(self)
|
||||
local song = GAMESTATE:GetCurrentSong()
|
||||
if not song then self:diffusealpha(0); return end
|
||||
|
||||
local title = song:GetDisplayFullTitle();
|
||||
local artist = song:GetDisplayArtist();
|
||||
local bpm = song:GetDisplayBpms() --GetTimmingData():GetActualBPM()
|
||||
local group = song:GetGroupName();
|
||||
local length = song:MusicLengthSeconds();
|
||||
if length == 150 then
|
||||
length = "Lengthless"
|
||||
else
|
||||
local longmara
|
||||
if song:IsLong() then
|
||||
longmara = " Long song"
|
||||
elseif song:IsMarathon() then
|
||||
longmara = " Marathon song"
|
||||
else
|
||||
longmara = ""
|
||||
end
|
||||
length = string.format("%02d:%02d%s",length/60,length%60,longmara)
|
||||
end
|
||||
|
||||
if bpm[1] == bpm[2] then
|
||||
bpm = string.format("BPM %d", bpm[1])
|
||||
else
|
||||
bpm = string.format("BPM %d - %d",bpm[1],bpm[2])
|
||||
end
|
||||
|
||||
local metadata = {title,artist,bpm,group,length}
|
||||
|
||||
local toset = metadata[index]
|
||||
|
||||
index = index+1
|
||||
if index > #metadata then index = 1 end
|
||||
|
||||
--self:finishtweening();
|
||||
self:settext(toset);
|
||||
self:linear(0.2);
|
||||
self:diffusealpha(1);
|
||||
self:sleep(1);
|
||||
self:linear(0.2)
|
||||
self:diffusealpha(0);
|
||||
self:queuecommand("Set");
|
||||
end;
|
||||
CurrentSongChangedMessageCommand=function(self)
|
||||
--reset index
|
||||
index = 1
|
||||
--start looping
|
||||
self:stoptweening();
|
||||
self:linear(0.2)
|
||||
self:diffusealpha(0);
|
||||
self:queuecommand("Set")
|
||||
end;
|
||||
OffCommand=cmd(finishtweening);
|
||||
};
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
DifficultyMeter(PLAYER_1)..{
|
||||
InitCommand=cmd(FromCenterX,-120;FromTop,100;zoom,0.75;diffuse,color("#646464");Stroke,color("#ffffff"));
|
||||
CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
};
|
||||
DifficultyMeter(PLAYER_2)..{
|
||||
InitCommand=cmd(FromCenterX,120;FromTop,100;zoom,0.75;diffuse,color("#646464");Stroke,color("#ffffff"));
|
||||
CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
};
|
||||
Draw.RoundBox(SCREEN_WIDTH*0.75+10,50,color("#ffffff"))..{
|
||||
InitCommand=cmd(CenterX;FromBottom,-75);
|
||||
};
|
||||
Draw.RoundBox(SCREEN_WIDTH*0.75,40,5,5,color("#0000c8"))..{
|
||||
InitCommand=cmd(CenterX;FromBottom,-75);
|
||||
};
|
||||
SongInformationDisplay()..{
|
||||
InitCommand=cmd(CenterX;FromBottom,-75;diffuse,color("#009600");Stroke,color("#000000"));
|
||||
};
|
||||
ModIcons(PLAYER_1)..{
|
||||
InitCommand=cmd(FromLeft,30;FromTop,240);
|
||||
Condition=not GetUserPrefB("OptionsMode");
|
||||
};
|
||||
ModIcons(PLAYER_2)..{
|
||||
InitCommand=cmd(FromRight,-30;FromTop,240);
|
||||
Condition=not GetUserPrefB("OptionsMode");
|
||||
};
|
||||
}
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,66 @@
|
||||
return Def.ActorFrame {
|
||||
InitCommand=function(self)
|
||||
setenv("GradeReverse" .. PLAYER_1, false)
|
||||
setenv("GradeReverse" .. PLAYER_2, false)
|
||||
--setenv("UnderAttack", false)
|
||||
--setenv("Drop", false)
|
||||
end;
|
||||
CodeMessageCommand=function(self,params)
|
||||
local code = params.Name
|
||||
local player = params.PlayerNumber
|
||||
if not GAMESTATE:IsHumanPlayer(player) then return end;
|
||||
|
||||
if not GetUserPrefB("OptionsMode") then
|
||||
--Yeah
|
||||
if not CustomCodeDetector(code,player,true) then
|
||||
--handling envutils here
|
||||
if code == "GradeReverse"
|
||||
--or code == "any envutil wich requires to be per player"
|
||||
then
|
||||
if not getenv( code..player ) then
|
||||
setenv( code..player, true)
|
||||
else
|
||||
setenv( code..player, false)
|
||||
end
|
||||
else --general envutils (not per player)
|
||||
if not getenv( code ) then
|
||||
setenv( code, true)
|
||||
else
|
||||
setenv( code, false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if code == "Cancel" then
|
||||
setenv("GradeReverse"..player,false)
|
||||
end
|
||||
|
||||
MESSAGEMAN:Broadcast("PlayerOptionsChanged", { PlayerNumber = player })
|
||||
--SOUND:PlayOnce(THEME:GetPathS("ScreenSelectMusic","Options"))
|
||||
else
|
||||
if code == "Summon" then
|
||||
--this lua binding is awesome
|
||||
--SCREENMAN:SystemMessage(ToEnumShortString(player).." opened the oplist")
|
||||
self:sleep(0.5);
|
||||
self:queuecommand("OpenCustomOpList");
|
||||
end
|
||||
end
|
||||
end;
|
||||
OpenCustomOpListCommand=function(self) SCREENMAN:AddNewScreenToTop("ScreenCustomOptionsList") end;
|
||||
PlayerOptionsChangedMessageCommand=function(self,params)
|
||||
local player = params.PlayerNumber
|
||||
local playermods = GAMESTATE:GetPlayerState(player):GetPlayerOptions('ModsLevel_Preferred')
|
||||
--SCREENMAN:SystemMessage(ToEnumShortString(player).." mods: "..playermods);
|
||||
end;
|
||||
LoadSound("START")..{
|
||||
OffCommand=cmd(play);
|
||||
};
|
||||
LoadSound("ScreenSelectMusic","Options")..{
|
||||
PlayerOptionsChangedMessageCommand=cmd(stop;play);
|
||||
};
|
||||
LoadSound("3-2")..{
|
||||
--TwoPartConfirmCanceledMessageCommand=cmd(play);
|
||||
SongChosenMessageCommand=cmd(stop;play);
|
||||
OffCommand=cmd(play);
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_impact 50px")..{
|
||||
Text="Epic fail...";
|
||||
InitCommand=cmd(Center;diffuse,color("#000000");Stroke,color("#ffffff"));
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
local song = GAMESTATE:GetCurrentSong()
|
||||
--assert(song,"WHY THIS HAPPENS LOL")
|
||||
if not song then
|
||||
song = SONGMAN:GetRandomSong()
|
||||
GAMESTATE:SetCurrentSong( song )
|
||||
|
||||
for k,v in ipairs(PlayerNumber) do
|
||||
local stepsplayer = GAMESTATE:GetCurrentSteps(v)
|
||||
steps = song:GetOneSteps( stepsplayer:GetStepsType() , stepsplayer:GetDifficulty() )
|
||||
GAMESTATE:SetCurrentSteps( steps )
|
||||
end
|
||||
end
|
||||
|
||||
local path = song:GetBackgroundPath()
|
||||
|
||||
SplitMode();
|
||||
|
||||
if not path then
|
||||
path = THEME:GetPathG("Common", "fallback background")
|
||||
end
|
||||
|
||||
return LoadActor(path)..{
|
||||
InitCommand=cmd(scaletocover,0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
|
||||
};
|
||||
@@ -0,0 +1,79 @@
|
||||
local function PlayerName(player)
|
||||
local puns = {
|
||||
--TODO: add moar...
|
||||
["asd"] = "qwe";
|
||||
["qwe"] = "asd";
|
||||
};
|
||||
|
||||
return LoadFont("_arial black 20px")..{
|
||||
--Text="PlaceHolder";
|
||||
InitCommand=cmd(zoomx,1);
|
||||
SetCommand=function(self)
|
||||
self:settext("");
|
||||
if PROFILEMAN:IsPersistentProfile(player) then
|
||||
local profile = PROFILEMAN:GetProfile(player)
|
||||
local name = profile:GetDisplayName()
|
||||
|
||||
if name == "" then
|
||||
name = string.gsub(player,"Number_P"," ")
|
||||
end
|
||||
--max 20 chars ºvº
|
||||
name = string.sub(name,1,20)
|
||||
--name = puns[name] or name
|
||||
|
||||
self:settext(name)
|
||||
end
|
||||
end;
|
||||
PlayerJoinedMessageCommand=cmd(playcommand,"Set");
|
||||
CoinInsertedMessageCommand=cmd(playcommand,"Set");
|
||||
CoinModeChangedMessageCommand=cmd(playcommand,"Set");
|
||||
ScreenChangedMessageCommand=cmd(playcommand,"Set");
|
||||
StorageDevicesChangedMessageCommand=cmd(playcommand,"Set");
|
||||
};
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_fixedsys")..{
|
||||
InitCommand=cmd(blend,'BlendMode_Add'xy,10,5;shadowlength,0;Stroke,{0,0,0,1};wrapwidthpixels,SCREEN_WIDTH*0.45;maxwidth,SCREEN_WIDTH*0.45;horizalign,left;SetTextureFiltering,false;vertalign,top;zoom,1.5);
|
||||
SystemMessageMessageCommand=function(self,params)
|
||||
self:settext(params.Message);
|
||||
self:finishtweening();
|
||||
self:diffusealpha(1);
|
||||
self:sleep(3);
|
||||
self:diffusealpha(0);
|
||||
end;
|
||||
HideSystemMessageMessageCommand=cmd(finishtweening);
|
||||
};
|
||||
|
||||
LoadFont("_arial black 20px")..{
|
||||
InitCommand=cmd(xy,SCREEN_CENTER_X,SCREEN_HEIGHT-20;zoom,1;shadowlength,0;playcommand,"Text");
|
||||
TextCommand=function(self)
|
||||
if GAMESTATE:GetCoinMode() == 'CoinMode_Pay' then
|
||||
local Coins = GAMESTATE:GetCoins()
|
||||
local CoinForCredit = GAMESTATE:GetCoinsNeededToJoin()
|
||||
local Credits = math.floor(Coins/CoinForCredit)
|
||||
local Remain = Coins % CoinForCredit
|
||||
self:settext(string.format("CREDIT(S) %i[%i/%i]", Credits, Remain, CoinForCredit))
|
||||
elseif GAMESTATE:GetCoinMode() == 'CoinMode_Free' then
|
||||
self:settext("Free Play")
|
||||
else --homemode
|
||||
self:settext("Home Mode");
|
||||
end
|
||||
end;
|
||||
PlayerJoinedMessageCommand=cmd(playcommand,"Text");
|
||||
CoinInsertedMessageCommand=cmd(playcommand,"Text");
|
||||
CoinModeChangedMessageCommand=cmd(playcommand,"Text");
|
||||
ScreenChangedMessageCommand=cmd(playcommand,"Text");
|
||||
};
|
||||
|
||||
ScreenChangedMessageCommand=function(self)
|
||||
self:visible(THEME:GetMetric(SCREENMAN:GetTopScreen():GetName(),"ShowCreditDisplay"));
|
||||
end;
|
||||
|
||||
PlayerName(PLAYER_1)..{
|
||||
InitCommand=cmd(xy,20,SCREEN_HEIGHT-20;horizalign,left);
|
||||
};
|
||||
PlayerName(PLAYER_2)..{
|
||||
InitCommand=cmd(xy,SCREEN_WIDTH-20,SCREEN_HEIGHT-20;horizalign,right);
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
return Def.ActorFrame {
|
||||
LoadFont("_arial black 20px")..{
|
||||
Text="Background logo or video must go here...";
|
||||
InitCommand=cmd(CenterX;y,200;Stroke,color("#000000"));
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
local particles = {
|
||||
Def.Quad { InitCommand=cmd(FullScreen;diffuse,color("#003200");diffusetopedge,color("#000000")); }
|
||||
}
|
||||
|
||||
for i=1,30 do
|
||||
particles[#particles+1] = Draw.Oval(math.random(20,80))..{
|
||||
InitCommand=function(self)
|
||||
self:finishtweening();
|
||||
self:decelerate(0.25);
|
||||
|
||||
self:x(math.random(20,SCREEN_WIDTH-20));
|
||||
self:y(math.random(20,SCREEN_HEIGHT-20));
|
||||
|
||||
self:diffuse(math.random(0.2,1),math.random(0.2,1),math.random(0.2,1),math.random(0.75,0.95))
|
||||
end;
|
||||
ScreenChangedMessageCommand=cmd(playcommand,"Init");
|
||||
}
|
||||
end
|
||||
|
||||
return Def.ActorFrame {
|
||||
children = particles;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
--stolen from default theme
|
||||
local File, Width = ...
|
||||
assert( File );
|
||||
assert( Width );
|
||||
|
||||
local FullFile = THEME:GetPathB('','_frame files 3x1/'..File )
|
||||
local Frame = LoadActor( FullFile )
|
||||
|
||||
return Def.ActorFrame {
|
||||
Frame .. { InitCommand=cmd(setstate,0;pause;horizalign,right;x,-Width/2) };
|
||||
Frame .. { InitCommand=cmd(setstate,1;pause;zoomtowidth,Width) };
|
||||
Frame .. { InitCommand=cmd(setstate,2;pause;horizalign,left;x,Width/2) };
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
_arial black 20px
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 74 KiB |
@@ -0,0 +1,352 @@
|
||||
[common]
|
||||
Baseline=25
|
||||
Top=11
|
||||
LineSpacing=28
|
||||
DrawExtraPixelsLeft=1
|
||||
DrawExtraPixelsRight=0
|
||||
AdvanceExtraPixels=0
|
||||
|
||||
[main]
|
||||
Line 0= !"#$%&'()*+,-.
|
||||
Line 1=/0123456789:;<=
|
||||
Line 2=>?@ABCDEFGHIJKL
|
||||
Line 3=MNOPQRSTUVWXYZ[
|
||||
Line 4=\]^_`abcdefghij
|
||||
Line 5=klmnopqrstuvwxy
|
||||
Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š
|
||||
Line 7=‹ŒŽ‘’“”•–—˜™š›œ
|
||||
Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬
|
||||
Line 9=®¯°±²³´µ¶·¸¹º»
|
||||
Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ
|
||||
Line 11=ËÌÍÎÏÐÑÒÓÔÕÖרÙ
|
||||
Line 12=ÚÛÜÝÞßàáâãäåæçè
|
||||
Line 13=éêëìíîïðñòóôõö÷
|
||||
Line 14=øùúûüýþÿ
|
||||
|
||||
0=7
|
||||
1=7
|
||||
2=10
|
||||
3=13
|
||||
4=13
|
||||
5=20
|
||||
6=18
|
||||
7=6
|
||||
8=8
|
||||
9=8
|
||||
10=11
|
||||
11=13
|
||||
12=7
|
||||
13=7
|
||||
14=7
|
||||
15=6
|
||||
16=13
|
||||
17=13
|
||||
18=13
|
||||
19=13
|
||||
20=13
|
||||
21=13
|
||||
22=13
|
||||
23=13
|
||||
24=13
|
||||
25=13
|
||||
26=7
|
||||
27=7
|
||||
28=13
|
||||
29=13
|
||||
30=13
|
||||
31=12
|
||||
32=15
|
||||
33=16
|
||||
34=16
|
||||
35=16
|
||||
36=16
|
||||
37=14
|
||||
38=13
|
||||
39=17
|
||||
40=17
|
||||
41=8
|
||||
42=13
|
||||
43=17
|
||||
44=13
|
||||
45=19
|
||||
46=17
|
||||
47=17
|
||||
48=14
|
||||
49=17
|
||||
50=16
|
||||
51=14
|
||||
52=14
|
||||
53=17
|
||||
54=16
|
||||
55=20
|
||||
56=16
|
||||
57=16
|
||||
58=14
|
||||
59=8
|
||||
60=6
|
||||
61=8
|
||||
62=13
|
||||
63=10
|
||||
64=7
|
||||
65=13
|
||||
66=13
|
||||
67=13
|
||||
68=13
|
||||
69=13
|
||||
70=8
|
||||
71=13
|
||||
72=13
|
||||
73=7
|
||||
74=7
|
||||
75=13
|
||||
76=7
|
||||
77=20
|
||||
78=13
|
||||
79=13
|
||||
80=13
|
||||
81=13
|
||||
82=9
|
||||
83=12
|
||||
84=9
|
||||
85=13
|
||||
86=12
|
||||
87=19
|
||||
88=13
|
||||
89=12
|
||||
90=11
|
||||
91=8
|
||||
92=6
|
||||
93=8
|
||||
94=13
|
||||
95=13
|
||||
96=6
|
||||
97=13
|
||||
98=10
|
||||
99=20
|
||||
100=13
|
||||
101=13
|
||||
102=7
|
||||
103=20
|
||||
104=14
|
||||
105=7
|
||||
106=20
|
||||
107=14
|
||||
108=6
|
||||
109=6
|
||||
110=10
|
||||
111=10
|
||||
112=10
|
||||
113=10
|
||||
114=20
|
||||
115=7
|
||||
116=19
|
||||
117=12
|
||||
118=7
|
||||
119=20
|
||||
120=11
|
||||
121=16
|
||||
122=7
|
||||
123=7
|
||||
124=13
|
||||
125=13
|
||||
126=13
|
||||
127=13
|
||||
128=6
|
||||
129=13
|
||||
130=7
|
||||
131=16
|
||||
132=8
|
||||
133=13
|
||||
134=13
|
||||
135=7
|
||||
136=16
|
||||
137=10
|
||||
138=8
|
||||
139=13
|
||||
140=8
|
||||
141=8
|
||||
142=7
|
||||
143=13
|
||||
144=17
|
||||
145=7
|
||||
146=7
|
||||
147=8
|
||||
148=8
|
||||
149=13
|
||||
150=20
|
||||
151=20
|
||||
152=20
|
||||
153=12
|
||||
154=16
|
||||
155=16
|
||||
156=16
|
||||
157=16
|
||||
158=16
|
||||
159=16
|
||||
160=20
|
||||
161=16
|
||||
162=14
|
||||
163=14
|
||||
164=14
|
||||
165=14
|
||||
166=8
|
||||
167=8
|
||||
168=8
|
||||
169=8
|
||||
170=16
|
||||
171=17
|
||||
172=17
|
||||
173=17
|
||||
174=17
|
||||
175=17
|
||||
176=17
|
||||
177=13
|
||||
178=17
|
||||
179=17
|
||||
180=17
|
||||
181=17
|
||||
182=17
|
||||
183=16
|
||||
184=14
|
||||
185=13
|
||||
186=13
|
||||
187=13
|
||||
188=13
|
||||
189=13
|
||||
190=13
|
||||
191=13
|
||||
192=20
|
||||
193=13
|
||||
194=13
|
||||
195=13
|
||||
196=13
|
||||
197=13
|
||||
198=7
|
||||
199=7
|
||||
200=7
|
||||
201=7
|
||||
202=13
|
||||
203=13
|
||||
204=13
|
||||
205=13
|
||||
206=13
|
||||
207=13
|
||||
208=13
|
||||
209=13
|
||||
210=13
|
||||
211=13
|
||||
212=13
|
||||
213=13
|
||||
214=13
|
||||
215=12
|
||||
216=13
|
||||
217=12
|
||||
|
||||
[alt]
|
||||
Line 0= Ą˘Ł¤ĽŚ§¨Š
|
||||
Line 1=ŞŤŹŽŻ°ą˛ł
|
||||
Line 2=´ľśˇ¸šşťź˝
|
||||
Line 3=žżŔÁÂĂÄĹĆÇ
|
||||
Line 4=ČÉĘËĚÍÎĎĐŃ
|
||||
Line 5=ŇÓÔŐÖ×ŘŮÚŰ
|
||||
Line 6=ÜÝŢßŕáâăäĺ
|
||||
Line 7=ćçčéęëěíîď
|
||||
Line 8=đńňóôőö÷řů
|
||||
Line 9=úűüýţ˙
|
||||
|
||||
0=7
|
||||
1=16
|
||||
2=7
|
||||
3=13
|
||||
4=13
|
||||
5=13
|
||||
6=14
|
||||
7=13
|
||||
8=7
|
||||
9=14
|
||||
10=14
|
||||
11=14
|
||||
12=14
|
||||
13=7
|
||||
14=14
|
||||
15=14
|
||||
16=8
|
||||
17=13
|
||||
18=7
|
||||
19=7
|
||||
20=7
|
||||
21=10
|
||||
22=12
|
||||
23=7
|
||||
24=7
|
||||
25=12
|
||||
26=12
|
||||
27=13
|
||||
28=11
|
||||
29=7
|
||||
30=11
|
||||
31=11
|
||||
32=16
|
||||
33=16
|
||||
34=16
|
||||
35=16
|
||||
36=16
|
||||
37=13
|
||||
38=16
|
||||
39=16
|
||||
40=16
|
||||
41=14
|
||||
42=14
|
||||
43=14
|
||||
44=14
|
||||
45=8
|
||||
46=8
|
||||
47=16
|
||||
48=16
|
||||
49=17
|
||||
50=17
|
||||
51=17
|
||||
52=17
|
||||
53=17
|
||||
54=17
|
||||
55=13
|
||||
56=16
|
||||
57=17
|
||||
58=17
|
||||
59=17
|
||||
60=17
|
||||
61=16
|
||||
62=14
|
||||
63=13
|
||||
64=9
|
||||
65=13
|
||||
66=13
|
||||
67=13
|
||||
68=13
|
||||
69=7
|
||||
70=13
|
||||
71=13
|
||||
72=13
|
||||
73=13
|
||||
74=13
|
||||
75=13
|
||||
76=13
|
||||
77=7
|
||||
78=7
|
||||
79=17
|
||||
80=13
|
||||
81=13
|
||||
82=13
|
||||
83=13
|
||||
84=13
|
||||
85=13
|
||||
86=13
|
||||
87=13
|
||||
88=9
|
||||
89=13
|
||||
90=13
|
||||
91=13
|
||||
92=13
|
||||
93=12
|
||||
94=9
|
||||
95=7
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
@@ -0,0 +1,352 @@
|
||||
[common]
|
||||
Baseline=13
|
||||
Top=4
|
||||
LineSpacing=15
|
||||
DrawExtraPixelsLeft=0
|
||||
DrawExtraPixelsRight=0
|
||||
AdvanceExtraPixels=0
|
||||
|
||||
[main]
|
||||
Line 0= !"#$%&'()*+,-.
|
||||
Line 1=/0123456789:;<=
|
||||
Line 2=>?@ABCDEFGHIJKL
|
||||
Line 3=MNOPQRSTUVWXYZ[
|
||||
Line 4=\]^_`abcdefghij
|
||||
Line 5=klmnopqrstuvwxy
|
||||
Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š
|
||||
Line 7=‹ŒŽ‘’“”•–—˜™š›œ
|
||||
Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬
|
||||
Line 9=®¯°±²³´µ¶·¸¹º»
|
||||
Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ
|
||||
Line 11=ËÌÍÎÏÐÑÒÓÔÕÖרÙ
|
||||
Line 12=ÚÛÜÝÞßàáâãäåæçè
|
||||
Line 13=éêëìíîïðñòóôõö÷
|
||||
Line 14=øùúûüýþÿ
|
||||
|
||||
0=8
|
||||
1=8
|
||||
2=8
|
||||
3=8
|
||||
4=8
|
||||
5=8
|
||||
6=8
|
||||
7=8
|
||||
8=8
|
||||
9=8
|
||||
10=8
|
||||
11=8
|
||||
12=8
|
||||
13=8
|
||||
14=8
|
||||
15=8
|
||||
16=8
|
||||
17=8
|
||||
18=8
|
||||
19=8
|
||||
20=8
|
||||
21=8
|
||||
22=8
|
||||
23=8
|
||||
24=8
|
||||
25=8
|
||||
26=8
|
||||
27=8
|
||||
28=8
|
||||
29=8
|
||||
30=8
|
||||
31=8
|
||||
32=8
|
||||
33=8
|
||||
34=8
|
||||
35=8
|
||||
36=8
|
||||
37=8
|
||||
38=8
|
||||
39=8
|
||||
40=8
|
||||
41=8
|
||||
42=8
|
||||
43=8
|
||||
44=8
|
||||
45=8
|
||||
46=8
|
||||
47=8
|
||||
48=8
|
||||
49=8
|
||||
50=8
|
||||
51=8
|
||||
52=8
|
||||
53=8
|
||||
54=8
|
||||
55=8
|
||||
56=8
|
||||
57=8
|
||||
58=8
|
||||
59=8
|
||||
60=8
|
||||
61=8
|
||||
62=8
|
||||
63=8
|
||||
64=8
|
||||
65=8
|
||||
66=8
|
||||
67=8
|
||||
68=8
|
||||
69=8
|
||||
70=8
|
||||
71=8
|
||||
72=8
|
||||
73=8
|
||||
74=8
|
||||
75=8
|
||||
76=8
|
||||
77=8
|
||||
78=8
|
||||
79=8
|
||||
80=8
|
||||
81=8
|
||||
82=8
|
||||
83=8
|
||||
84=8
|
||||
85=8
|
||||
86=8
|
||||
87=8
|
||||
88=8
|
||||
89=8
|
||||
90=8
|
||||
91=8
|
||||
92=8
|
||||
93=8
|
||||
94=8
|
||||
95=8
|
||||
96=8
|
||||
97=8
|
||||
98=8
|
||||
99=8
|
||||
100=8
|
||||
101=8
|
||||
102=8
|
||||
103=8
|
||||
104=8
|
||||
105=8
|
||||
106=8
|
||||
107=8
|
||||
108=8
|
||||
109=8
|
||||
110=8
|
||||
111=8
|
||||
112=8
|
||||
113=8
|
||||
114=8
|
||||
115=8
|
||||
116=8
|
||||
117=8
|
||||
118=8
|
||||
119=8
|
||||
120=8
|
||||
121=8
|
||||
122=8
|
||||
123=8
|
||||
124=8
|
||||
125=8
|
||||
126=8
|
||||
127=8
|
||||
128=8
|
||||
129=8
|
||||
130=8
|
||||
131=8
|
||||
132=8
|
||||
133=8
|
||||
134=8
|
||||
135=8
|
||||
136=8
|
||||
137=8
|
||||
138=8
|
||||
139=8
|
||||
140=8
|
||||
141=8
|
||||
142=8
|
||||
143=8
|
||||
144=8
|
||||
145=8
|
||||
146=8
|
||||
147=8
|
||||
148=8
|
||||
149=8
|
||||
150=8
|
||||
151=8
|
||||
152=8
|
||||
153=8
|
||||
154=8
|
||||
155=8
|
||||
156=8
|
||||
157=8
|
||||
158=8
|
||||
159=8
|
||||
160=8
|
||||
161=8
|
||||
162=8
|
||||
163=8
|
||||
164=8
|
||||
165=8
|
||||
166=8
|
||||
167=8
|
||||
168=8
|
||||
169=8
|
||||
170=8
|
||||
171=8
|
||||
172=8
|
||||
173=8
|
||||
174=8
|
||||
175=8
|
||||
176=8
|
||||
177=8
|
||||
178=8
|
||||
179=8
|
||||
180=8
|
||||
181=8
|
||||
182=8
|
||||
183=8
|
||||
184=8
|
||||
185=8
|
||||
186=8
|
||||
187=8
|
||||
188=8
|
||||
189=8
|
||||
190=8
|
||||
191=8
|
||||
192=8
|
||||
193=8
|
||||
194=8
|
||||
195=8
|
||||
196=8
|
||||
197=8
|
||||
198=8
|
||||
199=8
|
||||
200=8
|
||||
201=8
|
||||
202=8
|
||||
203=8
|
||||
204=8
|
||||
205=8
|
||||
206=8
|
||||
207=8
|
||||
208=8
|
||||
209=8
|
||||
210=8
|
||||
211=8
|
||||
212=8
|
||||
213=8
|
||||
214=8
|
||||
215=8
|
||||
216=8
|
||||
217=8
|
||||
|
||||
[alt]
|
||||
Line 0= Ą˘Ł¤ĽŚ§¨Š
|
||||
Line 1=ŞŤŹŽŻ°ą˛ł
|
||||
Line 2=´ľśˇ¸šşťź˝
|
||||
Line 3=žżŔÁÂĂÄĹĆÇ
|
||||
Line 4=ČÉĘËĚÍÎĎĐŃ
|
||||
Line 5=ŇÓÔŐÖ×ŘŮÚŰ
|
||||
Line 6=ÜÝŢßŕáâăäĺ
|
||||
Line 7=ćçčéęëěíîď
|
||||
Line 8=đńňóôőö÷řů
|
||||
Line 9=úűüýţ˙
|
||||
|
||||
0=8
|
||||
1=8
|
||||
2=8
|
||||
3=8
|
||||
4=8
|
||||
5=8
|
||||
6=8
|
||||
7=8
|
||||
8=8
|
||||
9=8
|
||||
10=8
|
||||
11=8
|
||||
12=8
|
||||
13=8
|
||||
14=8
|
||||
15=8
|
||||
16=8
|
||||
17=8
|
||||
18=8
|
||||
19=8
|
||||
20=8
|
||||
21=8
|
||||
22=8
|
||||
23=8
|
||||
24=8
|
||||
25=8
|
||||
26=8
|
||||
27=8
|
||||
28=8
|
||||
29=8
|
||||
30=8
|
||||
31=8
|
||||
32=8
|
||||
33=8
|
||||
34=8
|
||||
35=8
|
||||
36=8
|
||||
37=8
|
||||
38=8
|
||||
39=8
|
||||
40=8
|
||||
41=8
|
||||
42=8
|
||||
43=8
|
||||
44=8
|
||||
45=8
|
||||
46=8
|
||||
47=8
|
||||
48=8
|
||||
49=8
|
||||
50=8
|
||||
51=8
|
||||
52=8
|
||||
53=8
|
||||
54=8
|
||||
55=8
|
||||
56=8
|
||||
57=8
|
||||
58=8
|
||||
59=8
|
||||
60=8
|
||||
61=8
|
||||
62=8
|
||||
63=8
|
||||
64=8
|
||||
65=8
|
||||
66=8
|
||||
67=8
|
||||
68=8
|
||||
69=8
|
||||
70=8
|
||||
71=8
|
||||
72=8
|
||||
73=8
|
||||
74=8
|
||||
75=8
|
||||
76=8
|
||||
77=8
|
||||
78=8
|
||||
79=8
|
||||
80=8
|
||||
81=8
|
||||
82=8
|
||||
83=8
|
||||
84=8
|
||||
85=8
|
||||
86=8
|
||||
87=8
|
||||
88=8
|
||||
89=8
|
||||
90=8
|
||||
91=8
|
||||
92=8
|
||||
93=8
|
||||
94=8
|
||||
95=8
|
||||
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 197 KiB |
@@ -0,0 +1,352 @@
|
||||
[common]
|
||||
Baseline=57
|
||||
Top=18
|
||||
LineSpacing=50
|
||||
DrawExtraPixelsLeft=4
|
||||
DrawExtraPixelsRight=4
|
||||
AdvanceExtraPixels=0
|
||||
|
||||
[main]
|
||||
Line 0= !"#$%&'()*+,-.
|
||||
Line 1=/0123456789:;<=
|
||||
Line 2=>?@ABCDEFGHIJKL
|
||||
Line 3=MNOPQRSTUVWXYZ[
|
||||
Line 4=\]^_`abcdefghij
|
||||
Line 5=klmnopqrstuvwxy
|
||||
Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š
|
||||
Line 7=‹ŒŽ‘’“”•–—˜™š›œ
|
||||
Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬
|
||||
Line 9=®¯°±²³´µ¶·¸¹º»
|
||||
Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ
|
||||
Line 11=ËÌÍÎÏÐÑÒÓÔÕÖרÙ
|
||||
Line 12=ÚÛÜÝÞßàáâãäåæçè
|
||||
Line 13=éêëìíîïðñòóôõö÷
|
||||
Line 14=øùúûüýþÿ
|
||||
|
||||
0=9
|
||||
1=14
|
||||
2=18
|
||||
3=31
|
||||
4=27
|
||||
5=35
|
||||
6=29
|
||||
7=9
|
||||
8=16
|
||||
9=16
|
||||
10=14
|
||||
11=27
|
||||
12=8
|
||||
13=15
|
||||
14=9
|
||||
15=20
|
||||
16=27
|
||||
17=19
|
||||
18=25
|
||||
19=27
|
||||
20=25
|
||||
21=27
|
||||
22=27
|
||||
23=20
|
||||
24=27
|
||||
25=27
|
||||
26=10
|
||||
27=10
|
||||
28=27
|
||||
29=27
|
||||
30=27
|
||||
31=26
|
||||
32=39
|
||||
33=25
|
||||
34=28
|
||||
35=28
|
||||
36=28
|
||||
37=21
|
||||
38=20
|
||||
39=28
|
||||
40=28
|
||||
41=14
|
||||
42=17
|
||||
43=27
|
||||
44=19
|
||||
45=36
|
||||
46=27
|
||||
47=27
|
||||
48=25
|
||||
49=27
|
||||
50=27
|
||||
51=26
|
||||
52=23
|
||||
53=27
|
||||
54=25
|
||||
55=41
|
||||
56=23
|
||||
57=24
|
||||
58=20
|
||||
59=14
|
||||
60=20
|
||||
61=14
|
||||
62=24
|
||||
63=28
|
||||
64=17
|
||||
65=25
|
||||
66=26
|
||||
67=25
|
||||
68=26
|
||||
69=26
|
||||
70=14
|
||||
71=26
|
||||
72=26
|
||||
73=13
|
||||
74=13
|
||||
75=24
|
||||
76=13
|
||||
77=39
|
||||
78=26
|
||||
79=26
|
||||
80=26
|
||||
81=26
|
||||
82=18
|
||||
83=24
|
||||
84=15
|
||||
85=26
|
||||
86=22
|
||||
87=32
|
||||
88=22
|
||||
89=22
|
||||
90=18
|
||||
91=18
|
||||
92=14
|
||||
93=18
|
||||
94=26
|
||||
95=27
|
||||
96=8
|
||||
97=22
|
||||
98=17
|
||||
99=28
|
||||
100=27
|
||||
101=27
|
||||
102=17
|
||||
103=51
|
||||
104=26
|
||||
105=10
|
||||
106=34
|
||||
107=20
|
||||
108=8
|
||||
109=8
|
||||
110=17
|
||||
111=17
|
||||
112=17
|
||||
113=25
|
||||
114=50
|
||||
115=17
|
||||
116=39
|
||||
117=24
|
||||
118=10
|
||||
119=38
|
||||
120=18
|
||||
121=24
|
||||
122=9
|
||||
123=14
|
||||
124=26
|
||||
125=27
|
||||
126=27
|
||||
127=24
|
||||
128=14
|
||||
129=24
|
||||
130=17
|
||||
131=39
|
||||
132=16
|
||||
133=19
|
||||
134=27
|
||||
135=15
|
||||
136=39
|
||||
137=28
|
||||
138=17
|
||||
139=27
|
||||
140=16
|
||||
141=16
|
||||
142=17
|
||||
143=24
|
||||
144=29
|
||||
145=17
|
||||
146=17
|
||||
147=12
|
||||
148=16
|
||||
149=19
|
||||
150=31
|
||||
151=32
|
||||
152=35
|
||||
153=26
|
||||
154=25
|
||||
155=25
|
||||
156=25
|
||||
157=25
|
||||
158=25
|
||||
159=25
|
||||
160=36
|
||||
161=28
|
||||
162=21
|
||||
163=21
|
||||
164=21
|
||||
165=21
|
||||
166=14
|
||||
167=14
|
||||
168=14
|
||||
169=14
|
||||
170=28
|
||||
171=27
|
||||
172=27
|
||||
173=27
|
||||
174=27
|
||||
175=27
|
||||
176=27
|
||||
177=27
|
||||
178=27
|
||||
179=27
|
||||
180=27
|
||||
181=27
|
||||
182=27
|
||||
183=24
|
||||
184=25
|
||||
185=28
|
||||
186=25
|
||||
187=25
|
||||
188=25
|
||||
189=25
|
||||
190=25
|
||||
191=25
|
||||
192=38
|
||||
193=25
|
||||
194=26
|
||||
195=26
|
||||
196=26
|
||||
197=26
|
||||
198=13
|
||||
199=13
|
||||
200=13
|
||||
201=13
|
||||
202=26
|
||||
203=26
|
||||
204=26
|
||||
205=26
|
||||
206=26
|
||||
207=26
|
||||
208=26
|
||||
209=27
|
||||
210=26
|
||||
211=26
|
||||
212=26
|
||||
213=26
|
||||
214=26
|
||||
215=22
|
||||
216=26
|
||||
217=22
|
||||
|
||||
[alt]
|
||||
Line 0= Ą˘Ł¤ĽŚ§¨Š
|
||||
Line 1=ŞŤŹŽŻ°ą˛ł
|
||||
Line 2=´ľśˇ¸šşťź˝
|
||||
Line 3=žżŔÁÂĂÄĹĆÇ
|
||||
Line 4=ČÉĘËĚÍÎĎĐŃ
|
||||
Line 5=ŇÓÔŐÖ×ŘŮÚŰ
|
||||
Line 6=ÜÝŢßŕáâăäĺ
|
||||
Line 7=ćçčéęëěíîď
|
||||
Line 8=đńňóôőö÷řů
|
||||
Line 9=úűüýţ˙
|
||||
|
||||
0=9
|
||||
1=25
|
||||
2=17
|
||||
3=19
|
||||
4=27
|
||||
5=22
|
||||
6=26
|
||||
7=24
|
||||
8=17
|
||||
9=26
|
||||
10=26
|
||||
11=23
|
||||
12=20
|
||||
13=15
|
||||
14=20
|
||||
15=20
|
||||
16=17
|
||||
17=25
|
||||
18=17
|
||||
19=13
|
||||
20=17
|
||||
21=21
|
||||
22=24
|
||||
23=17
|
||||
24=17
|
||||
25=24
|
||||
26=24
|
||||
27=23
|
||||
28=18
|
||||
29=17
|
||||
30=18
|
||||
31=18
|
||||
32=27
|
||||
33=25
|
||||
34=25
|
||||
35=25
|
||||
36=25
|
||||
37=19
|
||||
38=28
|
||||
39=28
|
||||
40=28
|
||||
41=21
|
||||
42=21
|
||||
43=21
|
||||
44=21
|
||||
45=14
|
||||
46=14
|
||||
47=28
|
||||
48=28
|
||||
49=27
|
||||
50=27
|
||||
51=27
|
||||
52=27
|
||||
53=27
|
||||
54=27
|
||||
55=27
|
||||
56=27
|
||||
57=27
|
||||
58=27
|
||||
59=27
|
||||
60=27
|
||||
61=24
|
||||
62=23
|
||||
63=28
|
||||
64=18
|
||||
65=25
|
||||
66=25
|
||||
67=25
|
||||
68=25
|
||||
69=13
|
||||
70=25
|
||||
71=25
|
||||
72=25
|
||||
73=26
|
||||
74=26
|
||||
75=26
|
||||
76=26
|
||||
77=13
|
||||
78=13
|
||||
79=33
|
||||
80=26
|
||||
81=26
|
||||
82=26
|
||||
83=26
|
||||
84=26
|
||||
85=26
|
||||
86=26
|
||||
87=27
|
||||
88=18
|
||||
89=26
|
||||
90=26
|
||||
91=26
|
||||
92=26
|
||||
93=22
|
||||
94=15
|
||||
95=17
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
@@ -0,0 +1,3 @@
|
||||
[main]
|
||||
line 0=01234
|
||||
line 1=56789
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 433 B |
@@ -0,0 +1 @@
|
||||
MusicWheelItem SectionExpanded NormalPart
|
||||
@@ -0,0 +1,30 @@
|
||||
return Def.ActorFrame {
|
||||
Draw.RoundBox(276,212,20,20,color("#323232"));
|
||||
Draw.RoundBox(256,192,10,10)..{
|
||||
Name="ColorFill";
|
||||
--InitCommand=cmd(zoomto,256,192);
|
||||
SetMessageCommand=function(self,params)
|
||||
local color = {1,1,1,1}
|
||||
if PREFSMAN:GetPreference("MusicWheelUsesSections") ~= 'MusicWheelUsesSections_Never'
|
||||
and GAMESTATE:GetSortOrder() == 'SortOrder_Group'
|
||||
then
|
||||
local goupcolor = SONGMAN:GetSongGroupColor(params.SongGroup)
|
||||
|
||||
if goupcolor ~= nil then
|
||||
color = SONGMAN:GetSongGroupColor(params.SongGroup)
|
||||
end
|
||||
end
|
||||
|
||||
self:diffuse(color);
|
||||
end;
|
||||
};
|
||||
|
||||
LoadFont("_impact 50px")..{
|
||||
Name="GroupName";
|
||||
InitCommand=cmd(shadowlength,0;Stroke,color("#000000");maxwidth,210);
|
||||
SetMessageCommand=function(self,params)
|
||||
text = params.SongGroup
|
||||
self:settext(text);
|
||||
end;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
return Def.ActorFrame {
|
||||
Draw.RoundBox(276,212,20,20,color("#323232"));
|
||||
Def.Banner {
|
||||
Name="SongBanner";
|
||||
InitCommand=cmd(scaletoclipped,256,192);
|
||||
SetMessageCommand=function(self,params)
|
||||
local path = params.Song:GetBannerPath()
|
||||
if not path then path = THEME:GetPathG("Common","fallback banner") end
|
||||
|
||||
local bHighResTextures = PREFSMAN:GetPreference("HighResolutionTextures")
|
||||
|
||||
--banner loading stuff...
|
||||
--is on
|
||||
if bHighResTextures == 'HighResolutionTextures_ForceOn' or GetUserPrefB("goodbanners") then
|
||||
self:LoadFromSong(params.Song);
|
||||
--is off
|
||||
elseif bHighResTextures == 'HighResolutionTextures_ForceOff' then
|
||||
self:LoadFromCachedBanner(path);
|
||||
--is auto
|
||||
elseif bHighResTextures == 'HighResolutionTextures_Auto' then
|
||||
local iWidth = DISPLAY:GetDisplayHeight()
|
||||
--display is over ninethousand eh... 480
|
||||
if iWidth > 480 then
|
||||
self:LoadFromSong(params.Song);
|
||||
--display is 480 or less
|
||||
else
|
||||
self:LoadFromCachedBanner(path);
|
||||
end
|
||||
end
|
||||
end;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
_blank
|
||||
@@ -0,0 +1,120 @@
|
||||
--Sí, ando usando judge premiere para el themekit ¿Y qué?
|
||||
local player = Var "Player"
|
||||
-- blah
|
||||
--if not getenv then getenv = function() return false end end
|
||||
|
||||
--frame correspondiente de cada judgment
|
||||
local TNSframe = {
|
||||
TapNoteScore_CheckpointHit = 0;
|
||||
TapNoteScore_W1 = 0;
|
||||
TapNoteScore_W2 = 0;
|
||||
TapNoteScore_W3 = 1;
|
||||
TapNoteScore_W4 = 2;
|
||||
TapNoteScore_W5 = 3;
|
||||
TapNoteScore_Miss = 4;
|
||||
TapNoteScore_CheckpointMiss = 4;
|
||||
}
|
||||
|
||||
--frames para RG
|
||||
local TNSframeReversed = {
|
||||
TapNoteScore_CheckpointHit = 4;
|
||||
TapNoteScore_W1 = 4;
|
||||
TapNoteScore_W2 = 4;
|
||||
TapNoteScore_W3 = 3;
|
||||
TapNoteScore_W4 = 2;
|
||||
TapNoteScore_W5 = 1;
|
||||
TapNoteScore_Miss = 0;
|
||||
TapNoteScore_CheckpointMiss = 0;
|
||||
}
|
||||
|
||||
return Def.ActorFrame {
|
||||
--init
|
||||
InitCommand=function(self)
|
||||
local this = self:GetChildren()
|
||||
this.judgm:pause();
|
||||
|
||||
--this.judgm:y(-35);
|
||||
--this.combo:y(42);
|
||||
|
||||
this.combo:vertalign(top);
|
||||
this.label:vertalign(top);
|
||||
|
||||
this.judgm:visible(false);
|
||||
this.combo:visible(false);
|
||||
this.label:visible(false);
|
||||
|
||||
--self:runcommandsonleaves(cmd( SetTextureFiltering,false ))
|
||||
end;
|
||||
|
||||
--judges
|
||||
LoadActor("judge")..{
|
||||
Name="judgm";
|
||||
NormalCommand=cmd(shadowlength,0;diffusealpha,1;zoomx,0.913;zoomy,1.175;decelerate,0.175;zoomx,0.62;zoomy,0.78;accelerate,0.06;zoomx,0.63;zoomy,0.82;sleep,0.04;diffusealpha,0.5;zoomx,0.97;zoomy,0.82;sleep,0.04;zoomx,0.63;zoomy,0.82;decelerate,0.175;zoomx,0.82;zoomy,0.82;diffusealpha,0)
|
||||
};
|
||||
--label
|
||||
LoadActor("label")..{
|
||||
Name="label";
|
||||
NormalCommand=cmd(shadowlength,0;diffusealpha,1;zoomx,1.58;zoomy,1.6;y,100;decelerate,0.175;zoomx,1.09;zoomy,1.1;y,70;accelerate,0.06;zoomx,1.14;zoomy,1.1;y,71;sleep,0.04;diffusealpha,0.5;zoomx,1.66;zoomy,1.1;sleep,0.04;zoomx,1.14;zoomy,1.1;decelerate,0.175;zoomx,1.34;zoomy,1.1;diffusealpha,0)
|
||||
};
|
||||
--combo
|
||||
LoadFont("combo")..{
|
||||
Name="combo";
|
||||
NormalCommand=cmd(shadowlength,0;diffusealpha,1;zoomx,1.58;zoomy,1.6;y,30;decelerate,0.175;zoomx,1.09;zoomy,1.1;y,21;accelerate,0.06;zoomx,1.14;zoomy,1.1;y,22;sleep,0.04;diffusealpha,0.5;zoomx,1.66;zoomy,1.1;sleep,0.04;zoomx,1.14;zoomy,1.1;decelerate,0.175;zoomx,1.34;zoomy,1.1;diffusealpha,0)
|
||||
};
|
||||
|
||||
--"PERFECT"!
|
||||
JudgmentMessageCommand=function(self,param)
|
||||
local this = self:GetChildren()
|
||||
local iTns = TNSframe[param.TapNoteScore]
|
||||
|
||||
if getenv("ReverseGrade"..player) then
|
||||
iTns = TNSframeReversed[param.TapNoteScore]
|
||||
end
|
||||
|
||||
--no player, no job
|
||||
if param.Player ~= player then return end
|
||||
if param.HoldNoteScore then return end
|
||||
|
||||
this.judgm:visible(true);
|
||||
this.judgm:setstate(iTns);
|
||||
--this.combo:visible(true);
|
||||
--this.label:visible(true);
|
||||
|
||||
this.judgm:stoptweening();
|
||||
this.judgm:queuecommand("Normal");
|
||||
end;
|
||||
|
||||
ComboCommand=function(self,param)
|
||||
local this = self:GetChildren()
|
||||
local combo = param.Misses or param.Combo;
|
||||
|
||||
--color misses o RG
|
||||
local ccolor
|
||||
if param.Misses then
|
||||
ccolor = color("1,0,0,1");
|
||||
--GradeReverse, combo misses no rojo
|
||||
--puedes cambiar userprefs por getenv
|
||||
if getenv("ReverseGrade"..player) then
|
||||
ccolor = color("1,1,1,1");
|
||||
end
|
||||
else
|
||||
ccolor = color("1,1,1,1");
|
||||
--GradeReverse, combo rojo
|
||||
if getenv("ReverseGrade"..player) then
|
||||
ccolor = color("1,0,0,1");
|
||||
end
|
||||
end;
|
||||
|
||||
--visibilidad
|
||||
this.combo:visible(combo >= 4);
|
||||
this.combo:stoptweening();
|
||||
this.combo:settextf("%03i",combo);
|
||||
this.combo:diffuse(ccolor);
|
||||
this.combo:queuecommand("Normal");
|
||||
|
||||
this.label:visible(combo >= 4);
|
||||
this.label:stoptweening();
|
||||
this.label:diffuse(ccolor);
|
||||
this.label:queuecommand("Normal");
|
||||
end;
|
||||
}
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 914 B |
@@ -0,0 +1,6 @@
|
||||
return LoadFont("Common", "Normal")..{
|
||||
Text="EXIT";
|
||||
InitCommand=cmd(CenterX);
|
||||
GainFocusCommand=cmd(diffuse,color("#FF0000"));
|
||||
LoseFocusCommand=cmd(diffuse,color("#FFFFFF"));
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
local gc = Var("GameCommand");
|
||||
|
||||
return Def.ActorFrame {
|
||||
InitCommand=function(self)
|
||||
local this = self:GetChildren()
|
||||
this.ttf:settext(gc:GetText());
|
||||
this.ttf:Stroke(color("#000000"));
|
||||
this.ttf:diffuse(color("#ffffff"));
|
||||
--this.bkg:zoomto(150,40);
|
||||
--this.bkg:diffuse(color("#c0c0c0"));
|
||||
--this.bkg:fadeleft(0.2);
|
||||
--this.bkg:faderight(0.2);
|
||||
end;
|
||||
--GainFocusCommand=cmd(stoptweening;zoom,1.2);
|
||||
--LoseFocusCommand=cmd(stoptweening;zoom,1.0);
|
||||
--Def.Quad { Name="bkg" };
|
||||
LoadFont("_arial", "black 20px")..{ Name="ttf" };
|
||||
};
|
||||
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,57 @@
|
||||
[Common]
|
||||
WindowTitle=THEMEKIT PIU
|
||||
|
||||
[Judgment]
|
||||
W1=TERRIFIC
|
||||
W2=PERFECT
|
||||
W3=GREAT
|
||||
W4=GOOD
|
||||
W5=BAD
|
||||
Miss=MISS
|
||||
|
||||
[OptionTitles]
|
||||
OptionsMode=Options Type
|
||||
|
||||
[OptionExplanations]
|
||||
OptionsMode=magic
|
||||
|
||||
[OptionNames]
|
||||
0.5x=0.5x
|
||||
1.5x=1.5x
|
||||
1x=1x
|
||||
2x=2x
|
||||
3x=3x
|
||||
4x=4x
|
||||
5x=5x
|
||||
6x=6x
|
||||
7x=7x
|
||||
8x=8x
|
||||
|
||||
Speed=Speed
|
||||
Noteskins=Noteskins
|
||||
FadeNotes=Fade Notes
|
||||
Scroll=Scroll
|
||||
Effect=Effect
|
||||
Receptor=Receptor
|
||||
ResetOptions=Reset Options
|
||||
|
||||
Vanish=Vanish
|
||||
RndVanish=Random Vanish
|
||||
Appear=Appear
|
||||
Nonstep=Nonstep
|
||||
|
||||
Accel=Acceleration
|
||||
Decel=Deceleration
|
||||
Worm=EarthWorm
|
||||
|
||||
Spin=Spin
|
||||
Snake=Snake
|
||||
Drift=Drift
|
||||
Shrink=Shrink
|
||||
Jumps=Jumps
|
||||
|
||||
Freedom=Freedom
|
||||
Center=Center
|
||||
|
||||
Codes=Custom Code Detector
|
||||
OptionsList=Custom Options List
|
||||
@@ -0,0 +1,18 @@
|
||||
ThemeInfo = {
|
||||
Name="_Themekit_PIU";
|
||||
Version="pretty much final";
|
||||
Code="DSMT-PIUKIT";
|
||||
Date = {31,7,2010};
|
||||
};
|
||||
|
||||
WORKING_VERSION = (ProductVersion() == "v1.0 rc2")
|
||||
|
||||
if GetUserPrefB("OptionsMode") == nil then
|
||||
SetUserPref("OptionsMode", false)
|
||||
end
|
||||
|
||||
--no anda así, mejor uso pantallas
|
||||
--assert(SSC and WORKING_VERSION, "El Themekit PIU es compatible sólo con SM-SSC")
|
||||
|
||||
--not working like this, better use screens
|
||||
--assert(SSC and WORKING_VERSION, "Themekit PIU is compatible only with SM-SSC RC1.5")
|
||||