Core/Spells: Fix spelleffect sanctuary

- No longer removes every attacker, but updates the visibility
  - Using that effect won't remove attackers that can still see through the stealth of the caster based on distance
- Ignores spells that were casted before or at the same time of that effect
- Trigger other needed spells when casting Shadowmeld

--HG--
branch : trunk
This commit is contained in:
linencloth
2010-11-13 18:04:56 +01:00
parent bf888285aa
commit 880ef0c398
7 changed files with 31 additions and 21 deletions
@@ -185,3 +185,18 @@ void HostileRefManager::setOnlineOfflineState(Unit *pCreature, bool bIsOnline)
//=================================================
void HostileRefManager::UpdateVisibility()
{
HostileReference* ref = getFirst();
while (ref)
{
HostileReference* nextRef = ref->next();
if (!ref->getSource()->getOwner()->canSeeOrDetect(getOwner()))
{
HostileReference* nextRef = ref->next();
ref->removeReference();
delete ref;
}
ref = nextRef;
}
}