From 84466de9217ff5e1dde3fbaba40f4015958dd9ed Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Fri, 27 Jun 2025 01:39:52 -0400 Subject: [PATCH] Minimum 80% XP in Frantic, remove Frantic poweritem buffs --- src/k_kart.c | 5 +++-- src/k_kart.h | 1 + src/k_roulette.c | 4 ++++ src/menus/options-gameplay-1.c | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index bcf9747b8..aec2533c1 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -145,9 +145,10 @@ boolean K_InRaceDuel(void) fixed_t K_EffectiveGradingFactor(const player_t *player) { + fixed_t min = (franticitems) ? MINFRANTICFACTOR : MINGRADINGFACTOR; if (grandprixinfo.gp && grandprixinfo.masterbots && !K_PlayerUsesBotMovement(player)) - return MINGRADINGFACTOR; - return max(MINGRADINGFACTOR, player->gradingfactor); + return min; + return max(min, player->gradingfactor); } player_t *K_DuelOpponent(player_t *player) diff --git a/src/k_kart.h b/src/k_kart.h index e454ec0a1..67d4fb31a 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -127,6 +127,7 @@ player_t *K_DuelOpponent(player_t *player); fixed_t K_EffectiveGradingFactor(const player_t *player); #define MINGRADINGFACTOR (FRACUNIT/2) +#define MINFRANTICFACTOR (8*FRACUNIT/10) void K_TimerReset(void); void K_TimerInit(void); diff --git a/src/k_roulette.c b/src/k_roulette.c index 70ef96d9a..0ec6a8a71 100644 --- a/src/k_roulette.c +++ b/src/k_roulette.c @@ -479,11 +479,13 @@ static UINT32 K_ScaleItemDistance(const player_t *player, UINT32 distance, UINT8 { (void)player; +#if 0 if (franticitems == true) { // Frantic items pretends everyone's farther apart, for crazier items. distance = FixedMul(distance, FRANTIC_ITEM_SCALE); } +#endif // Items get crazier with the fewer players that you have. distance = FixedMul( @@ -1626,8 +1628,10 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet // worse at selecting their item—but it always matters in frantic gameplay.) if (K_IsItemPower(bestitem) && rival) deltapenalty = 3 * deltapenalty / 4; +#if 0 if (K_IsItemPower(bestitem) && franticitems) deltapenalty = 3 * deltapenalty / 4; +#endif // Conversely, if we're lonely, try not to reselect an item that wouldn't be useful to us // without any players to use it on. diff --git a/src/menus/options-gameplay-1.c b/src/menus/options-gameplay-1.c index 574fd391d..718bc5643 100644 --- a/src/menus/options-gameplay-1.c +++ b/src/menus/options-gameplay-1.c @@ -20,7 +20,7 @@ menuitem_t OPTIONS_Gameplay[] = {IT_STRING | IT_CVAR, "Teamplay", "Split the game between two teams!", NULL, {.cvar = &cv_teamplay}, 0, 0}, - {IT_STRING | IT_CVAR, "Frantic Items", "Make item odds crazier with more powerful items!", + {IT_STRING | IT_CVAR, "Frantic Items", "Stronger comebacks, even with low EXP. (Not recommended for even matches!)", NULL, {.cvar = &cv_kartfrantic}, 0, 0}, {IT_HEADER, "Race...", NULL, @@ -56,7 +56,7 @@ menuitem_t OPTIONS_Gameplay[] = {IT_HEADER, "Duel...", NULL, NULL, {NULL}, 0, 0}, - {IT_STRING | IT_CVAR, "Duel", "A one-versus-one tug of war! Disable for standard racing.", + {IT_STRING | IT_CVAR, "Duel", "When only two players are racing, use tug-of-war rules!", NULL, {.cvar = &cv_duel}, 0, 0}, {IT_STRING | IT_CVAR, "Duel Time Limit", "How long it takes for Margin Boost to kick in (seconds).",