Lots of bringing everything together today, huh?
@@ -51,6 +51,8 @@ function ScreenSelectMusic:setupmusicstagemods()
|
|||||||
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
|
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- if PREFSMAN:GetPreference("
|
||||||
|
|
||||||
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
|
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
|
||||||
MESSAGEMAN:Broadcast( "SongOptionsChanged" )
|
MESSAGEMAN:Broadcast( "SongOptionsChanged" )
|
||||||
end
|
end
|
||||||
|
|||||||
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,512 @@
|
|||||||
|
local t = Def.ActorFrame{}
|
||||||
|
|
||||||
|
local newBPS;
|
||||||
|
local oldBPS;
|
||||||
|
|
||||||
|
|
||||||
|
-- DECORATIONS ////////////////////////
|
||||||
|
|
||||||
|
-- Left Hex Corner Decoration
|
||||||
|
t[#t+1] = LoadActor("decoration_corner") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1));
|
||||||
|
OnCommand=cmd(horizalign,left;x,SCREEN_LEFT;vertalign,top;y,SCREEN_TOP;zoomy,0.4;zoomx,0.6;diffusealpha,0.3;blend,Blend.Add);
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Right Hex Corner Decoration
|
||||||
|
t[#t+1] = LoadActor("decoration_corner") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2));
|
||||||
|
OnCommand=cmd(horizalign,left;x,SCREEN_RIGHT;vertalign,top;y,SCREEN_TOP;zoomy,0.4;;zoomx,-0.6;diffusealpha,0.3;blend,Blend.Add);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
-- WAVY LINE (thanks AJ) ////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
--P1
|
||||||
|
t[#t+1] = LoadActor("hot_lores") .. {
|
||||||
|
OnCommand=cmd(diffusealpha,0;visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-26;texcoordvelocity,0.1,0;queuecommand,"Begin");
|
||||||
|
BeginCommand=function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
local move = GAMESTATE:GetSongBPS()/2
|
||||||
|
if GAMESTATE:GetSongFreeze() then
|
||||||
|
move = 0;
|
||||||
|
end
|
||||||
|
self:texcoordvelocity(move,0);
|
||||||
|
self:sleep(0.001);
|
||||||
|
self:queuecommand("Begin");
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_1 then
|
||||||
|
local lifeP1=params.LifeMeter:GetLife();
|
||||||
|
if lifeP1>=THEME:GetMetric("LifeMeterBar", "HotValue") then
|
||||||
|
self:diffusealpha(0.5);
|
||||||
|
else
|
||||||
|
self:diffusealpha(0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
--P2
|
||||||
|
t[#t+1] = LoadActor("hot_lores") .. {
|
||||||
|
OnCommand=cmd(diffusealpha,0;visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,left;x,SCREEN_RIGHT-18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,(SCREEN_WIDTH/2-26)*-1;texcoordvelocity,0.1,0;queuecommand,"Begin");
|
||||||
|
BeginCommand=function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
local move = GAMESTATE:GetSongBPS()/2
|
||||||
|
if GAMESTATE:GetSongFreeze() then
|
||||||
|
move = 0;
|
||||||
|
end
|
||||||
|
self:texcoordvelocity(move,0);
|
||||||
|
self:sleep(0.001);
|
||||||
|
self:queuecommand("Begin");
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_2 then
|
||||||
|
local lifeP2=params.LifeMeter:GetLife();
|
||||||
|
if lifeP2>=THEME:GetMetric("LifeMeterBar", "HotValue") then
|
||||||
|
self:diffusealpha(0.5);
|
||||||
|
else
|
||||||
|
self:diffusealpha(0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
--Double
|
||||||
|
--customtexturerect,0,0,[PixelsToCoverWidth]/[ImageWidth],[PixelsToCoverHeight]/[ImageHeight]
|
||||||
|
--I said that I was gonna write it down. thx midi
|
||||||
|
|
||||||
|
t[#t+1] = LoadActor("hot_lores") .. {
|
||||||
|
OnCommand=cmd(diffusealpha,0;horizalign,left;x,SCREEN_LEFT+18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH-36;texcoordvelocity,0.1,0;customtexturerect,0,0,600/(SCREEN_WIDTH-36),1;queuecommand,"Begin");
|
||||||
|
BeginCommand=function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
local move = GAMESTATE:GetSongBPS()/2
|
||||||
|
if GAMESTATE:GetSongFreeze() then
|
||||||
|
move = 0;
|
||||||
|
end
|
||||||
|
self:texcoordvelocity(move,0);
|
||||||
|
self:sleep(0.001);
|
||||||
|
self:queuecommand("Begin");
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
local life=params.LifeMeter:GetLife();
|
||||||
|
if life>=THEME:GetMetric("LifeMeterBar", "HotValue") then
|
||||||
|
self:diffusealpha(0.5);
|
||||||
|
else
|
||||||
|
self:diffusealpha(0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
-- DANGER ////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
--DANGER P1 single
|
||||||
|
t[#t+1] = LoadActor("danger") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-26;zoomy,0.5);
|
||||||
|
OnCommand=cmd(effectclock,"bgm";diffusealpha,1;linear,0.2;diffusealpha,0.25;linear,0.2;diffusealpha,1;queuecommand,"On");
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_1 then
|
||||||
|
local lifeP1 = params.LifeMeter:GetLife();
|
||||||
|
if lifeP1 <= THEME:GetMetric("LifeMeterBar", "DangerThreshold") then
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
self:visible(true);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
--DANGER P2 single
|
||||||
|
t[#t+1] = LoadActor("danger") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,right;x,SCREEN_RIGHT-18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-26;zoomy,0.5);
|
||||||
|
OnCommand=cmd(effectclock,"bgm";diffusealpha,1;linear,0.2;diffusealpha,0.25;linear,0.2;diffusealpha,1;queuecommand,"On");
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_2 then
|
||||||
|
local lifeP2 = params.LifeMeter:GetLife();
|
||||||
|
if lifeP2 <= THEME:GetMetric("LifeMeterBar", "DangerThreshold") then
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
self:visible(true);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
--DANGER double
|
||||||
|
t[#t+1] = LoadActor("danger") .. {
|
||||||
|
InitCommand=cmd(visible,false;horizalign,center;x,SCREEN_CENTER_X;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH-36;zoomy,0.5);
|
||||||
|
OnCommand=cmd(effectclock,"bgm";diffusealpha,1;linear,0.2;diffusealpha,0.25;linear,0.2;diffusealpha,1;queuecommand,"On");
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
local life = params.LifeMeter:GetLife();
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
if life <= THEME:GetMetric("LifeMeterBar", "DangerThreshold") then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- METERS ////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---basemeter masked P1
|
||||||
|
t[#t+1] = LoadActor("basemeter") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+18;valign,0.5;y,SCREEN_TOP+41;zoomy,0.5;blend,Blend.Add);
|
||||||
|
OnCommand=cmd(bounce;effectmagnitude,-40,0,0;effectclock,"bgm";effecttiming,2,0,0,0;);
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_1 then
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
local lifeP1 = params.LifeMeter:GetLife();
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1)==true then
|
||||||
|
if lifeP1==0 then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
|
||||||
|
if lifeP1==1 then
|
||||||
|
self:effectmagnitude(0,0,0);
|
||||||
|
else
|
||||||
|
self:effectmagnitude(-40,0,0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
self:visible(true);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:zoomtowidth((SCREEN_WIDTH-40)*lifeP1+5);
|
||||||
|
else
|
||||||
|
self:zoomtowidth((SCREEN_WIDTH/2-26)*lifeP1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---basemeter masked P2
|
||||||
|
t[#t+1] = LoadActor("basemeter") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,right;x,SCREEN_RIGHT+18;valign,0.5;y,SCREEN_TOP+41;zoomy,0.5;blend,Blend.Add;queuecommand,"Set");
|
||||||
|
OnCommand=cmd(bob;effectmagnitude,40,0,0;effectclock,"bgm";effecttiming,1,0,0,0;);
|
||||||
|
SetCommand=function(self,params)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:effectmagnitude(-40,0,0);
|
||||||
|
self:horizalign(left);
|
||||||
|
self:x(SCREEN_LEFT+18);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_2 then
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
local lifeP2 = params.LifeMeter:GetLife();
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2)==true then
|
||||||
|
if lifeP2==0 then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
|
||||||
|
if lifeP2==1 then
|
||||||
|
self:effectmagnitude(0,0,0);
|
||||||
|
else
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:effectmagnitude(-40,0,0);
|
||||||
|
else
|
||||||
|
self:effectmagnitude(40,0,0);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
self:visible(true);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:zoomtowidth((SCREEN_WIDTH-40)*lifeP2);
|
||||||
|
else
|
||||||
|
self:zoomtowidth(((SCREEN_WIDTH/2-26)*lifeP2)+40);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- FRAMES & TIPS ////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
-- Left Corner
|
||||||
|
t[#t+1] = LoadActor("mask") .. {
|
||||||
|
OnCommand=cmd(horizalign,right;x,SCREEN_LEFT+130;vertalign,top;y,SCREEN_TOP+12;zoom,0.45;queuecommand,"Set");
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Right Corner
|
||||||
|
t[#t+1] = LoadActor("mask") .. {
|
||||||
|
OnCommand=cmd(horizalign,right;x,SCREEN_RIGHT-130;vertalign,top;y,SCREEN_TOP+12;zoomx,-0.45;zoomy,0.45;queuecommand,"Set");
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
-- Left Corner
|
||||||
|
t[#t+1] = LoadActor("corner") .. {
|
||||||
|
OnCommand=cmd(horizalign,left;x,SCREEN_LEFT+15;vertalign,top;y,SCREEN_TOP+16;zoom,0.75;queuecommand,"Set");
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Right Corner
|
||||||
|
t[#t+1] = LoadActor("corner") .. {
|
||||||
|
OnCommand=cmd(horizalign,left;x,SCREEN_RIGHT-15;vertalign,top;y,SCREEN_TOP+16;zoomx,-0.75;zoomy,0.75;queuecommand,"Set");
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Center Corner Left
|
||||||
|
t[#t+1] = LoadActor("center") .. {
|
||||||
|
OnCommand=cmd(horizalign,left;x,SCREEN_CENTER_X+5;vertalign,top;y,SCREEN_TOP+16;zoomx,-0.75;zoomy,0.75;queuecommand,"Set");
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Center Corner Right
|
||||||
|
t[#t+1] = LoadActor("center") .. {
|
||||||
|
OnCommand=cmd(horizalign,left;x,SCREEN_CENTER_X-5;vertalign,top;y,SCREEN_TOP+16;zoom,0.75;queuecommand,"Set");
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
||||||
|
self:visible(true);
|
||||||
|
else
|
||||||
|
self:visible(false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Center part 1
|
||||||
|
t[#t+1] = LoadActor("frame") .. {
|
||||||
|
OnCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+52.5;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-85;zoomy,0.75;queuecommand,"Set";);
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:zoomtowidth(SCREEN_WIDTH-105);
|
||||||
|
self:visible(true)
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1) == false then
|
||||||
|
self:visible(false)
|
||||||
|
else
|
||||||
|
self:visible(true)
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- Center part 2
|
||||||
|
t[#t+1] = LoadActor("frame") .. {
|
||||||
|
OnCommand=cmd(horizalign,right;x,SCREEN_RIGHT-52.5;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-85;zoomy,0.75;queuecommand,"Set";);
|
||||||
|
SetCommand = function(self)
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:visible(false)
|
||||||
|
else
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
||||||
|
self:visible(true)
|
||||||
|
else
|
||||||
|
self:visible(false)
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---tip P1
|
||||||
|
t[#t+1] = LoadActor("tip") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);valign,0.5;y,SCREEN_TOP+41;zoom,0.5;blend,Blend.Add;queuecommand,"Set");
|
||||||
|
--OnCommand=cmd(bob;effectmagnitude,-40,0,0;effectclock,"bgm";effecttiming,1,0,0,0;);
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_1 then
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
local lifeP1 = params.LifeMeter:GetLife();
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1)==true then
|
||||||
|
if lifeP1==0 then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
self:visible(true);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:x((SCREEN_WIDTH-40)*lifeP1+20);
|
||||||
|
else
|
||||||
|
self:x((SCREEN_WIDTH/2-26)*lifeP1+20);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---tip P2
|
||||||
|
t[#t+1] = LoadActor("tip") .. {
|
||||||
|
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);valign,0.5;y,SCREEN_TOP+41;zoom,0.5;blend,Blend.Add;);
|
||||||
|
--OnCommand=cmd(bob;effectmagnitude,40,0,0;effectclock,"bgm";effecttiming,1,0,0,0;);
|
||||||
|
LifeChangedMessageCommand=function(self,params)
|
||||||
|
if params.Player == PLAYER_2 then
|
||||||
|
local style = GAMESTATE:GetCurrentStyle();
|
||||||
|
local lifeP2 = params.LifeMeter:GetLife();
|
||||||
|
local fullstate;
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2)==true then
|
||||||
|
if lifeP2==0 then
|
||||||
|
self:visible(false);
|
||||||
|
else
|
||||||
|
self:visible(true);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
||||||
|
self:x((SCREEN_WIDTH-40)*lifeP2+20);
|
||||||
|
else
|
||||||
|
self:x(SCREEN_RIGHT-((SCREEN_WIDTH/2-26)*lifeP2)-20);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
-- NAMES ////////////////////////
|
||||||
|
|
||||||
|
--P1 NAME
|
||||||
|
t[#t+1] = LoadFont("Common Normal") .. {
|
||||||
|
InitCommand=cmd(horizalign,left;x,SCREEN_LEFT+30;y,SCREEN_TOP+15;zoom,0.4;shadowlength,1;uppercase,true);
|
||||||
|
BeginCommand=function(self)
|
||||||
|
local profile = PROFILEMAN:GetProfile(PLAYER_1);
|
||||||
|
local name = profile:GetDisplayName();
|
||||||
|
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
||||||
|
if name=="" then
|
||||||
|
self:settext("Player 1");
|
||||||
|
else
|
||||||
|
self:settext( name );
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
--P2 NAME
|
||||||
|
t[#t+1] = LoadFont("Common Normal") .. {
|
||||||
|
InitCommand=cmd(horizalign,right;x,SCREEN_RIGHT-30;y,SCREEN_TOP+15;zoom,0.4;shadowlength,1;uppercase,true);
|
||||||
|
BeginCommand=function(self)
|
||||||
|
local profile = PROFILEMAN:GetProfile(PLAYER_2);
|
||||||
|
local name = profile:GetDisplayName();
|
||||||
|
|
||||||
|
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
||||||
|
if name=="" then
|
||||||
|
self:settext("Player 2");
|
||||||
|
else
|
||||||
|
self:settext( name );
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return t
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1 @@
|
|||||||
|
return Def.ActorFrame {};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[ThemeInfo]
|
||||||
|
DisplayName=Midi Dev Theme
|
||||||
|
Author=Midiman
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
[Global]
|
||||||
|
FallbackTheme=default
|
||||||
|
[ScreenGameplay]
|
||||||
|
LifeP1OnCommand=visible,false
|
||||||
|
LifeP2OnCommand=visible,false
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
local vStats = STATSMAN:GetCurStageStats();
|
||||||
|
local function CreateStats( pnPlayer )
|
||||||
|
-- Actor Templates
|
||||||
|
local aLabel = LoadFont("Common Normal") .. { Text="..."; InitCommand=cmd(zoom,0.5;shadowlength,1;horizalign,left); };
|
||||||
|
local aText = LoadFont("Common Normal") .. { Text="..."; InitCommand=cmd(zoom,0.5;shadowlength,1;horizalign,left); };
|
||||||
|
-- DA STATS, JIM!!
|
||||||
|
local pnStageStats = vStats:GetPlayerStageStats( pnPlayer );
|
||||||
|
-- Organized Stats.
|
||||||
|
local tStats = {
|
||||||
|
W1 = pnStageStats:GetTapNoteScores('TapNoteScore_W1');
|
||||||
|
W2 = pnStageStats:GetTapNoteScores('TapNoteScore_W2');
|
||||||
|
W3 = pnStageStats:GetTapNoteScores('TapNoteScore_W3');
|
||||||
|
W4 = pnStageStats:GetTapNoteScores('TapNoteScore_W4');
|
||||||
|
W5 = pnStageStats:GetTapNoteScores('TapNoteScore_W5');
|
||||||
|
Miss = pnStageStats:GetTapNoteScores('TapNoteScore_Miss');
|
||||||
|
HitMine = pnStageStats:GetTapNoteScores('TapNoteScore_HitMine');
|
||||||
|
AvoidMine = pnStageStats:GetTapNoteScores('TapNoteScore_AvoidMine');
|
||||||
|
Held = pnStageStats:GetHoldNoteScores('HoldNoteScore_Held');
|
||||||
|
LetGo = pnStageStats:GetHoldNoteScores('HoldNoteScore_LetGo');
|
||||||
|
};
|
||||||
|
-- Organized Equation Values
|
||||||
|
local tValues = {
|
||||||
|
-- marvcount*7 + perfcount*6 + greatcount*5 + goodcount*4 + boocount*2 + okcount*7
|
||||||
|
ITG = ( tStats["W1"]*7 + tStats["W2"]*6 + tStats["W3"]*5 + tStats["W4"]*4 + tStats["W5"]*2 + tStats["Held"]*7 ),
|
||||||
|
-- (marvcount + perfcount + greatcount + goodcount + boocount + misscount + okcount + ngcount)*7
|
||||||
|
ITG_MAX = ( tStats["W1"] + tStats["W2"] + tStats["W3"] + tStats["W4"] + tStats["W5"] + tStats["Miss"] + tStats["Held"] + tStats["LetGo"] )*7,
|
||||||
|
-- marvcount*3 + perfcount*2 + greatcount*1 - boocount*4 - misscount*8 + okcount*6
|
||||||
|
MIGS = ( tStats["W1"]*3 + tStats["W2"]*2 + tStats["W3"] - tStats["W5"]*4 - tStats["Miss"]*8 + tStats["Held"]*6 ),
|
||||||
|
-- (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6
|
||||||
|
MIGS_MAX = ( (tStats["W1"] + tStats["W2"] + tStats["W3"] + tStats["W4"] + tStats["W5"] + tStats["Miss"])*3 + (tStats["Held"] + tStats["LetGo"])*6 ),
|
||||||
|
|
||||||
|
};
|
||||||
|
--
|
||||||
|
local t = Def.ActorFrame {};
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(y,-16);
|
||||||
|
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
|
||||||
|
InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer ));
|
||||||
|
};
|
||||||
|
aLabel .. { Text="ITG DP:"; InitCommand=cmd(x,-64) };
|
||||||
|
aText .. { Text=string.format("%04i",tValues["ITG"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.675); };
|
||||||
|
aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); };
|
||||||
|
aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); };
|
||||||
|
};
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(y,16);
|
||||||
|
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
|
||||||
|
InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer ));
|
||||||
|
};
|
||||||
|
aLabel .. { Text="MIGS DP:"; InitCommand=cmd(x,-64) };
|
||||||
|
aText .. { Text=string.format("%04i",tValues["MIGS"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.675); };
|
||||||
|
aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); };
|
||||||
|
aText .. { Text=string.format("%04i",tValues["MIGS_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); };
|
||||||
|
};
|
||||||
|
return t
|
||||||
|
end;
|
||||||
|
local t = Def.ActorFrame {};
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(x,math.floor(SCREEN_CENTER_X*0.5)-8;y,SCREEN_CENTER_Y);
|
||||||
|
--
|
||||||
|
CreateStats( PLAYER_1 );
|
||||||
|
};
|
||||||
|
return t
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
local ss = STATSMAN:GetCurStageStats();
|
||||||
|
local pss = ss:GetPlayerStageStats('PlayerNumber_P1');
|
||||||
|
local misscount = pss:GetTapNoteScores('TapNoteScore_Miss');
|
||||||
|
local boocount = pss:GetTapNoteScores('TapNoteScore_W5');
|
||||||
|
local goodcount = pss:GetTapNoteScores('TapNoteScore_W4');
|
||||||
|
local greatcount = pss:GetTapNoteScores('TapNoteScore_W3');
|
||||||
|
local perfcount = pss:GetTapNoteScores('TapNoteScore_W2');
|
||||||
|
local marvcount = pss:GetTapNoteScores('TapNoteScore_W1');
|
||||||
|
local minehitcount = pss:GetTapNoteScores('TapNoteScore_HitMine');
|
||||||
|
local minemisscount = pss:GetTapNoteScores('TapNoteScore_AvoidMine');
|
||||||
|
local okcount = pss:GetHoldNoteScores('HoldNoteScore_Held');
|
||||||
|
local ngcount = pss:GetHoldNoteScores('HoldNoteScore_LetGo');
|
||||||
|
local ITGdp = marvcount*7 + perfcount*6 + greatcount*5 + goodcount*4 + boocount*2 + okcount*7
|
||||||
|
local ITGdpmax = (marvcount + perfcount + greatcount + goodcount + boocount + misscount + okcount + ngcount)*7
|
||||||
|
local MIGSdp = marvcount*3 + perfcount*2 + greatcount*1 - boocount*4 - misscount*8 + okcount*6
|
||||||
|
local MIGSdpmax = (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6
|
||||||
|
local histogram = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
|
||||||
|
local total = 0
|
||||||
|
local maxValue = 0;
|
||||||
|
print("John11length: "..#histogram);
|
||||||
|
|
||||||
|
for i=1,#tTotalJudgmentsSigned do
|
||||||
|
print("John11Timings: "..i.." - "..tTotalJudgmentsSigned[i])
|
||||||
|
local index = math.floor((0.18-tTotalJudgmentsSigned[i])*(#histogram/.36));
|
||||||
|
print("John11Index: "..i.." - "..index)
|
||||||
|
if index >= 0 and index <= #histogram - 1 then
|
||||||
|
histogram[index] = histogram[index] + 1
|
||||||
|
total = total + 1
|
||||||
|
if histogram[index] > maxValue then
|
||||||
|
maxValue = histogram[index]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for i=1,#histogram do
|
||||||
|
print("John11Judgments: "..i.." - "..histogram[i])
|
||||||
|
end
|
||||||
|
|
||||||
|
local t = Def.ActorFrame {}
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X/3;y,SCREEN_CENTER_Y);
|
||||||
|
LoadFont("Common Normal") .. {
|
||||||
|
Text="MIGS DP: "..tostring(MIGSdp).."/"..tostring(MIGSdpmax).."\nITG DP: "..tostring(ITGdp).."/"..tostring(ITGdpmax).."\nOffset Avg: "..RoundTo(tTimingDifferenceAverage,5).."\nAbs Offset Avg: "..RoundTo(tTimingDifferenceAbsAverage,5).."\nEarly Taps: "..tEarlyHits.."\nLate Taps: "..tLateHits;
|
||||||
|
InitCommand=cmd(y,-4;shadowlength,1;diffuse,Color("Red");zoom,0.5)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
for i=1,#histogram do
|
||||||
|
local offset = -1
|
||||||
|
if i > #histogram/2 then
|
||||||
|
offset = 1
|
||||||
|
end
|
||||||
|
t[#t+1] = Def.Quad {
|
||||||
|
InitCommand=cmd(diffuse,Color("Red");zoomtowidth,300/#histogram-1;zoomtoheight,histogram[#histogram-i]/maxValue*150;x,SCREEN_CENTER_X+100+300/#histogram*i+offset;y,SCREEN_CENTER_Y-histogram[#histogram-i]/maxValue*150/2);
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
t[#t+1] = Def.Quad {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X+250;y,SCREEN_CENTER_Y+3;zoomtowidth,300;zoomtoheight,5;diffuse,color("#FFFFFF"));
|
||||||
|
}
|
||||||
|
|
||||||
|
t[#t+1] = Def.Quad {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X+252;y,SCREEN_CENTER_Y-75;zoomtowidth,1;zoomtoheight,150;diffuse,color("#000000"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X+125;y,SCREEN_CENTER_Y+15);
|
||||||
|
LoadFont("Common Normal") .. {
|
||||||
|
Text="Early";
|
||||||
|
InitCommand=cmd(shadowlength,1;diffuse,Color("#FF0000");zoom,0.5)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X+375;y,SCREEN_CENTER_Y+15);
|
||||||
|
LoadFont("Common Normal") .. {
|
||||||
|
Text="Late";
|
||||||
|
InitCommand=cmd(shadowlength,1;diffuse,Color("#FF0000");zoom,0.5)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
print("John11Total: "..total)
|
||||||
|
print("John11MaxValue: "..maxValue)
|
||||||
|
|
||||||
|
return t
|
||||||
@@ -638,7 +638,7 @@ ShowMeter=true
|
|||||||
ZeroMeterString="0"
|
ZeroMeterString="0"
|
||||||
MeterX=56
|
MeterX=56
|
||||||
MeterY=0
|
MeterY=0
|
||||||
MeterOnCommand=shadowlength,1;zoom,0.65
|
MeterOnCommand=shadowlength,1;zoom,0.65;textglowmode,'TextGlowMode_Inner';
|
||||||
MeterOffCommand=
|
MeterOffCommand=
|
||||||
MeterSetCommand=%function(self,param) \
|
MeterSetCommand=%function(self,param) \
|
||||||
if param.CustomDifficulty then \
|
if param.CustomDifficulty then \
|
||||||
|
|||||||