From b41520c60341122b552803e152516009f2671466 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Tue, 1 Jul 2025 12:37:29 -0400 Subject: [PATCH 1/3] Use scaled item distance for flameshield max bar --- src/k_kart.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 81e34e7bb..f46c257d2 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -12735,27 +12735,14 @@ void K_StripOther(player_t *player) static INT32 K_FlameShieldMax(player_t *player) { UINT32 disttofinish = 0; - UINT32 distv = 1024; // Pre no-scams: 2048 + UINT32 distv = 1024*4; // Pre no-scams: 2048 distv = distv * 16 / FLAMESHIELD_MAX; // Old distv was based on a 16-segment bar - UINT8 numplayers = 0; - UINT32 scamradius = 1500; // 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; - if (gametyperules & GTR_CIRCUIT) - { - for (i = 0; i < MAXPLAYERS; i++) - { - if (playeringame[i] && !players[i].spectator) - numplayers++; - if (players[i].position == 1) - disttofinish = players[i].distancetofinish; - } - } + disttofinish = K_GetItemRouletteDistance(player, 8); - disttofinish = player->distancetofinish - disttofinish; - distv = FixedMul(distv, mapobjectscale); - - if (numplayers <= 1) + if (D_NumPlayersInRace() <= 1) { return FLAMESHIELD_MAX; // max when alone, for testing // and when in battle, for chaos From 5d72948bb0eb17d53a2fe5cb0bfe1ab3e34bec90 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Tue, 1 Jul 2025 16:54:00 -0400 Subject: [PATCH 2/3] Rebuff flame shield --- src/k_kart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index f46c257d2..5f2bdf6f0 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -12735,9 +12735,9 @@ void K_StripOther(player_t *player) static INT32 K_FlameShieldMax(player_t *player) { UINT32 disttofinish = 0; - UINT32 distv = 1024*4; // Pre no-scams: 2048 + UINT32 distv = 1024*2; // Pre no-scams: 2048 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*2; // How close is close enough that we shouldn't be allowed to scam 1st? UINT8 i; disttofinish = K_GetItemRouletteDistance(player, 8); From c5c081dfb9ed274e5a91d7d8ddaf65123a5e7acb Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Tue, 1 Jul 2025 17:47:16 -0400 Subject: [PATCH 3/3] Flame rescale: NUMBERS NUMBERS NUMBERS --- src/k_kart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 5f2bdf6f0..f50428b5f 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -12735,9 +12735,9 @@ void K_StripOther(player_t *player) static INT32 K_FlameShieldMax(player_t *player) { UINT32 disttofinish = 0; - UINT32 distv = 1024*2; // 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 - UINT32 scamradius = 1500*2; // 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; disttofinish = K_GetItemRouletteDistance(player, 8);