[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
+16 -7
View File
@@ -12,7 +12,6 @@
ThemeMetric<float> ATTACK_DURATION_SECONDS ("ScoreKeeperRave","AttackDurationSeconds"); ThemeMetric<float> ATTACK_DURATION_SECONDS ("ScoreKeeperRave","AttackDurationSeconds");
static const float g_fSuperMeterPercentChangeInit[] = static const float g_fSuperMeterPercentChangeInit[] =
{ {
+0.02f, // SE_CheckpointHit +0.02f, // SE_CheckpointHit
@@ -59,7 +58,7 @@ void ScoreKeeperRave::HandleTapRowScore( const NoteData &nd, int iRow )
{ {
TapNoteScore scoreOfLastTap; TapNoteScore scoreOfLastTap;
int iNumTapsInRow; int iNumTapsInRow;
float fPercentToMove; float fPercentToMove = 0.0f;
GetScoreOfLastTapInRow( nd, iRow, scoreOfLastTap, iNumTapsInRow ); GetScoreOfLastTapInRow( nd, iRow, scoreOfLastTap, iNumTapsInRow );
if( iNumTapsInRow <= 0 ) if( iNumTapsInRow <= 0 )
@@ -79,14 +78,25 @@ void ScoreKeeperRave::HandleTapRowScore( const NoteData &nd, int iRow )
void ScoreKeeperRave::HandleHoldScore( const TapNote &tn ) void ScoreKeeperRave::HandleHoldScore( const TapNote &tn )
{ {
// todo: should hit mine be handled in HandleTapRow score instead? -aj
TapNoteScore tapScore = tn.result.tns; TapNoteScore tapScore = tn.result.tns;
float fPercentToMove = 0; float fPercentToMove = 0.0f;
switch( tapScore ) switch( tapScore )
{ {
case TNS_HitMine: case TNS_HitMine:
fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine]; fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine];
default:
break; 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 ); AddSuperMeterDelta( fPercentToMove );
} }
@@ -126,7 +136,6 @@ void ScoreKeeperRave::AddSuperMeterDelta( float fUnscaledPercentChange )
fUnscaledPercentChange /= SCALE( fLifePercentage, 0.f, 1.f, 1.7f, 0.3f); fUnscaledPercentChange /= SCALE( fLifePercentage, 0.f, 1.f, 1.7f, 0.3f);
} }
// mercy: drop super meter faster if at a higher level // mercy: drop super meter faster if at a higher level
if( fUnscaledPercentChange < 0 ) if( fUnscaledPercentChange < 0 )
fUnscaledPercentChange *= SCALE( m_pPlayerState->m_fSuperMeter, 0.f, 1.f, 0.01f, 1.f ); 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 ) void ScoreKeeperRave::LaunchAttack( AttackLevel al )
{ {
PlayerNumber pn = m_pPlayerState->m_PlayerNumber; PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
@@ -173,7 +181,8 @@ void ScoreKeeperRave::LaunchAttack( AttackLevel al )
sAttackToGive = asAttacks[ RandomInt(NUM_ATTACKS_PER_LEVEL) ]; sAttackToGive = asAttacks[ RandomInt(NUM_ATTACKS_PER_LEVEL) ];
else 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" }; RString DefaultAttacks[8] = { "1.5x", "2.0x", "0.5x", "reverse", "sudden", "boost", "brake", "wave" };
sAttackToGive = DefaultAttacks[ RandomInt(8) ]; sAttackToGive = DefaultAttacks[ RandomInt(8) ];
} }