diff --git a/zone/mob.h b/zone/mob.h index 39cee5a96..f17c5c058 100644 --- a/zone/mob.h +++ b/zone/mob.h @@ -1059,6 +1059,7 @@ public: inline const bool IsRoamer() const { return roamer; } inline const int GetWanderType() const { return wandertype; } inline const bool IsRooted() const { return rooted || permarooted; } + inline const bool IsPermaRooted() const { return permarooted; } int GetSnaredAmount(); inline const bool IsPseudoRooted() const { return pseudo_rooted; } inline void SetPseudoRoot(bool prState) { pseudo_rooted = prState; } diff --git a/zone/spells.cpp b/zone/spells.cpp index a3db1d736..b62b591e2 100644 --- a/zone/spells.cpp +++ b/zone/spells.cpp @@ -4235,7 +4235,7 @@ bool Mob::SpellOnTarget(uint16 spell_id, Mob *spelltar, int reflect_effectivenes spelltar->CastToClient()->cheat_manager.SetExemptStatus(KnockBack, true); } } - else if (RuleB(Spells, NPCSpellPush) && !permarooted && !IsPseudoRooted() && spelltar->ForcedMovement == 0) { + else if (RuleB(Spells, NPCSpellPush) && !spelltar->IsPermaRooted() && !spelltar->IsPseudoRooted() && spelltar->ForcedMovement == 0) { spelltar->m_Delta.x += action->force * g_Math.FastSin(action->hit_heading); spelltar->m_Delta.y += action->force * g_Math.FastCos(action->hit_heading); spelltar->m_Delta.z += action->hit_pitch;