From 5c60a0958f2e763dfde912897f66d0f8346323f4 Mon Sep 17 00:00:00 2001 From: toaster Date: Sat, 22 Apr 2023 00:35:11 +0100 Subject: [PATCH] Versus roulette: Speed up based on boss healthbar (destination) fill % --- src/k_roulette.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/k_roulette.c b/src/k_roulette.c index 505c85221..4efa164a4 100644 --- a/src/k_roulette.c +++ b/src/k_roulette.c @@ -73,6 +73,7 @@ #define ROULETTE_SPEED_FASTEST (2) #define ROULETTE_SPEED_DIST (150*DISTVAR) #define ROULETTE_SPEED_TIMEATTACK (9) +#define ROULETTE_SPEED_VERSUS_SLOWEST (12) static UINT8 K_KartItemOddsRace[NUMKARTRESULTS-1][8] = { @@ -1135,6 +1136,14 @@ static void K_CalculateRouletteSpeed(itemroulette_t *const roulette) fixed_t progress = 0; fixed_t total = 0; + if (bossinfo.valid == true) + { + // Boss in action, use a speed controlled by boss health + total = FixedDiv(bossinfo.healthbar, BOSSHEALTHBARLEN); + roulette->tics = roulette->speed = ROULETTE_SPEED_FASTEST + FixedMul(ROULETTE_SPEED_VERSUS_SLOWEST - ROULETTE_SPEED_FASTEST, total); + return; + } + if (K_TimeAttackRules() == true) { // Time Attack rules; use a consistent speed.