[ScoreKeeperRave] Actually handle hold scores in HandleHoldScore(). Players should please provide feedback on how this affects gameplay, as this is a temporary feature.

This commit is contained in:
AJ Kelly
2012-03-28 18:54:52 -05:00
parent e71832b14e
commit 7f70e77b57
+24 -15
View File
@@ -12,7 +12,6 @@
ThemeMetric<float> ATTACK_DURATION_SECONDS ("ScoreKeeperRave","AttackDurationSeconds");
static const float g_fSuperMeterPercentChangeInit[] =
{
+0.02f, // SE_CheckpointHit
@@ -59,34 +58,45 @@ void ScoreKeeperRave::HandleTapRowScore( const NoteData &nd, int iRow )
{
TapNoteScore scoreOfLastTap;
int iNumTapsInRow;
float fPercentToMove;
float fPercentToMove = 0.0f;
GetScoreOfLastTapInRow( nd, iRow, scoreOfLastTap, iNumTapsInRow );
if( iNumTapsInRow <= 0 )
return;
switch( scoreOfLastTap )
{
DEFAULT_FAIL( scoreOfLastTap );
case TNS_W1: fPercentToMove = g_fSuperMeterPercentChange[SE_W1]; break;
case TNS_W2: fPercentToMove = g_fSuperMeterPercentChange[SE_W2]; break;
case TNS_W3: fPercentToMove = g_fSuperMeterPercentChange[SE_W3]; break;
case TNS_W4: fPercentToMove = g_fSuperMeterPercentChange[SE_W4]; break;
case TNS_W5: fPercentToMove = g_fSuperMeterPercentChange[SE_W5]; break;
case TNS_Miss: fPercentToMove = g_fSuperMeterPercentChange[SE_Miss]; break;
DEFAULT_FAIL( scoreOfLastTap );
case TNS_W1: fPercentToMove = g_fSuperMeterPercentChange[SE_W1]; break;
case TNS_W2: fPercentToMove = g_fSuperMeterPercentChange[SE_W2]; break;
case TNS_W3: fPercentToMove = g_fSuperMeterPercentChange[SE_W3]; break;
case TNS_W4: fPercentToMove = g_fSuperMeterPercentChange[SE_W4]; break;
case TNS_W5: fPercentToMove = g_fSuperMeterPercentChange[SE_W5]; break;
case TNS_Miss: fPercentToMove = g_fSuperMeterPercentChange[SE_Miss]; break;
}
AddSuperMeterDelta( fPercentToMove );
}
void ScoreKeeperRave::HandleHoldScore( const TapNote &tn )
{
// todo: should hit mine be handled in HandleTapRow score instead? -aj
TapNoteScore tapScore = tn.result.tns;
float fPercentToMove = 0;
float fPercentToMove = 0.0f;
switch( tapScore )
{
case TNS_HitMine:
fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine];
default:
break;
default: break;
}
// Playing with this code enabled seems to feel "wrong", but I'm leaving it
// in for player feedback. -aj
HoldNoteScore holdScore = tn.HoldResult.hns;
switch( holdScore )
{
case HNS_Held: fPercentToMove = g_fSuperMeterPercentChange[SE_Held]; break;
case HNS_LetGo: fPercentToMove = g_fSuperMeterPercentChange[SE_LetGo]; break;
default: break;
}
AddSuperMeterDelta( fPercentToMove );
}
@@ -126,7 +136,6 @@ void ScoreKeeperRave::AddSuperMeterDelta( float fUnscaledPercentChange )
fUnscaledPercentChange /= SCALE( fLifePercentage, 0.f, 1.f, 1.7f, 0.3f);
}
// mercy: drop super meter faster if at a higher level
if( fUnscaledPercentChange < 0 )
fUnscaledPercentChange *= SCALE( m_pPlayerState->m_fSuperMeter, 0.f, 1.f, 0.01f, 1.f );
@@ -161,7 +170,6 @@ void ScoreKeeperRave::AddSuperMeterDelta( float fUnscaledPercentChange )
}
}
void ScoreKeeperRave::LaunchAttack( AttackLevel al )
{
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
@@ -173,12 +181,13 @@ void ScoreKeeperRave::LaunchAttack( AttackLevel al )
sAttackToGive = asAttacks[ RandomInt(NUM_ATTACKS_PER_LEVEL) ];
else
{
/* If you add any note skins here, you need to make sure they're cached, too. */
// "If you add any noteskins here, you need to make sure they're cached, too." -?
// Noteskins probably won't work here anymore. -aj
RString DefaultAttacks[8] = { "1.5x", "2.0x", "0.5x", "reverse", "sudden", "boost", "brake", "wave" };
sAttackToGive = DefaultAttacks[ RandomInt(8) ];
}
PlayerNumber pnToAttack = OPPOSITE_PLAYER[pn];
PlayerNumber pnToAttack = OPPOSITE_PLAYER[pn];
PlayerState *pPlayerStateToAttack = GAMESTATE->m_pPlayerState[pnToAttack];
Attack a;