From a98db957e67cfff837f0a0d3dca670ba9cfd316c Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 30 Jun 2023 04:20:48 -0700 Subject: [PATCH] WANTED player or Lightning Shield attracts emeralds --- src/k_kart.c | 6 +++--- src/p_enemy.c | 2 +- src/p_mobj.c | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 44166ef5c..8204d080b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7564,7 +7564,7 @@ static inline BlockItReturn_t PIT_AttractingRings(mobj_t *thing) return BMIT_CONTINUE; // invalid } - if (!(thing->type == MT_RING || thing->type == MT_FLINGRING)) + if (!(thing->type == MT_RING || thing->type == MT_FLINGRING || thing->type == MT_EMERALD)) { return BMIT_CONTINUE; // not a ring } @@ -7574,7 +7574,7 @@ static inline BlockItReturn_t PIT_AttractingRings(mobj_t *thing) return BMIT_CONTINUE; // dead } - if (thing->extravalue1) + if (thing->extravalue1 && thing->type != MT_EMERALD) { return BMIT_CONTINUE; // in special ring animation } @@ -8577,7 +8577,7 @@ void K_KartPlayerAfterThink(player_t *player) player->jawztargetdelay = 0; } - if (player->itemtype == KITEM_LIGHTNINGSHIELD) + if (player->itemtype == KITEM_LIGHTNINGSHIELD || ((gametyperules & GTR_POWERSTONES) && K_IsPlayerWanted(player))) { K_LookForRings(player->mo); } diff --git a/src/p_enemy.c b/src/p_enemy.c index 5e786c677..478a7441b 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -3800,7 +3800,7 @@ void A_AttractChase(mobj_t *actor) if (actor->flags2 & MF2_NIGHTSPULL || !actor->health) return; - if (actor->extravalue1) // SRB2Kart + if (actor->extravalue1 && actor->type != MT_EMERALD) // SRB2Kart { if (!actor->target || P_MobjWasRemoved(actor->target) || !actor->target->player) { diff --git a/src/p_mobj.c b/src/p_mobj.c index b29336cb1..0c02af316 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7538,6 +7538,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj) { if (mobj->threshold > 0) mobj->threshold--; + + A_AttractChase(mobj); } /*FALLTHRU*/ case MT_MONITOR: