mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'fix-ringblock-counter-shenanigans' into 'master'
Fix ring counter desync when whipping/bailing while attracting rings Closes ring-racers#99 See merge request kart-krew-dev/ring-racers-internal!2851
This commit is contained in:
commit
1f324ac7af
1 changed files with 13 additions and 2 deletions
|
|
@ -3510,9 +3510,20 @@ void A_AttractChase(mobj_t *actor)
|
|||
|
||||
if (actor->extravalue1 && actor->type != MT_EMERALD) // SRB2Kart
|
||||
{
|
||||
if (!actor->target || P_MobjWasRemoved(actor->target) || !actor->target->player
|
||||
|| actor->target->player->baildrop || actor->target->player->bailcharge || actor->target->player->defenseLockout > PUNISHWINDOW)
|
||||
// Screwed this up for staffghosts, so have a mess.
|
||||
// 1. Insta-Whip's extended punish window used to delete flingrings off you while they were attracting
|
||||
// 2. ALL conditions that deleted flingrings off you didn't decrement pickuprings, desyncing your ring count
|
||||
boolean stale = (!actor->target || P_MobjWasRemoved(actor->target) || !actor->target->player);
|
||||
|
||||
boolean blocked = (actor->target->player->baildrop || actor->target->player->bailcharge);
|
||||
if (G_CompatLevel(0x0010))
|
||||
blocked |= (actor->target->player->defenseLockout > PUNISHWINDOW);
|
||||
|
||||
if (stale || blocked)
|
||||
{
|
||||
if (!G_CompatLevel(0x0010) && !stale)
|
||||
actor->target->player->pickuprings--;
|
||||
|
||||
P_RemoveMobj(actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue