Example #1
0
void AssistanceDistractMovementGenerator::Finalize(Unit &unit)
{
    unit.clearUnitState(UNIT_STAT_DISTRACTED);
    ((Creature*)&unit)->SetReactState(REACT_AGGRESSIVE);

    unit.AddEvent(new AttackResumeEvent(unit), ATTACK_DISPLAY_DELAY);
}
Example #2
0
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);
}
Example #5
0
void DistractMovementGenerator::Finalize(Unit& owner)
{
    owner.clearUnitState(UNIT_STAT_DISTRACTED);
    owner.AddEvent(new AttackResumeEvent(owner), ATTACK_DISPLAY_DELAY);
}