[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:
+16
-7
@@ -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) ];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user