void Reset()
 {
     me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
     EventStage = EVENT_STAGE_NONE;
     PeonEngagedCount = 0;
     PeonKilledCount = 0;
     _Reset();
     SummonMinions();
     events2.Reset();
 }
Exemple #2
0
        void UpdateAI(const uint32 diff)
        {
            if (!UpdateVictim())
                return;

            //ShadowVolley_Timer
            if (ShadowVolley_Timer <= diff)
            {
                DoCast(me->getVictim(), SPELL_SHADOWBOLTVOLLEY);
                ShadowVolley_Timer = 15000;
            } else ShadowVolley_Timer -= diff;

            //BoneShield_Timer
            if (BoneShield_Timer <= diff)
            {
                DoCast(me->getVictim(), SPELL_BONESHIELD);
                BoneShield_Timer = 45000;
            } else BoneShield_Timer -= diff;

            //Minion_Timer
            if (Minion_Timer <= diff)
            {
                //Cast
                SummonMinions(me->getVictim());
                SummonMinions(me->getVictim());
                SummonMinions(me->getVictim());
                SummonMinions(me->getVictim());

                Minion_Timer = 12000;
            } else Minion_Timer -= diff;

            //Summon 2 Bone Mages
            if (!Mages && HealthBelowPct(26))
            {
                //Cast
                SummonMages(me->getVictim());
                SummonMages(me->getVictim());
                Mages = true;
            }

            DoMeleeAttackIfReady();
        }