Amps for checkpoints (and small amp fixes)

This commit is contained in:
Antonio Martinez 2024-08-13 17:54:31 -07:00
parent df4e99b050
commit 89544772b3
4 changed files with 9 additions and 3 deletions

View file

@ -4091,7 +4091,7 @@ boolean K_Overdrive(player_t *player)
S_StartSound(player->mo, sfx_cdfm35); S_StartSound(player->mo, sfx_cdfm35);
S_StartSound(player->mo, sfx_cdfm13); S_StartSound(player->mo, sfx_cdfm13);
player->overdrive += (player->amps)*6; player->overdrive += (player->amps)*3;
player->overshield += (player->amps)*2; player->overshield += (player->amps)*2;
player->overdrivepower = FRACUNIT; player->overdrivepower = FRACUNIT;
@ -4112,7 +4112,7 @@ boolean K_DefensiveOverdrive(player_t *player)
S_StartSound(player->mo, sfx_cdfm35); S_StartSound(player->mo, sfx_cdfm35);
S_StartSound(player->mo, sfx_cdfm13); S_StartSound(player->mo, sfx_cdfm13);
player->overdrive += (player->amps)*4; player->overdrive += (player->amps)*2;
player->overshield += (player->amps)*2 + TICRATE*2; player->overshield += (player->amps)*2 + TICRATE*2;
player->overdrivepower = FRACUNIT; player->overdrivepower = FRACUNIT;

View file

@ -55,7 +55,7 @@ void Obj_AmpsThink (mobj_t *amps)
amps->extravalue2++; amps->extravalue2++;
speed += amps->extravalue1 * amps->scale/2; speed += amps->extravalue2 * amps->scale/2;
fakez = mo->z + (vert * amps->extravalue1 / AMP_ARCTIME); fakez = mo->z + (vert * amps->extravalue1 / AMP_ARCTIME);
damper = 1; damper = 1;

View file

@ -674,6 +674,9 @@ void __attribute__((optimize("O0"))) Obj_CrossCheckpoints(player_t* player, fixe
{ {
player->lapPoints += 1; player->lapPoints += 1;
} }
K_SpawnAmps(player, 5*(D_NumPlayersInRace() - player->position), static_cast<mobj_t*>(chk));
K_SpawnAmps(player, 5*(D_NumPlayersInRace() - player->position), static_cast<mobj_t*>(chk->other()));
} }
} }

View file

@ -2116,6 +2116,9 @@ static void K_HandleLapIncrement(player_t *player)
{ {
player->lapPoints++; player->lapPoints++;
} }
if (player->laps <= numlaps)
K_SpawnAmps(player, 10*(D_NumPlayersInRace() - player->position), player->mo);
} }
if (player->position == 1 && !(gametyperules & GTR_CHECKPOINTS)) if (player->position == 1 && !(gametyperules & GTR_CHECKPOINTS))