mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 20:41:46 +00:00
No bail in SPHERES
This commit is contained in:
parent
5323b0f7ec
commit
a1bd9e8640
1 changed files with 27 additions and 15 deletions
42
src/k_kart.c
42
src/k_kart.c
|
|
@ -12768,7 +12768,7 @@ static INT32 K_FlameShieldMax(player_t *player)
|
||||||
UINT32 distv = 1024; // Pre no-scams: 2048
|
UINT32 distv = 1024; // Pre no-scams: 2048
|
||||||
distv = distv * 16 / FLAMESHIELD_MAX; // Old distv was based on a 16-segment bar
|
distv = distv * 16 / FLAMESHIELD_MAX; // Old distv was based on a 16-segment bar
|
||||||
UINT32 scamradius = 1500*4; // How close is close enough that we shouldn't be allowed to scam 1st?
|
UINT32 scamradius = 1500*4; // How close is close enough that we shouldn't be allowed to scam 1st?
|
||||||
UINT8 i;
|
// UINT8 i;
|
||||||
|
|
||||||
disttofinish = K_GetItemRouletteDistance(player, 8);
|
disttofinish = K_GetItemRouletteDistance(player, 8);
|
||||||
|
|
||||||
|
|
@ -13970,23 +13970,35 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
player->instaWhipCharge = 0;
|
player->instaWhipCharge = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player->cmd.buttons & BT_BAIL && (player->cmd.buttons & BT_RESPAWNMASK) != BT_RESPAWNMASK)
|
||||||
if ((player->cmd.buttons & BT_BAIL) && (player->cmd.buttons & BT_RESPAWNMASK) != BT_RESPAWNMASK && ((player->itemtype && player->itemamount) || (player->rings > 0) || player->superring > 0 || player->pickuprings > 0 || player->itemRoulette.active))
|
|
||||||
{
|
{
|
||||||
boolean grounded = P_IsObjectOnGround(player->mo);
|
if (leveltime < introtime || (gametyperules & GTR_SPHERES))
|
||||||
onground && player->tumbleBounces == 0 ? player->bailcharge += 2 : player->bailcharge++; // charge twice as fast on the ground
|
|
||||||
if ((P_PlayerInPain(player) && player->bailcharge == 1) || (grounded && P_PlayerInPain(player) && player->bailcharge == 2)) // this is brittle ..
|
|
||||||
{
|
{
|
||||||
mobj_t *bail = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, MT_BAILCHARGE);
|
// No bailing in GTR_SPHERES because I cannot be fucked to do manual Last Chance right now.
|
||||||
S_StartSound(bail, sfx_gshb9); // I tried to use info.c, but you can't play sounds on mobjspawn via A_PlaySound
|
// Maybe someday!
|
||||||
S_StartSound(bail, sfx_kc4e);
|
if (!(player->oldcmd.buttons & BT_BAIL))
|
||||||
P_SetTarget(&bail->target, player->mo);
|
if (P_IsDisplayPlayer(player))
|
||||||
bail->renderflags |= RF_FULLBRIGHT; // set fullbright here, were gonna animate frames in the thinker and it saves us from setting FF_FULLBRIGHT every frame
|
S_StartSound(player->mo, sfx_s3k7b);
|
||||||
|
player->bailcharge = 0;
|
||||||
|
}
|
||||||
|
else if ((player->itemtype && player->itemamount) || player->rings > 0 || player->superring > 0 || player->pickuprings > 0 || player->itemRoulette.active)
|
||||||
|
{
|
||||||
|
// Set up bail charge, provided we have something to bail with (any rings or item resource).
|
||||||
|
boolean grounded = P_IsObjectOnGround(player->mo);
|
||||||
|
onground && player->tumbleBounces == 0 ? player->bailcharge += 2 : player->bailcharge++; // charge twice as fast on the ground
|
||||||
|
if ((P_PlayerInPain(player) && player->bailcharge == 1) || (grounded && P_PlayerInPain(player) && player->bailcharge == 2)) // this is brittle ..
|
||||||
|
{
|
||||||
|
mobj_t *bail = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, MT_BAILCHARGE);
|
||||||
|
S_StartSound(bail, sfx_gshb9); // I tried to use info.c, but you can't play sounds on mobjspawn via A_PlaySound
|
||||||
|
S_StartSound(bail, sfx_kc4e);
|
||||||
|
P_SetTarget(&bail->target, player->mo);
|
||||||
|
bail->renderflags |= RF_FULLBRIGHT; // set fullbright here, were gonna animate frames in the thinker and it saves us from setting FF_FULLBRIGHT every frame
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player->bailcharge = 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player->bailcharge = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!P_PlayerInPain(player) && player->bailcharge >= 5) || player->bailcharge >= BAIL_MAXCHARGE)
|
if ((!P_PlayerInPain(player) && player->bailcharge >= 5) || player->bailcharge >= BAIL_MAXCHARGE)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue