From 4eb0901ff73ed8e8ed363f509a41a1b6aa71f0f9 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Tue, 4 Feb 2025 17:10:15 -0500 Subject: [PATCH] Experimental rings rebalance Ring Sting is commented out. Item Boxes give 3 rings for first, 5 for middle position and 10 for back. The Super ring item gives 5 for first, 10 for middle, 15 for back. --- src/k_botsearch.c | 4 ++-- src/k_collide.c | 4 ++-- src/k_kart.c | 17 ++++++++++++++--- src/p_enemy.c | 16 ++++++++++++++++ 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/k_botsearch.c b/src/k_botsearch.c index 05dabf7c4..889e10e4a 100644 --- a/src/k_botsearch.c +++ b/src/k_botsearch.c @@ -573,13 +573,13 @@ static BlockItReturn_t K_FindObjectsForNudging(mobj_t *thing) break; } // Ring Sting - else if (K_PlayerAttackSteer(thing, side, 20, + /*else if (K_PlayerAttackSteer(thing, side, 20, thing->player->rings <= 0, globalsmuggle.botmo->player->rings <= 0 )) { break; - } + }*/ else { // After ALL of that, we can do standard bumping diff --git a/src/k_collide.c b/src/k_collide.c index 9e112ed88..d98a9893d 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -912,7 +912,7 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) } } - if (!ringsdisabled) // Ring sting, this is a bit more unique + /*if (!ringsdisabled) // Ring sting, this is a bit more unique { t1Condition = (K_GetShieldFromItem(t2->player->itemtype) == KSHIELD_NONE); t2Condition = (K_GetShieldFromItem(t1->player->itemtype) == KSHIELD_NONE); @@ -940,7 +940,7 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) } return (stungT1 || stungT2); - } + }*/ return false; } diff --git a/src/k_kart.c b/src/k_kart.c index bc7534f95..3ec1a236e 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -6920,7 +6920,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) } } - if (gametype == GT_RACE && player->rings <= 0 && !ringsdisabled) // spawn ring debt indicator + /*if (gametype == GT_RACE && player->rings <= 0 && !ringsdisabled) // spawn ring debt indicator { mobj_t *debtflag = P_SpawnMobj(player->mo->x + player->mo->momx, player->mo->y + player->mo->momy, player->mo->z + P_GetMobjZMovement(player->mo) + player->mo->height + (24*player->mo->scale), MT_THOK); @@ -6938,7 +6938,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) debtflag->fuse = 2; debtflag->renderflags = K_GetPlayerDontDrawFlag(player); - } + }*/ } if (player->itemtype == KITEM_NONE) @@ -9674,7 +9674,18 @@ void K_MoveKartPlayer(player_t *player, boolean onground) case KITEM_SUPERRING: if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO) { - K_AwardPlayerRings(player, 15, true); + SINT8 awardamount = 15; + + if (player->position == 1) + { + awardamount = 5; + } + else if(!K_IsPlayerLosing(player)) + { + awardamount = 10; + } + + K_AwardPlayerRings(player, awardamount, true); player->itemamount--; } break; diff --git a/src/p_enemy.c b/src/p_enemy.c index 9a594dd31..82cd7a726 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -13017,6 +13017,22 @@ void A_ItemPop(mobj_t *actor) if (!((gametyperules & GTR_BUMPERS) && actor->target->player->bumper <= 0)) actor->target->player->itemroulette = 1; + // Let Ring-less maps in on the rings fun as well! + if (!ringsdisabled) + { + SINT8 awardamount = 10; + if (actor->target->player->position == 1) + { + awardamount = 3; + } + else if(!K_IsPlayerLosing(actor->target->player)) + { + awardamount = 5; + } + + K_AwardPlayerRings(actor->target->player, awardamount, false); + } + remains->flags2 &= ~MF2_AMBUSH; // Here at mapload in battle?