[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

@ -17,7 +17,14 @@
*/
#include "CreatureAI.h"
#include "Creature.h"
CreatureAI::~CreatureAI()
{
}
void CreatureAI::AttackedBy( Unit* attacker )
{
if(!m_creature->getVictim())
AttackStart(attacker);
}