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:
Jason Felds
2010-01-31 00:27:42 -05:00
parent d56cb505d0
commit 81b4011423
5 changed files with 105 additions and 12 deletions
@@ -173,24 +173,60 @@ function ComboPerRow()
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()
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
return "0";
return 0;
else return PREFSMAN:GetPreference("TimingWindowSecondsHold");
end;
end;
function HoldJudgmentFail()
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
return "";
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";
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 "";
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";
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;
@@ -208,6 +244,13 @@ function InitialHoldLife()
end;
end;
function MaxHoldLife()
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
return 0.05;
else return 1;
end;
end;
function ImmediateHoldLetGo()
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
return false;
+2 -3
View File
@@ -161,8 +161,6 @@ MeterWidth=0.0
MeterHeight=0.0
[Combo]
ShowComboAt=(GAMESTATE:GetCurrentGame():GetName() == "pump") and 4 or 2
ShowMissesAt=(GAMESTATE:GetCurrentGame():GetName() == "pump") and 4 or ""
NumberMinZoom=0.8
NumberMaxZoom=1
@@ -711,6 +709,7 @@ ImmediateHoldLetGo=ImmediateHoldLetGo()
RequireStepOnHoldHeads=HoldHeadStep()
CheckpointsUseTimeSignatures=(GAMESTATE:GetCurrentGame():GetName() == "pump")
InitialHoldLife=InitialHoldLife()
MaxHoldLife=MaxHoldLife()
RollBodyIncrementsCombo=RollBodyIncrementsCombo()
CheckpointsTapsSeparateJudgment=CheckpointsTapsSeparateJudgment()
ScoreMissedHoldsAndRolls=ScoreMissedHoldsAndRolls()
@@ -2488,7 +2487,7 @@ PlayerInitCommand=y,SCREEN_CENTER_Y;zoom,(THEME:GetMetric("Common","ScreenHeight
StartGivesUp=true
BackGivesUp=false
#
FailOnMissCombo=-1
FailOnMissCombo=FailCombo()
GivingUpGoesToPrevScreen=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;
+4 -3
View File
@@ -31,7 +31,8 @@ ShowQMarksInRandomCycle=true
[HelpDisplay]
TipShowTime=7
[Combo]
ShowComboAt=2
ShowComboAt=HitCombo()
ShowMissesAt=MissCombo()
NumberMinZoom=0.8
NumberMaxZoom=1
@@ -43,8 +44,8 @@ LabelOnCommand=x,6;y,22;shadowlength,1;horizalign,left;vertalign,bottom
[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
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
HoldJudgmentLetGoCommand=HoldJudgmentFail()
HoldJudgmentHeldCommand=HoldJudgmentPass()
[Judgment]
# New #
+2 -1
View File
@@ -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_fTimingWindowStrum ( "TimingWindowStrum", 0.1f ); // max time between strum and when the frets must match
ThemeMetric<float> INITIAL_HOLD_LIFE ( "Player", "InitialHoldLife" );
ThemeMetric<float> MAX_HOLD_LIFE ( "Player", "MaxHoldLife" );
ThemeMetric<bool> PENALIZE_TAP_SCORE_NONE ( "Player", "PenalizeTapScoreNone" );
ThemeMetric<bool> JUDGE_HOLD_NOTES_ON_SAME_ROW_TOGETHER ( "Player", "JudgeHoldNotesOnSameRowTogether" );
ThemeMetric<bool> HOLD_CHECKPOINTS ( "Player", "HoldCheckpoints" );
@@ -1039,7 +1040,7 @@ void Player::UpdateHoldNotes( int iSongRow, float fDeltaTime, vector<TrackRowTap
if( bInitiatedNote && bIsHoldingButton )
{
// Increase life
fLife = 1;
fLife = MAX_HOLD_LIFE;
}
else
{