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.
This commit is contained in:
NepDisk 2025-02-04 17:10:15 -05:00
parent 15b88c2c5e
commit 4eb0901ff7
4 changed files with 34 additions and 7 deletions

View file

@ -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

View file

@ -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;
}

View file

@ -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;

View file

@ -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?