114 lines
3.6 KiB
Lua
114 lines
3.6 KiB
Lua
local c;
|
|
local player = Var "Player";
|
|
local ShowComboAt = THEME:GetMetric("Combo", "ShowComboAt");
|
|
local Pulse = THEME:GetMetric("Combo", "PulseCommand");
|
|
local PulseLabel = THEME:GetMetric("Combo", "PulseLabelCommand");
|
|
|
|
local NumberMinZoom = THEME:GetMetric("Combo", "NumberMinZoom");
|
|
local NumberMaxZoom = THEME:GetMetric("Combo", "NumberMaxZoom");
|
|
local NumberMaxZoomAt = THEME:GetMetric("Combo", "NumberMaxZoomAt");
|
|
|
|
local LabelMinZoom = THEME:GetMetric("Combo", "LabelMinZoom");
|
|
local LabelMaxZoom = THEME:GetMetric("Combo", "LabelMaxZoom");
|
|
|
|
local t = Def.ActorFrame {
|
|
InitCommand=cmd(vertalign,bottom);
|
|
LoadFont( "Combo", "numbers" ) .. {
|
|
Name="Number";
|
|
OnCommand = THEME:GetMetric("Combo", "NumberOnCommand");
|
|
};
|
|
LoadFont("Common Normal") .. {
|
|
Name="Label";
|
|
OnCommand = THEME:GetMetric("Combo", "LabelOnCommand");
|
|
};
|
|
|
|
InitCommand = function(self)
|
|
c = self:GetChildren();
|
|
c.Number:visible(false);
|
|
c.Label:visible(false);
|
|
end;
|
|
-- Milestones:
|
|
-- 25,50,100,250,600 Multiples;
|
|
--[[ if (iCombo % 100) == 0 then
|
|
c.OneHundredMilestone:playcommand("Milestone");
|
|
elseif (iCombo % 250) == 0 then
|
|
-- It should really be 1000 but thats slightly unattainable, since
|
|
-- combo doesnt save over now.
|
|
c.OneThousandMilestone:playcommand("Milestone");
|
|
else
|
|
return
|
|
end; --]]
|
|
TwentyFiveMilestoneCommand=function(self,parent)
|
|
(cmd(skewy,-0.125;decelerate,0.325;skewy,0))(self);
|
|
end;
|
|
ToastyAchievedMessageCommand=function(self,params)
|
|
if params.PlayerNumber == player then
|
|
(cmd(thump,2;effectclock,'beat'))(self);
|
|
end;
|
|
end;
|
|
ComboCommand=function(self, param)
|
|
local iCombo = param.Misses or param.Combo;
|
|
if not iCombo or iCombo < ShowComboAt then
|
|
c.Number:visible(false);
|
|
c.Label:visible(false);
|
|
return;
|
|
end
|
|
|
|
local labeltext = "";
|
|
if param.Combo then
|
|
labeltext = "COMBO";
|
|
-- c.Number:playcommand("Reset");
|
|
else
|
|
labeltext = "MISSES";
|
|
-- c.Number:playcommand("Miss");
|
|
end
|
|
c.Label:settext( labeltext );
|
|
c.Label:visible(false);
|
|
|
|
param.Zoom = scale( iCombo, 0, NumberMaxZoomAt, NumberMinZoom, NumberMaxZoom );
|
|
param.Zoom = clamp( param.Zoom, NumberMinZoom, NumberMaxZoom );
|
|
|
|
param.LabelZoom = scale( iCombo, 0, NumberMaxZoomAt, LabelMinZoom, LabelMaxZoom );
|
|
param.LabelZoom = clamp( param.LabelZoom, LabelMinZoom, LabelMaxZoom );
|
|
|
|
c.Number:visible(true);
|
|
c.Label:visible(true);
|
|
c.Number:settext( string.format("%i", iCombo) );
|
|
-- FullCombo Rewards
|
|
if param.FullComboW1 then
|
|
c.Number:diffuse(color("#00aeef"));
|
|
c.Number:glowshift();
|
|
elseif param.FullComboW2 then
|
|
c.Number:diffuse(color("#fff568"));
|
|
c.Number:glowshift();
|
|
elseif param.FullComboW3 then
|
|
c.Number:diffuse(color("#a4ff00"));
|
|
c.Number:stopeffect();
|
|
elseif param.Combo then
|
|
c.Number:diffuse(Color("White"));
|
|
-- c.Number:diffuse(PlayerColor(player));
|
|
c.Number:stopeffect();
|
|
(cmd(diffuse,Color("White");diffusebottomedge,color("0.5,0.5,0.5,1")))(c.Label);
|
|
else
|
|
c.Number:diffuse(color("#ff0000"));
|
|
c.Number:stopeffect();
|
|
(cmd(diffuse,Color("Red");diffusebottomedge,color("0.5,0,0,1")))(c.Label);
|
|
end
|
|
-- Pulse
|
|
Pulse( c.Number, param );
|
|
PulseLabel( c.Label, param );
|
|
-- Milestone Logic
|
|
end;
|
|
--[[ ScoreChangedMessageCommand=function(self,param)
|
|
local iToastyCombo = param.ToastyCombo;
|
|
if iToastyCombo and (iToastyCombo > 0) then
|
|
-- (cmd(thump;effectmagnitude,1,1.2,1;effectclock,'beat'))(c.Number)
|
|
-- (cmd(thump;effectmagnitude,1,1.2,1;effectclock,'beat'))(c.Number)
|
|
else
|
|
-- c.Number:stopeffect();
|
|
end;
|
|
end; --]]
|
|
};
|
|
|
|
return t;
|