f257f19dad
I'd like to thank everyone who made this possible;, including but not limited to Riakodoadm, MrThatKid, kyzentun, Luizsan, JoseVarelaP, everyone else who provided feedback and bug reports.
91 lines
2.5 KiB
Lua
91 lines
2.5 KiB
Lua
local c;
|
|
local player = Var "Player";
|
|
|
|
local tTotalJudgments = {};
|
|
|
|
local JudgeCmds = {
|
|
TapNoteScore_W1 = THEME:GetMetric( "Judgment", "JudgmentW1Command" );
|
|
TapNoteScore_W2 = THEME:GetMetric( "Judgment", "JudgmentW2Command" );
|
|
TapNoteScore_W3 = THEME:GetMetric( "Judgment", "JudgmentW3Command" );
|
|
TapNoteScore_W4 = THEME:GetMetric( "Judgment", "JudgmentW4Command" );
|
|
TapNoteScore_W5 = THEME:GetMetric( "Judgment", "JudgmentW5Command" );
|
|
TapNoteScore_Miss = THEME:GetMetric( "Judgment", "JudgmentMissCommand" );
|
|
};
|
|
|
|
|
|
local TNSFrames = {
|
|
TapNoteScore_W1 = 0;
|
|
TapNoteScore_W2 = 1;
|
|
TapNoteScore_W3 = 2;
|
|
TapNoteScore_W4 = 3;
|
|
TapNoteScore_W5 = 4;
|
|
TapNoteScore_Miss = 5;
|
|
};
|
|
local frame = Def.ActorFrame {
|
|
InitCommand = function(self)
|
|
-- We'll have to deal with this later
|
|
--if player_config:get_data(player).JudgmentUnderField then
|
|
-- self:draworder(notefield_draw_order.under_field)
|
|
--else
|
|
-- self:draworder(notefield_draw_order.over_field)
|
|
--end
|
|
c = self:GetChildren();
|
|
end,
|
|
LoadActor(THEME:GetPathG("Judgment","Normal")) .. {
|
|
Name="Judgment";
|
|
InitCommand=cmd(pause;visible,false);
|
|
OnCommand=THEME:GetMetric("Judgment","JudgmentOnCommand");
|
|
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
|
};
|
|
JudgmentMessageCommand=function(self, param)
|
|
-- Fix Player Combo animating when player successfully avoids a mine.
|
|
local msgParam = param;
|
|
MESSAGEMAN:Broadcast("TestJudgment",msgParam);
|
|
--
|
|
if param.Player ~= player then return end;
|
|
if param.HoldNoteScore then return end;
|
|
|
|
local iNumStates = c.Judgment:GetNumStates();
|
|
local iFrame = TNSFrames[param.TapNoteScore];
|
|
|
|
if not iFrame then return end
|
|
if iNumStates == 12 then
|
|
iFrame = iFrame * 2;
|
|
if not param.Early then
|
|
iFrame = iFrame + 1;
|
|
end
|
|
end
|
|
|
|
|
|
local fTapNoteOffset = param.TapNoteOffset;
|
|
if param.HoldNoteScore then
|
|
fTapNoteOffset = 1;
|
|
else
|
|
fTapNoteOffset = param.TapNoteOffset;
|
|
end
|
|
|
|
if param.TapNoteScore == 'TapNoteScore_Miss' then
|
|
fTapNoteOffset = 1;
|
|
bUseNegative = true;
|
|
else
|
|
-- fTapNoteOffset = fTapNoteOffset;
|
|
bUseNegative = false;
|
|
end;
|
|
|
|
if fTapNoteOffset ~= 1 then
|
|
-- we're safe, you can push the values
|
|
tTotalJudgments[#tTotalJudgments+1] = math.abs(fTapNoteOffset);
|
|
--~ tTotalJudgments[#tTotalJudgments+1] = bUseNegative and fTapNoteOffset or math.abs( fTapNoteOffset );
|
|
end
|
|
|
|
self:playcommand("Reset");
|
|
|
|
c.Judgment:visible( not bShowProtiming );
|
|
c.Judgment:setstate( iFrame );
|
|
JudgeCmds[param.TapNoteScore](c.Judgment);
|
|
|
|
end;
|
|
|
|
}
|
|
|
|
return frame |