From a4767323f2edcd7729bfe203b5b6e7860b8e6e4a Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 24 Aug 2022 01:38:50 -0400 Subject: [PATCH] Give heavy-accel a bonus to drift boosts --- src/k_kart.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 74ad3e658..f8412f0d1 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3089,14 +3089,22 @@ static void K_GetKartBoostPower(player_t *player) if (player->driftboost) // Drift Boost { - if (player->strongdriftboost) // Purple/Rainbow drift boost + // Rebuff Eggman's stat block corner + const INT32 heavyAccel = (player->kartweight - 1) + (9 - player->kartspeed); + const fixed_t heavyAccelBonus = FRACUNIT + ((heavyAccel * maxmetabolismincrease * 2) / 16); + + fixed_t driftSpeed = FRACUNIT/4; // 25% base + + if (player->strongdriftboost > 0) { - ADDBOOST(FRACUNIT/3, 4*FRACUNIT, 0); // + 33% top speed, + 400% acceleration, +0% handling - } - else - { - ADDBOOST(FRACUNIT/4, 4*FRACUNIT, 0); // + 25% top speed, + 400% acceleration, +0% handling + // Purple/Rainbow drift boost + driftSpeed = FixedMul(driftSpeed, 4*FRACUNIT/3); // 25% -> 33% } + + // Bottom-left bonus + driftSpeed = FixedMul(driftSpeed, heavyAccelBonus); + + ADDBOOST(driftSpeed, 4*FRACUNIT, 0); // + variable top speed, + 400% acceleration, +0% handling } if (player->trickboost) // Trick pannel up-boost