diff --git a/src/k_kart.c b/src/k_kart.c index 3f9dfa551..5c07f26f9 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -6747,7 +6747,7 @@ void K_DoInvincibility(player_t *player, tic_t time) S_StartSound(player->mo, sfx_alarmi); } - player->invincibilitytimer += time; + player->invincibilitytimer = time; } void K_KillBananaChain(mobj_t *banana, mobj_t *inflictor, mobj_t *source) @@ -12134,7 +12134,8 @@ void K_MoveKartPlayer(player_t *player, boolean onground) UINT32 behindScaled = behind * TICRATE / 4000; behindScaled = min(behindScaled, 10*TICRATE); - K_DoInvincibility(player, 10 * TICRATE + behindScaled); + K_DoInvincibility(player, + max(10u * TICRATE + behindScaled, player->invincibilitytimer + 5u*TICRATE)); K_PlayPowerGloatSound(player->mo); player->itemamount--; player->botvars.itemconfirm = 0; diff --git a/src/k_powerup.cpp b/src/k_powerup.cpp index 4ecc1efe1..8bc504cbc 100644 --- a/src/k_powerup.cpp +++ b/src/k_powerup.cpp @@ -67,7 +67,7 @@ void K_GivePowerUp(player_t* player, kartitems_t powerup, tic_t time) case POWERUP_SMONITOR: S_StartSound(NULL, sfx_bpwrua); K_AddMessageForPlayer(player, "Got S MONITOR!", true, false); - K_DoInvincibility(player, time); + K_DoInvincibility(player, player->invincibilitytimer + time); player->powerup.superTimer += time; break;