[7668] Cleanup In CreatureAI function descriptions and AttackStart/AttackedBy use.

* Use AI::AttackStart calls only in case explicit request creature attack from core or AI code "attack it if can".
  Like taunt, pet handler attack command.
* Use AI::AttackedBy for reaction at hostile action "do something at hostile action"
  Like non-dot damage, swing, negative spell landing, or fade fear/etc.
  And provided by default call AttackStart if no current target.

This fix some problems, like:
* Civilian will react propertly at attack by another creature (not pet or player).
* Will not cases (at least triggred by core) when attack target start run to attacker before any real hostile action apply.
This commit is contained in:
VladimirMangos 2009-04-14 07:21:04 +04:00
parent 69fb9736cc
commit d85e95295d
11 changed files with 72 additions and 82 deletions

View file

@ -3508,7 +3508,7 @@ void Spell::EffectPickPocket(uint32 /*i*/)
// Reveal action + get attack
m_caster->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
if (((Creature*)unitTarget)->AI())
((Creature*)unitTarget)->AI()->AttackStart(m_caster);
((Creature*)unitTarget)->AI()->AttackedBy(m_caster);
}
}
}