63 lines
1.6 KiB
Lua
63 lines
1.6 KiB
Lua
local c;
|
|
local player = Var "Player";
|
|
local ShowComboAt = THEME:GetMetric("Combo", "ShowComboAt");
|
|
local Pulse = THEME:GetMetric("Combo", "PulseCommand");
|
|
|
|
local NumberMinZoom = THEME:GetMetric("Combo", "NumberMinZoom");
|
|
local NumberMaxZoom = THEME:GetMetric("Combo", "NumberMaxZoom");
|
|
local NumberMaxZoomAt = THEME:GetMetric("Combo", "NumberMaxZoomAt");
|
|
|
|
local t = Def.ActorFrame {
|
|
LoadFont( "Combo", "numbers" ) .. {
|
|
Name="Number";
|
|
OnCommand = THEME:GetMetric("Combo", "NumberOnCommand");
|
|
};
|
|
LoadActor("_combo") .. {
|
|
Name="ComboLabel";
|
|
OnCommand = THEME:GetMetric("Combo", "LabelOnCommand");
|
|
};
|
|
LoadActor("_misses") .. {
|
|
Name="MissesLabel";
|
|
OnCommand = THEME:GetMetric("Combo", "LabelOnCommand");
|
|
};
|
|
|
|
InitCommand = function(self)
|
|
c = self:GetChildren();
|
|
c.Number:visible(false);
|
|
c.ComboLabel:visible(false);
|
|
c.MissesLabel:visible(false);
|
|
end;
|
|
|
|
ComboCommand=function(self, param)
|
|
local iCombo = param.Misses or param.Combo;
|
|
if not iCombo or iCombo < ShowComboAt then
|
|
c.Number:visible(false);
|
|
c.ComboLabel:visible(false);
|
|
c.MissesLabel:visible(false);
|
|
return;
|
|
end
|
|
|
|
local Label;
|
|
if param.Combo then
|
|
Label = c.ComboLabel;
|
|
else
|
|
Label = c.MissesLabel;
|
|
end
|
|
-- reset the label's visibility so we don't accidentally draw both labels
|
|
Label:visible(false);
|
|
|
|
param.Zoom = scale( iCombo, 0, NumberMaxZoomAt, NumberMinZoom, NumberMaxZoom );
|
|
param.Zoom = clamp( param.Zoom, NumberMinZoom, NumberMaxZoom );
|
|
|
|
c.Number:visible(true);
|
|
Label:visible(true);
|
|
|
|
c.Number:settext( string.format("%i", iCombo) );
|
|
|
|
Pulse( c.Number, param );
|
|
Pulse( Label, param );
|
|
end;
|
|
};
|
|
|
|
return t;
|