void Reset()
 {
     SummonImp_Timer = 5000;
     DoCast(me, SPELL_FEL_ARMOR, true);
     SetAutocast(SPELL_INCINERATE, 1900, true);
     Immolate_Timer = urand(8000, 12000);
     OOCTimer = 5000;
 }
 void OnAuraRemove(Aura* aur, bool stackApply)
 {
     if (aur->GetId() == SPELL_SPELL_FURY)
     {
         ClearCastQueue();
         SetAutocast(SPELL_FEL_FIREBALL, RAND(6300, 8300), true);
     }
 }
 void OnAuraApply(Aura* aur, Unit* caster, bool stackApply)
 {
     if (aur->GetId() == SPELL_SPELL_FURY)
     {
         ClearCastQueue();
         SetAutocast(SPELL_FEL_FIREBALL, 1000, true);    // 1 sec GCD
     }
 }
    void Reset()
    {
        events.Reset();
        ClearCastQueue();

        events.ScheduleEvent(EVENT_SPELL_SHIELD, 31000);
        events.ScheduleEvent(EVENT_BLAST_WAVE, 5000);

        SetAutocast(SPELL_GREATER_FIREBALL, 4000, true);
    }
    void Reset()
    {
        events.Reset();
        ClearCastQueue();

        events.ScheduleEvent(EVENT_POLYMORPH, 5000);
        events.ScheduleEvent(EVENT_ARCANE_SHOCK, 20000);
        events.ScheduleEvent(EVENT_ARCANE_EXPLO, 30000);

        SetAutocast(SPELL_LIGHTNING_BOLT, 2200, true);
    }
    void Reset()
    {
        events.Reset();
        ClearCastQueue();

        events.ScheduleEvent(EVENT_POLYMORPH, urand(10000, 20000)); //Probably too quick
        events.ScheduleEvent(EVENT_ARCANE_SHOCK, 20000);
        events.ScheduleEvent(EVENT_ARCANE_EXPLO, 30000);

        SetAutocast(SPELL_LIGHTNING_BOLT, 2200, true);
    }
    void Reset()
    {
        ClearCastQueue();

        m_blizzardTimer = urand(12000, 20000);
        m_flamestrikeTimer = 3800;
        m_dampenTimer = 67200;
        m_aexpTimer = 3000;
        m_immunityTimer = 60000;
        SetAutocast(SPELL_ARCANE_BOLT, 2000, true, CAST_TANK, 40.0f, true);

        m_checkTimer = 1000;
    }
    void UpdateAI(const uint32 diff)
    {
        if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
        {
            if (me->GetSelection())
                me->SetSelection(NULL);
            return;
        }

        if(ActivationTimer)
        {
            if(ActivationTimer <= diff)
            {
                ActivationTimer = 0;
                DoZoneInCombat(400);
                me->SetRooted(false);
                if(me->getVictim())
                    DoStartMovement(me->getVictim());
                SetAutocast(SPELL_FEL_FIREBALL, RAND(6300, 8300), true);
            }
            else
                ActivationTimer -= diff;
            return;
        }

        if(!UpdateVictim())
            return;

        if(SpellFury < diff)
        {
            ClearCastQueue();
            AddSpellToCast(SPELL_SPELL_FURY, CAST_SELF);
            SpellFury = 60000;
        }
        else
            SpellFury -= diff;

        CastNextSpellIfAnyAndReady(diff);
        DoMeleeAttackIfReady();
    }
    void Reset()
    {
        SpecialTimer = urand(15000, 19000);
        PyrogenicsTimer = 15000;
        EnrageTimer = 360000;
        FlamesearTimer = urand(10000, 15000);
        IntroYellTimer = 500;
        IntroStepCounter = 10;

        IntroDone = false;
        TrashWaveDone = false;

        DoCast(me, SPELL_FIREFORM);
        if (pInstance->GetData(DATA_EREDAR_TWINS_INTRO) == DONE)
            me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
        else
            me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
        pInstance->SetData(DATA_EREDAR_TWINS_EVENT, NOT_STARTED);
        pInstance->SetData(DATA_ALYTHESS, NOT_STARTED);

        SetAutocast(SPELL_BLAZE, 2700, true);
    }
Exemple #10
0
 void EnterCombat(Unit *who)
 {
     SetAutocast(SPELL_WATER_BOLT, 1000, true);
 }
 void AttackStart(Unit* who)
 {
     ScriptedAI::AttackStartNoMove(who, CHECK_TYPE_CASTER);
     SetAutocast(SPELL_FIREBALL, 1900, true);
 }