231 lines
8.0 KiB
Lua
231 lines
8.0 KiB
Lua
local t = Def.ActorFrame {};
|
|
local function UpdateTime(self)
|
|
local c = self:GetChildren();
|
|
for pn in ivalues(PlayerNumber) do
|
|
local vStats = STATSMAN:GetCurStageStats():GetPlayerStageStats( pn );
|
|
local vTime;
|
|
local obj = self:GetChild( string.format("RemainingTime" .. PlayerNumberToString(pn) ) );
|
|
if vStats and obj then
|
|
vTime = vStats:GetLifeRemainingSeconds()
|
|
obj:settext( SecondsToMMSSMsMs( vTime ) );
|
|
end;
|
|
end;
|
|
end
|
|
local function songMeterScale(val) return scale(val,0,1,-380/2,380/2) end
|
|
|
|
if GAMESTATE:GetCurrentCourse() then
|
|
if GAMESTATE:GetCurrentCourse():GetCourseType() == "CourseType_Survival" then
|
|
-- RemainingTime
|
|
for pn in ivalues(PlayerNumber) do
|
|
local MetricsName = "RemainingTime" .. PlayerNumberToString(pn);
|
|
t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "RemainingTime"), pn ) .. {
|
|
InitCommand=function(self)
|
|
self:player(pn);
|
|
self:name(MetricsName);
|
|
ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen");
|
|
end;
|
|
};
|
|
end
|
|
for pn in ivalues(PlayerNumber) do
|
|
local MetricsName = "DeltaSeconds" .. PlayerNumberToString(pn);
|
|
t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "DeltaSeconds"), pn ) .. {
|
|
InitCommand=function(self)
|
|
self:player(pn);
|
|
self:name(MetricsName);
|
|
ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen");
|
|
end;
|
|
};
|
|
end
|
|
end;
|
|
end;
|
|
t.InitCommand=cmd(SetUpdateFunction,UpdateTime);
|
|
|
|
if GAMESTATE:GetPlayMode() ~= 'PlayMode_Rave' then
|
|
for ip, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do
|
|
if ShowStandardDecoration("LifeMeterBar" .. ToEnumShortString(pn)) then
|
|
local life_type = GAMESTATE:GetPlayerState(pn):GetPlayerOptions("ModsLevel_Song"):LifeSetting()
|
|
t[#t+1] = LoadActor(THEME:GetPathG(Var "LoadingScreen", "lifebar_" .. ToEnumShortString(life_type)), pn) .. {
|
|
InitCommand=function(self)
|
|
self:name("LifeMeterBar" .. ToEnumShortString(pn))
|
|
ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen")
|
|
end
|
|
}
|
|
end
|
|
end;
|
|
|
|
for ip, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do
|
|
local life_x_position = string.find(pn, "P1") and SCREEN_LEFT+40 or SCREEN_RIGHT-40
|
|
local life_tween = string.find(pn, "P1") and -1 or 1
|
|
local second_tween = string.find(pn, "P1") and 1 or -1
|
|
t[#t+1] = Def.ActorFrame {
|
|
InitCommand=cmd(x,life_x_position;y,SCREEN_CENTER_Y;rotationz,-90;);
|
|
OnCommand=cmd(addx,100*life_tween;sleep,1;decelerate,0.9;addx,100*second_tween);
|
|
OffCommand=cmd(sleep,1;decelerate,0.9;addx,100*life_tween;);
|
|
LoadActor(THEME:GetPathG("LifeMeter", "bar frame")) .. {
|
|
};
|
|
Def.ActorFrame {
|
|
InitCommand=cmd(x,-207;y,0;);
|
|
LoadActor("_diffdia") .. {
|
|
OnCommand=cmd(playcommand,"Set";);
|
|
["CurrentSteps"..ToEnumShortString(pn).."ChangedMessageCommand"]=cmd(playcommand,"Set";);
|
|
SetCommand=function(self)
|
|
steps_data = GAMESTATE:GetCurrentSteps(pn)
|
|
local song = GAMESTATE:GetCurrentSong();
|
|
if song then
|
|
if steps_data ~= nil then
|
|
local st = steps_data:GetStepsType();
|
|
local diff = steps_data:GetDifficulty();
|
|
local cd = GetCustomDifficulty(st, diff);
|
|
self:diffuse(CustomDifficultyToColor(cd));
|
|
end
|
|
end
|
|
end;
|
|
};
|
|
LoadFont("StepsDisplay description") .. {
|
|
InitCommand=cmd(zoom,0.75;horizalign,center;rotationz,90);
|
|
OnCommand=cmd(playcommand,"Set";);
|
|
["CurrentSteps"..ToEnumShortString(pn).."ChangedMessageCommand"]=cmd(playcommand,"Set";);
|
|
ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set");
|
|
SetCommand=function(self)
|
|
steps_data = GAMESTATE:GetCurrentSteps(pn)
|
|
local song = GAMESTATE:GetCurrentSong();
|
|
if song then
|
|
if steps_data ~= nil then
|
|
local st = steps_data:GetStepsType();
|
|
local diff = steps_data:GetDifficulty();
|
|
local cd = GetCustomDifficulty(st, diff);
|
|
self:settext(steps_data:GetMeter()):diffuse(color("#000000")):diffusealpha(0.8);
|
|
else
|
|
self:settext("")
|
|
end
|
|
else
|
|
self:settext("")
|
|
end
|
|
end
|
|
};
|
|
};
|
|
};
|
|
end;
|
|
end;
|
|
|
|
-- Move diamonds on battle
|
|
if GAMESTATE:GetPlayMode() == 'PlayMode_Rave' then
|
|
-- P1
|
|
t[#t+1] = Def.ActorFrame {
|
|
InitCommand=cmd(x,SCREEN_CENTER_X-110;y,SCREEN_BOTTOM-55;);
|
|
LoadActor("_diffdia") .. {
|
|
OnCommand=cmd(playcommand,"Set";);
|
|
CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set";);
|
|
SetCommand=function(self)
|
|
stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1)
|
|
local song = GAMESTATE:GetCurrentSong();
|
|
if song then
|
|
if stepsP1 ~= nil then
|
|
local st = stepsP1:GetStepsType();
|
|
local diff = stepsP1:GetDifficulty();
|
|
local cd = GetCustomDifficulty(st, diff);
|
|
self:diffuse(CustomDifficultyToColor(cd));
|
|
end
|
|
end
|
|
end;
|
|
};
|
|
LoadFont("StepsDisplay description") .. {
|
|
InitCommand=cmd(zoom,0.75;horizalign,center;);
|
|
OnCommand=cmd(playcommand,"Set";);
|
|
CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set";);
|
|
ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set");
|
|
SetCommand=function(self)
|
|
stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1)
|
|
local song = GAMESTATE:GetCurrentSong();
|
|
if song then
|
|
if stepsP1 ~= nil then
|
|
local st = stepsP1:GetStepsType();
|
|
local diff = stepsP1:GetDifficulty();
|
|
local cd = GetCustomDifficulty(st, diff);
|
|
self:settext(stepsP1:GetMeter()):diffuse(color("#000000")):diffusealpha(0.8);
|
|
else
|
|
self:settext("")
|
|
end
|
|
else
|
|
self:settext("")
|
|
end
|
|
end
|
|
};
|
|
};
|
|
-- P2
|
|
t[#t+1] = Def.ActorFrame {
|
|
InitCommand=cmd(x,SCREEN_CENTER_X+110;y,SCREEN_BOTTOM-55;);
|
|
LoadActor("_diffdia") .. {
|
|
OnCommand=cmd(playcommand,"Set";);
|
|
CurrentstepsP2ChangedMessageCommand=cmd(playcommand,"Set";);
|
|
SetCommand=function(self)
|
|
stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2)
|
|
local song = GAMESTATE:GetCurrentSong();
|
|
if song then
|
|
if stepsP2 ~= nil then
|
|
local st = stepsP2:GetStepsType();
|
|
local diff = stepsP2:GetDifficulty();
|
|
local cd = GetCustomDifficulty(st, diff);
|
|
self:diffuse(CustomDifficultyToColor(cd));
|
|
end
|
|
end
|
|
end;
|
|
};
|
|
LoadFont("StepsDisplay description") .. {
|
|
InitCommand=cmd(zoom,0.75;horizalign,center);
|
|
OnCommand=cmd(playcommand,"Set";);
|
|
CurrentstepsP2ChangedMessageCommand=cmd(playcommand,"Set";);
|
|
ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set");
|
|
SetCommand=function(self)
|
|
stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2)
|
|
local song = GAMESTATE:GetCurrentSong();
|
|
if song then
|
|
if stepsP2 ~= nil then
|
|
local st = stepsP2:GetStepsType();
|
|
local diff = stepsP2:GetDifficulty();
|
|
local cd = GetCustomDifficulty(st, diff);
|
|
self:settext(stepsP2:GetMeter()):diffuse(color("#000000")):diffusealpha(0.8);
|
|
else
|
|
self:settext("")
|
|
end
|
|
else
|
|
self:settext("")
|
|
end
|
|
end
|
|
};
|
|
};
|
|
end;
|
|
|
|
t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay");
|
|
t[#t+1] = Def.ActorFrame {
|
|
InitCommand=cmd(x,SCREEN_CENTER_X+103;y,SCREEN_BOTTOM-25;);
|
|
OnCommand=cmd(draworder,DrawOrder.Screen;addy,100;sleep,0.5;decelerate,0.7;addy,-100;);
|
|
OffCommand=cmd(sleep,1;decelerate,0.9;addy,100;);
|
|
Def.Quad {
|
|
InitCommand=cmd(zoomto,264,12);
|
|
OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.3;fadeleft,0.05;faderight,0.05);
|
|
};
|
|
Def.Quad {
|
|
InitCommand=cmd(zoomto,2,8);
|
|
OnCommand=cmd(x,songMeterScale(0.25);diffuse,PlayerColor(pn);diffusealpha,0.5);
|
|
};
|
|
Def.Quad {
|
|
InitCommand=cmd(zoomto,2,8);
|
|
OnCommand=cmd(x,songMeterScale(0.5);diffuse,PlayerColor(pn);diffusealpha,0.5);
|
|
};
|
|
Def.Quad {
|
|
InitCommand=cmd(zoomto,2,8);
|
|
OnCommand=cmd(x,songMeterScale(0.75);diffuse,PlayerColor(pn);diffusealpha,0.5);
|
|
};
|
|
Def.SongMeterDisplay {
|
|
StreamWidth=260;
|
|
Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream') )..{
|
|
InitCommand=cmd(diffuse,Color.White;diffusealpha,0.4;blend,Blend.Add;);
|
|
};
|
|
Tip=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'tip')) .. {
|
|
InitCommand=cmd(visible,false);
|
|
};
|
|
};
|
|
};
|
|
return t
|