void AssistanceDistractMovementGenerator::Finalize(Unit &unit) { unit.clearUnitState(UNIT_STAT_DISTRACTED); ((Creature*)&unit)->SetReactState(REACT_AGGRESSIVE); unit.AddEvent(new AttackResumeEvent(unit), ATTACK_DISPLAY_DELAY); }
void RotateMovementGenerator::Finalize(Unit &unit) { unit.clearUnitState(UNIT_STAT_ROTATING); if (unit.GetTypeId() == TYPEID_UNIT) ((Creature*)&unit)->AI()->MovementInform(ROTATE_MOTION_TYPE, 0); unit.AddEvent(new AttackResumeEvent(unit), ATTACK_DISPLAY_DELAY); }
void EffectMovementGenerator::Finalize(Unit &unit) { if (EffectId() == EVENT_CHARGE) unit.clearUnitState(UNIT_STAT_CHARGING); if (unit.GetTypeId() != TYPEID_UNIT) return; if (((Creature&)unit).AI() && unit.movespline->Finalized()) ((Creature&)unit).AI()->MovementInform(EFFECT_MOTION_TYPE, m_Id); unit.AddEvent(new AttackResumeEvent(unit), ATTACK_DISPLAY_DELAY); }
void TimedFleeingMovementGenerator::Finalize(Unit& owner) { owner.clearUnitState(UNIT_STAT_FLEEING | UNIT_STAT_FLEEING_MOVE); owner.AddEvent(new AttackResumeEvent(owner), ATTACK_DISPLAY_DELAY); }
void DistractMovementGenerator::Finalize(Unit& owner) { owner.clearUnitState(UNIT_STAT_DISTRACTED); owner.AddEvent(new AttackResumeEvent(owner), ATTACK_DISPLAY_DELAY); }