View the list:
* Added new metric to cap the max life of a hold. No sanity checking yet: need a way to keep <= 1. * Added more Pump specific behavior to lua. * Fixed combo and hold judgment graphics due to it being defined twice. Minor cleanup of the ProductivityHelpers is going to have to happen later on.
This commit is contained in:
@@ -173,24 +173,60 @@ function ComboPerRow()
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function HitCombo()
|
||||||
|
sGame = GAMESTATE:GetCurrentGame():GetName();
|
||||||
|
local Combo = {
|
||||||
|
dance = "2",
|
||||||
|
pump = "4",
|
||||||
|
beat = "2",
|
||||||
|
kb7 = "2",
|
||||||
|
para = "2",
|
||||||
|
};
|
||||||
|
return Combo[sGame]
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MissCombo()
|
||||||
|
sGame = GAMESTATE:GetCurrentGame():GetName();
|
||||||
|
local Combo = {
|
||||||
|
dance = "2",
|
||||||
|
pump = "4",
|
||||||
|
beat = "",
|
||||||
|
kb7 = "",
|
||||||
|
para = "",
|
||||||
|
};
|
||||||
|
return Combo[sGame]
|
||||||
|
end;
|
||||||
|
|
||||||
|
function FailCombo() -- The combo that causes game failure.
|
||||||
|
sGame = GAMESTATE:GetCurrentGame():GetName();
|
||||||
|
local Combo = {
|
||||||
|
dance = "30", -- ITG/Pump Pro does it this way.
|
||||||
|
pump = "51",
|
||||||
|
beat = "-1",
|
||||||
|
kb7 = "-1",
|
||||||
|
para = "-1",
|
||||||
|
};
|
||||||
|
return Combo[sGame]
|
||||||
|
end;
|
||||||
|
|
||||||
function HoldTiming()
|
function HoldTiming()
|
||||||
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
return "0";
|
return 0;
|
||||||
else return PREFSMAN:GetPreference("TimingWindowSecondsHold");
|
else return PREFSMAN:GetPreference("TimingWindowSecondsHold");
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function HoldJudgmentFail()
|
function HoldJudgmentFail()
|
||||||
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
return "";
|
return cmd();
|
||||||
else return "shadowlength,0;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0";
|
else return cmd(finishtweening;shadowlength,0;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function HoldJudgmentPass()
|
function HoldJudgmentPass()
|
||||||
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
return "";
|
return cmd();
|
||||||
else return "shadowlength,0;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0";
|
else return cmd(finishtweening;shadowlength,0;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -208,6 +244,13 @@ function InitialHoldLife()
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function MaxHoldLife()
|
||||||
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
|
return 0.05;
|
||||||
|
else return 1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function ImmediateHoldLetGo()
|
function ImmediateHoldLetGo()
|
||||||
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -161,8 +161,6 @@ MeterWidth=0.0
|
|||||||
MeterHeight=0.0
|
MeterHeight=0.0
|
||||||
|
|
||||||
[Combo]
|
[Combo]
|
||||||
ShowComboAt=(GAMESTATE:GetCurrentGame():GetName() == "pump") and 4 or 2
|
|
||||||
ShowMissesAt=(GAMESTATE:GetCurrentGame():GetName() == "pump") and 4 or ""
|
|
||||||
|
|
||||||
NumberMinZoom=0.8
|
NumberMinZoom=0.8
|
||||||
NumberMaxZoom=1
|
NumberMaxZoom=1
|
||||||
@@ -711,6 +709,7 @@ ImmediateHoldLetGo=ImmediateHoldLetGo()
|
|||||||
RequireStepOnHoldHeads=HoldHeadStep()
|
RequireStepOnHoldHeads=HoldHeadStep()
|
||||||
CheckpointsUseTimeSignatures=(GAMESTATE:GetCurrentGame():GetName() == "pump")
|
CheckpointsUseTimeSignatures=(GAMESTATE:GetCurrentGame():GetName() == "pump")
|
||||||
InitialHoldLife=InitialHoldLife()
|
InitialHoldLife=InitialHoldLife()
|
||||||
|
MaxHoldLife=MaxHoldLife()
|
||||||
RollBodyIncrementsCombo=RollBodyIncrementsCombo()
|
RollBodyIncrementsCombo=RollBodyIncrementsCombo()
|
||||||
CheckpointsTapsSeparateJudgment=CheckpointsTapsSeparateJudgment()
|
CheckpointsTapsSeparateJudgment=CheckpointsTapsSeparateJudgment()
|
||||||
ScoreMissedHoldsAndRolls=ScoreMissedHoldsAndRolls()
|
ScoreMissedHoldsAndRolls=ScoreMissedHoldsAndRolls()
|
||||||
@@ -2488,7 +2487,7 @@ PlayerInitCommand=y,SCREEN_CENTER_Y;zoom,(THEME:GetMetric("Common","ScreenHeight
|
|||||||
StartGivesUp=true
|
StartGivesUp=true
|
||||||
BackGivesUp=false
|
BackGivesUp=false
|
||||||
#
|
#
|
||||||
FailOnMissCombo=-1
|
FailOnMissCombo=FailCombo()
|
||||||
GivingUpGoesToPrevScreen=false
|
GivingUpGoesToPrevScreen=false
|
||||||
GivingUpGoesToNextScreen=false
|
GivingUpGoesToNextScreen=false
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
function HitCombo()
|
||||||
|
sGame = GAMESTATE:GetCurrentGame():GetName();
|
||||||
|
local Combo = {
|
||||||
|
dance = 2,
|
||||||
|
pump = 4,
|
||||||
|
beat = 2,
|
||||||
|
kb7 = 2,
|
||||||
|
para = 2,
|
||||||
|
};
|
||||||
|
return Combo[sGame]
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MissCombo()
|
||||||
|
sGame = GAMESTATE:GetCurrentGame():GetName();
|
||||||
|
local Combo = {
|
||||||
|
dance = 2,
|
||||||
|
pump = 4,
|
||||||
|
beat = cmd(),
|
||||||
|
kb7 = cmd(),
|
||||||
|
para = cmd(),
|
||||||
|
};
|
||||||
|
return Combo[sGame]
|
||||||
|
end;
|
||||||
|
|
||||||
|
function FailCombo() -- The combo that causes game failure.
|
||||||
|
sGame = GAMESTATE:GetCurrentGame():GetName();
|
||||||
|
local Combo = {
|
||||||
|
dance = "30", -- ITG/Pump Pro does it this way.
|
||||||
|
pump = "51",
|
||||||
|
beat = "-1",
|
||||||
|
kb7 = "-1",
|
||||||
|
para = "-1",
|
||||||
|
};
|
||||||
|
return Combo[sGame]
|
||||||
|
end;
|
||||||
|
|
||||||
|
function HoldJudgmentFail()
|
||||||
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
|
return cmd();
|
||||||
|
else return cmd(finishtweening;shadowlength,0;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function HoldJudgmentPass()
|
||||||
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
|
return cmd();
|
||||||
|
else return cmd(finishtweening;shadowlength,0;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
@@ -31,7 +31,8 @@ ShowQMarksInRandomCycle=true
|
|||||||
[HelpDisplay]
|
[HelpDisplay]
|
||||||
TipShowTime=7
|
TipShowTime=7
|
||||||
[Combo]
|
[Combo]
|
||||||
ShowComboAt=2
|
ShowComboAt=HitCombo()
|
||||||
|
ShowMissesAt=MissCombo()
|
||||||
|
|
||||||
NumberMinZoom=0.8
|
NumberMinZoom=0.8
|
||||||
NumberMaxZoom=1
|
NumberMaxZoom=1
|
||||||
@@ -43,8 +44,8 @@ LabelOnCommand=x,6;y,22;shadowlength,1;horizalign,left;vertalign,bottom
|
|||||||
|
|
||||||
[HoldJudgment]
|
[HoldJudgment]
|
||||||
# !!! #
|
# !!! #
|
||||||
HoldJudgmentLetGoCommand=finishtweening;shadowlength,0;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0
|
HoldJudgmentLetGoCommand=HoldJudgmentFail()
|
||||||
HoldJudgmentHeldCommand=finishtweening;shadowlength,0;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0
|
HoldJudgmentHeldCommand=HoldJudgmentPass()
|
||||||
|
|
||||||
[Judgment]
|
[Judgment]
|
||||||
# New #
|
# New #
|
||||||
|
|||||||
+2
-1
@@ -127,6 +127,7 @@ static Preference<bool> g_bEnableMineSoundPlayback ( "EnableMineHitSound", true
|
|||||||
Preference<float> g_fTimingWindowHopo ( "TimingWindowHopo", 0.25 ); // max time between notes in a hopo chain
|
Preference<float> g_fTimingWindowHopo ( "TimingWindowHopo", 0.25 ); // max time between notes in a hopo chain
|
||||||
Preference<float> g_fTimingWindowStrum ( "TimingWindowStrum", 0.1f ); // max time between strum and when the frets must match
|
Preference<float> g_fTimingWindowStrum ( "TimingWindowStrum", 0.1f ); // max time between strum and when the frets must match
|
||||||
ThemeMetric<float> INITIAL_HOLD_LIFE ( "Player", "InitialHoldLife" );
|
ThemeMetric<float> INITIAL_HOLD_LIFE ( "Player", "InitialHoldLife" );
|
||||||
|
ThemeMetric<float> MAX_HOLD_LIFE ( "Player", "MaxHoldLife" );
|
||||||
ThemeMetric<bool> PENALIZE_TAP_SCORE_NONE ( "Player", "PenalizeTapScoreNone" );
|
ThemeMetric<bool> PENALIZE_TAP_SCORE_NONE ( "Player", "PenalizeTapScoreNone" );
|
||||||
ThemeMetric<bool> JUDGE_HOLD_NOTES_ON_SAME_ROW_TOGETHER ( "Player", "JudgeHoldNotesOnSameRowTogether" );
|
ThemeMetric<bool> JUDGE_HOLD_NOTES_ON_SAME_ROW_TOGETHER ( "Player", "JudgeHoldNotesOnSameRowTogether" );
|
||||||
ThemeMetric<bool> HOLD_CHECKPOINTS ( "Player", "HoldCheckpoints" );
|
ThemeMetric<bool> HOLD_CHECKPOINTS ( "Player", "HoldCheckpoints" );
|
||||||
@@ -1039,7 +1040,7 @@ void Player::UpdateHoldNotes( int iSongRow, float fDeltaTime, vector<TrackRowTap
|
|||||||
if( bInitiatedNote && bIsHoldingButton )
|
if( bInitiatedNote && bIsHoldingButton )
|
||||||
{
|
{
|
||||||
// Increase life
|
// Increase life
|
||||||
fLife = 1;
|
fLife = MAX_HOLD_LIFE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user