Minimum 80% XP in Frantic, remove Frantic poweritem buffs

This commit is contained in:
Antonio Martinez 2025-06-27 01:39:52 -04:00
parent 82ea18865c
commit 84466de921
4 changed files with 10 additions and 4 deletions

View file

@ -145,9 +145,10 @@ boolean K_InRaceDuel(void)
fixed_t K_EffectiveGradingFactor(const player_t *player) fixed_t K_EffectiveGradingFactor(const player_t *player)
{ {
fixed_t min = (franticitems) ? MINFRANTICFACTOR : MINGRADINGFACTOR;
if (grandprixinfo.gp && grandprixinfo.masterbots && !K_PlayerUsesBotMovement(player)) if (grandprixinfo.gp && grandprixinfo.masterbots && !K_PlayerUsesBotMovement(player))
return MINGRADINGFACTOR; return min;
return max(MINGRADINGFACTOR, player->gradingfactor); return max(min, player->gradingfactor);
} }
player_t *K_DuelOpponent(player_t *player) player_t *K_DuelOpponent(player_t *player)

View file

@ -127,6 +127,7 @@ player_t *K_DuelOpponent(player_t *player);
fixed_t K_EffectiveGradingFactor(const player_t *player); fixed_t K_EffectiveGradingFactor(const player_t *player);
#define MINGRADINGFACTOR (FRACUNIT/2) #define MINGRADINGFACTOR (FRACUNIT/2)
#define MINFRANTICFACTOR (8*FRACUNIT/10)
void K_TimerReset(void); void K_TimerReset(void);
void K_TimerInit(void); void K_TimerInit(void);

View file

@ -479,11 +479,13 @@ static UINT32 K_ScaleItemDistance(const player_t *player, UINT32 distance, UINT8
{ {
(void)player; (void)player;
#if 0
if (franticitems == true) if (franticitems == true)
{ {
// Frantic items pretends everyone's farther apart, for crazier items. // Frantic items pretends everyone's farther apart, for crazier items.
distance = FixedMul(distance, FRANTIC_ITEM_SCALE); distance = FixedMul(distance, FRANTIC_ITEM_SCALE);
} }
#endif
// Items get crazier with the fewer players that you have. // Items get crazier with the fewer players that you have.
distance = FixedMul( 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.) // worse at selecting their item—but it always matters in frantic gameplay.)
if (K_IsItemPower(bestitem) && rival) if (K_IsItemPower(bestitem) && rival)
deltapenalty = 3 * deltapenalty / 4; deltapenalty = 3 * deltapenalty / 4;
#if 0
if (K_IsItemPower(bestitem) && franticitems) if (K_IsItemPower(bestitem) && franticitems)
deltapenalty = 3 * deltapenalty / 4; deltapenalty = 3 * deltapenalty / 4;
#endif
// Conversely, if we're lonely, try not to reselect an item that wouldn't be useful to us // 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. // without any players to use it on.

View file

@ -20,7 +20,7 @@ menuitem_t OPTIONS_Gameplay[] =
{IT_STRING | IT_CVAR, "Teamplay", "Split the game between two teams!", {IT_STRING | IT_CVAR, "Teamplay", "Split the game between two teams!",
NULL, {.cvar = &cv_teamplay}, 0, 0}, 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}, NULL, {.cvar = &cv_kartfrantic}, 0, 0},
{IT_HEADER, "Race...", NULL, {IT_HEADER, "Race...", NULL,
@ -56,7 +56,7 @@ menuitem_t OPTIONS_Gameplay[] =
{IT_HEADER, "Duel...", NULL, {IT_HEADER, "Duel...", NULL,
NULL, {NULL}, 0, 0}, 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}, NULL, {.cvar = &cv_duel}, 0, 0},
{IT_STRING | IT_CVAR, "Duel Time Limit", "How long it takes for Margin Boost to kick in (seconds).", {IT_STRING | IT_CVAR, "Duel Time Limit", "How long it takes for Margin Boost to kick in (seconds).",