diff --git a/src/k_kart.c b/src/k_kart.c index 1d4e21f51..dbc50a360 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3132,7 +3132,7 @@ boolean K_ApplyOffroad(const player_t *player) boolean K_SlopeResistance(const player_t *player) { - if (player->invincibilitytimer || player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || player->tiregrease || player->flamedash) + if (player->invincibilitytimer || player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || player->tiregrease || player->flamedash || player->baildrop) return true; if (player->curshield == KSHIELD_TOP) return true; @@ -10712,6 +10712,13 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) S_StartSound(player->follower, fl->hornsound); } + if (!P_IsObjectOnGround(player->mo)) // If you're bailing off the ground, shoot down. Mostly for Burst + { + P_SetObjectMomZ(player->mo, -100*FRACUNIT, true); // (Reverse gravity friendly...) + P_StartQuakeFromMobj(7, 100 * player->mo->scale, 2048 * player->mo->scale, player->mo); // quake even harder + S_StartSound(player->mo, sfx_gshc6); + } + S_StartSound(player->mo, sfx_kc33); } @@ -14707,7 +14714,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) if (player->cmd.buttons & BT_BAIL && (player->cmd.buttons & BT_RESPAWNMASK) != BT_RESPAWNMASK) { - if (leveltime < introtime || (gametyperules & GTR_SPHERES)) + if (leveltime < introtime || (gametyperules & GTR_SPHERES) || modeattacking) { // No bailing in GTR_SPHERES because I cannot be fucked to do manual Last Chance right now. // Maybe someday! diff --git a/src/k_kart.h b/src/k_kart.h index 5af2855fb..d84f1e9ab 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -45,11 +45,11 @@ Make sure this matches the actual number of states #define PUNISHWINDOW (7*TICRATE/10) #define BAIL_MAXCHARGE (84) // tics to bail when in painstate nad in air, on ground is half, if you touch this, also update Obj_BailChargeThink synced animation logic -#define BAIL_DROP (FRACUNIT) -#define BAIL_BOOST (6*FRACUNIT/5) -#define BAIL_CREDIT_DEBTRINGS (true) -#define BAIL_DROPFREQUENCY (2) -#define BAILSTUN (TICRATE*6) +#define BAIL_DROP (FRACUNIT) // How many rings it has to drop before stun starts +#define BAIL_BOOST (6*FRACUNIT/5) // How fast bail itself is +#define BAIL_CREDIT_DEBTRINGS (true) +#define BAIL_DROPFREQUENCY (2) // How quickly the rings spill out +#define BAILSTUN (TICRATE*6) // The fixed length of stun after baildrop is over #define MAXCOMBOTHRUST (mapobjectscale*20) #define MAXCOMBOFLOAT (mapobjectscale*10)