mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
move bail ring deduction to after hitlag
This commit is contained in:
parent
5e4bd6adbb
commit
371e34122a
1 changed files with 33 additions and 33 deletions
66
src/k_kart.c
66
src/k_kart.c
|
|
@ -10132,8 +10132,40 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
player->ringboost /= 3;
|
||||
}
|
||||
|
||||
if (player->bailhitlag && !player->mo->hitlag) // quake as soon as we leave hitlag
|
||||
if (player->bailhitlag && !player->mo->hitlag) // do the ring reduction and set boost as soon as we leave hitlag
|
||||
{
|
||||
UINT32 debtrings = 20;
|
||||
if (player->rings < 0)
|
||||
{
|
||||
debtrings += player->rings;
|
||||
player->rings = 0;
|
||||
}
|
||||
|
||||
UINT32 totalrings = player->rings + player->superring + player->pickuprings;
|
||||
if (BAIL_CREDIT_DEBTRINGS)
|
||||
totalrings += debtrings;
|
||||
totalrings = max(totalrings, 0);
|
||||
UINT32 bailboost = FixedInt(FixedMul(totalrings*FRACUNIT, BAIL_BOOST));
|
||||
UINT32 baildrop = FixedInt(FixedMul((totalrings)*FRACUNIT, BAIL_DROP));
|
||||
|
||||
player->rings = -20;
|
||||
player->superring = 0;
|
||||
player->pickuprings = 0;
|
||||
player->ringboxaward = 0;
|
||||
player->ringboxdelay = 0;
|
||||
|
||||
player->superringdisplay = 0;
|
||||
player->superringalert = 0;
|
||||
player->superringpeak = 0;
|
||||
|
||||
player->counterdash += TICRATE/8;
|
||||
|
||||
player->ringboost += bailboost * (3+K_GetKartRingPower(player, true));
|
||||
player->baildrop += baildrop * BAIL_DROPFREQUENCY + 1;
|
||||
|
||||
if (player->amps > 0)
|
||||
K_DefensiveOverdrive(player);
|
||||
|
||||
P_StartQuakeFromMobj(7, 50 * player->mo->scale, 2048 * player->mo->scale, player->mo);
|
||||
player->bailhitlag = false;
|
||||
}
|
||||
|
|
@ -14150,20 +14182,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
mobj_t *bail = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, MT_BAIL);
|
||||
P_SetTarget(&bail->target, player->mo);
|
||||
|
||||
UINT32 debtrings = 20;
|
||||
if (player->rings < 0)
|
||||
{
|
||||
debtrings += player->rings;
|
||||
player->rings = 0;
|
||||
}
|
||||
|
||||
UINT32 totalrings = player->rings + player->superring + player->pickuprings;
|
||||
if (BAIL_CREDIT_DEBTRINGS)
|
||||
totalrings += debtrings;
|
||||
totalrings = max(totalrings, 0);
|
||||
UINT32 bailboost = FixedInt(FixedMul(totalrings*FRACUNIT, BAIL_BOOST));
|
||||
UINT32 baildrop = FixedInt(FixedMul((totalrings)*FRACUNIT, BAIL_DROP));
|
||||
|
||||
if (player->itemRoulette.active)
|
||||
{
|
||||
player->itemRoulette.active = false;
|
||||
|
|
@ -14184,21 +14202,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
}
|
||||
*/
|
||||
|
||||
player->rings = -20;
|
||||
player->superring = 0;
|
||||
player->pickuprings = 0;
|
||||
player->ringboxaward = 0;
|
||||
player->ringboxdelay = 0;
|
||||
|
||||
player->superringdisplay = 0;
|
||||
player->superringalert = 0;
|
||||
player->superringpeak = 0;
|
||||
|
||||
player->counterdash += TICRATE/8;
|
||||
|
||||
player->ringboost += bailboost * (3+K_GetKartRingPower(player, true));
|
||||
player->baildrop += baildrop * BAIL_DROPFREQUENCY + 1;
|
||||
|
||||
K_AddHitLag(player->mo, TICRATE/4, false);
|
||||
player->bailhitlag = true; // set for a one time quake effect as soon as hitlag ends
|
||||
|
||||
|
|
@ -14219,9 +14222,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
S_StartSound(NULL, fl->hornsound);
|
||||
}
|
||||
|
||||
if (player->amps > 0)
|
||||
K_DefensiveOverdrive(player);
|
||||
|
||||
S_StartSound(player->mo, sfx_kc33);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue