Consistent color scale

Driftsparks now go through grey, yellow, red, and blue; instead of yellow, red, blue, purple. This is consistent with every other scale of power in the game.
This commit is contained in:
VelocitOni 2022-09-07 03:45:20 -04:00
parent ea3818d285
commit 813751d9c0
2 changed files with 36 additions and 41 deletions

View file

@ -4297,8 +4297,8 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
if (charge < 0) if (charge < 0)
{ {
// Stage 0: Yellow // Stage 0: Grey
color = SKINCOLOR_GOLD; color = SKINCOLOR_SILVER;
} }
else if (charge >= dsfour) else if (charge >= dsfour)
{ {
@ -4315,7 +4315,7 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
} }
else if (charge >= dsthree) else if (charge >= dsthree)
{ {
// Stage 3: Purple // Stage 3: Blue
if (charge <= dsthree+(16*3)) if (charge <= dsthree+(16*3))
{ {
// transition 1 // transition 1
@ -4324,19 +4324,6 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
else if (charge <= dsthree+(32*3)) else if (charge <= dsthree+(32*3))
{ {
// transition 2 // transition 2
color = SKINCOLOR_MOONSET;
}
else
{
color = SKINCOLOR_PURPLE;
}
}
else if (charge >= dstwo)
{
// Stage 2: Blue
if (charge <= dstwo+(32*3))
{
// transition
color = SKINCOLOR_NOVA; color = SKINCOLOR_NOVA;
} }
else else
@ -4344,10 +4331,10 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
color = SKINCOLOR_SAPPHIRE; color = SKINCOLOR_SAPPHIRE;
} }
} }
else if (charge >= dsone) else if (charge >= dstwo)
{ {
// Stage 1: Red // Stage 2: Red
if (charge <= dsone+(32*3)) if (charge <= dstwo+(32*3))
{ {
// transition // transition
color = SKINCOLOR_TANGERINE; color = SKINCOLOR_TANGERINE;
@ -4357,6 +4344,19 @@ UINT16 K_DriftSparkColor(player_t *player, INT32 charge)
color = SKINCOLOR_KETCHUP; color = SKINCOLOR_KETCHUP;
} }
} }
else if (charge >= dsone)
{
// Stage 1: Yellow
if (charge <= dsone+(32*3))
{
// transition
color = SKINCOLOR_TAN;
}
else
{
color = SKINCOLOR_GOLD;
}
}
return color; return color;
} }
@ -8543,9 +8543,9 @@ INT32 K_GetKartDriftSparkValueForStage(player_t *player, UINT8 stage)
} }
/* /*
Stage 1: red sparks Stage 1: yellow sparks
Stage 2: blue sparks Stage 2: red sparks
Stage 3: purple sparks Stage 3: blue sparks
Stage 4: big large rainbow sparks Stage 4: big large rainbow sparks
Stage 0: air failsafe Stage 0: air failsafe
*/ */
@ -8561,26 +8561,22 @@ void K_SpawnDriftBoostExplosion(player_t *player, int stage)
switch (stage) switch (stage)
{ {
case 1: case 1:
overlay->color = SKINCOLOR_KETCHUP;
overlay->fuse = 16; overlay->fuse = 16;
break; break;
case 2: case 2:
overlay->color = SKINCOLOR_SAPPHIRE;
overlay->fuse = 32;
overlay->fuse = 32;
S_StartSound(player->mo, sfx_kc5b); S_StartSound(player->mo, sfx_kc5b);
break; break;
case 3: case 3:
overlay->color = SKINCOLOR_PURPLE;
overlay->fuse = 48; overlay->fuse = 48;
S_StartSound(player->mo, sfx_kc5b); S_StartSound(player->mo, sfx_kc5b);
break; break;
case 4: case 4:
overlay->color = SKINCOLOR_SILVER;
overlay->fuse = 120; overlay->fuse = 120;
S_StartSound(player->mo, sfx_kc5b); S_StartSound(player->mo, sfx_kc5b);
@ -8588,7 +8584,6 @@ void K_SpawnDriftBoostExplosion(player_t *player, int stage)
break; break;
case 0: case 0:
overlay->color = SKINCOLOR_SILVER;
overlay->fuse = 16; overlay->fuse = 16;
break; break;
} }
@ -8623,7 +8618,7 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->driftcharge < 0) if (player->driftcharge < 0)
{ {
// Stage 0: Yellow sparks // Stage 0: Grey sparks
if (!onground) if (!onground)
P_Thrust(player->mo, pushdir, player->speed / 8); P_Thrust(player->mo, pushdir, player->speed / 8);
@ -8632,7 +8627,7 @@ static void K_KartDrift(player_t *player, boolean onground)
} }
else if (player->driftcharge >= dsone && player->driftcharge < dstwo) else if (player->driftcharge >= dsone && player->driftcharge < dstwo)
{ {
// Stage 1: Red sparks // Stage 1: Yellow sparks
if (!onground) if (!onground)
P_Thrust(player->mo, pushdir, player->speed / 4); P_Thrust(player->mo, pushdir, player->speed / 4);
@ -8643,7 +8638,7 @@ static void K_KartDrift(player_t *player, boolean onground)
} }
else if (player->driftcharge < dsthree) else if (player->driftcharge < dsthree)
{ {
// Stage 2: Blue sparks // Stage 2: Red sparks
if (!onground) if (!onground)
P_Thrust(player->mo, pushdir, player->speed / 3); P_Thrust(player->mo, pushdir, player->speed / 3);
@ -8654,7 +8649,7 @@ static void K_KartDrift(player_t *player, boolean onground)
} }
else if (player->driftcharge < dsfour) else if (player->driftcharge < dsfour)
{ {
// Stage 3: Purple sparks // Stage 3: Blue sparks
if (!onground) if (!onground)
P_Thrust(player->mo, pushdir, ( 5 * player->speed ) / 12); P_Thrust(player->mo, pushdir, ( 5 * player->speed ) / 12);

View file

@ -7125,17 +7125,17 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
if (mobj->fuse <= 16) if (mobj->fuse <= 16)
{ {
mobj->color = SKINCOLOR_KETCHUP; mobj->color = SKINCOLOR_GOLD;
/* don't draw papersprite frames after blue boost */ /* don't draw papersprite frames after blue boost */
mobj->renderflags ^= RF_DONTDRAW; mobj->renderflags ^= RF_DONTDRAW;
} }
else if (mobj->fuse <= 32) else if (mobj->fuse <= 32)
mobj->color = SKINCOLOR_SAPPHIRE; mobj->color = SKINCOLOR_KETCHUP;
else if (mobj->fuse <= 48) else if (mobj->fuse <= 48)
mobj->color = SKINCOLOR_PURPLE; mobj->color = SKINCOLOR_SAPPHIRE;
else if (mobj->fuse > 48) else if (mobj->fuse > 48)
mobj->color = K_RainbowColor( mobj->color = K_RainbowColor(
(SKINCOLOR_PURPLE - SKINCOLOR_PINK) // Smoothly transition into the other state (SKINCOLOR_SAPPHIRE - SKINCOLOR_PINK) // Smoothly transition into the other state
+ ((mobj->fuse - 32) * 2) // Make the color flashing slow down while it runs out + ((mobj->fuse - 32) * 2) // Make the color flashing slow down while it runs out
); );
@ -7150,14 +7150,14 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
} }
break; break;
case 3:/* purple boost */ case 3:/* blue boost */
if ((mobj->fuse == 32)/* to blue*/ if ((mobj->fuse == 32)/* to red*/
|| (mobj->fuse == 16))/* to red*/ || (mobj->fuse == 16))/* to yellow*/
K_SpawnDriftBoostClip(mobj->target->player); K_SpawnDriftBoostClip(mobj->target->player);
break; break;
case 2:/* blue boost */ case 2:/* red boost */
if (mobj->fuse == 16)/* to red*/ if (mobj->fuse == 16)/* to yellow*/
K_SpawnDriftBoostClip(mobj->target->player); K_SpawnDriftBoostClip(mobj->target->player);
break; break;