Fix karma overtime not counting down after 10 seconds :)

This commit is contained in:
James R 2021-11-27 00:06:01 -08:00
parent 059058476e
commit 5f9ec5caa6
2 changed files with 18 additions and 22 deletions

View file

@ -2460,10 +2460,8 @@ static void K_drawKartBumpersOrKarma(void)
else else
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_bumpersticker, colormap); V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_bumpersticker, colormap);
if (stplyr->bumpers > 0) // TODO BETTER HUD
V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", stplyr->bumpers, maxbumper)); V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d - %d", stplyr->bumpers, stplyr->overtimekarma / TICRATE));
else // TODO - BETTER HUD
V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d", stplyr->overtimekarma / TICRATE));
} }
} }
} }

View file

@ -6890,28 +6890,26 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
K_KartPlayerHUDUpdate(player); K_KartPlayerHUDUpdate(player);
if (battleovertime.enabled && !(player->pflags & PF_ELIMINATED)) if (battleovertime.enabled && !(player->pflags & PF_ELIMINATED) && player->bumpers <= 0)
{ {
if (battleovertime.enabled >= 10*TICRATE) if (player->overtimekarma)
player->overtimekarma--;
else
P_DamageMobj(player->mo, NULL, NULL, 1, DMG_TIMEOVER);
}
if ((battleovertime.enabled >= 10*TICRATE) && !(player->pflags & PF_ELIMINATED))
{
fixed_t distanceToBarrier = 0;
if (battleovertime.radius > 0)
{ {
fixed_t distanceToBarrier = 0; distanceToBarrier = R_PointToDist2(player->mo->x, player->mo->y, battleovertime.x, battleovertime.y) - (player->mo->radius * 2);
if (battleovertime.radius > 0)
{
distanceToBarrier = R_PointToDist2(player->mo->x, player->mo->y, battleovertime.x, battleovertime.y) - (player->mo->radius * 2);
}
if (distanceToBarrier > battleovertime.radius)
{
P_DamageMobj(player->mo, NULL, NULL, 1, DMG_TIMEOVER);
}
} }
else if (player->bumpers <= 0)
if (distanceToBarrier > battleovertime.radius)
{ {
if (player->overtimekarma) P_DamageMobj(player->mo, NULL, NULL, 1, DMG_TIMEOVER);
player->overtimekarma--;
else
P_DamageMobj(player->mo, NULL, NULL, 1, DMG_TIMEOVER);
} }
} }