void UpdateAI(const uint32 diff) { //Return since we have no target if (!UpdateVictim()) return; // reset arcane burst after teleport - we need to do this because // when VL jumps to VN's location there will be a warrior who will get only 2s to run away // which is almost impossible if (AfterTeleport) ArcaneBurst_Timer = 5000; if (!TryActivateAfterTTelep(diff)) return; //ShadowBolt_Timer if (ShadowBolt_Timer <= diff) { if (!me->IsWithinDist(me->GetVictim(), 45.0f)) me->GetMotionMaster()->MoveChase(me->GetVictim(), VEKLOR_DIST, 0); else DoCastVictim(SPELL_SHADOWBOLT); ShadowBolt_Timer = 2000; } else ShadowBolt_Timer -= diff; //Blizzard_Timer if (Blizzard_Timer <= diff) { Unit* target = NULL; target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45, true); if (target) DoCast(target, SPELL_BLIZZARD); Blizzard_Timer = 15000+rand()%15000; } else Blizzard_Timer -= diff; if (ArcaneBurst_Timer <= diff) { Unit* mvic; if ((mvic=SelectTarget(SELECT_TARGET_NEAREST, 0, NOMINAL_MELEE_RANGE, true)) != NULL) { DoCast(mvic, SPELL_ARCANEBURST); ArcaneBurst_Timer = 5000; } } else ArcaneBurst_Timer -= diff; HandleBugs(diff); //Heal brother when 60yrds close TryHealBrother(diff); //Teleporting to brother if (Teleport_Timer <= diff) { TeleportToMyBrother(); } else Teleport_Timer -= diff; CheckEnrage(diff); //VL doesn't melee //DoMeleeAttackIfReady(); }
void UpdateAI(const uint32 diff) { //Return since we have no target if (!UpdateVictim()) return; if (!TryActivateAfterTTelep(diff)) return; //UnbalancingStrike_Timer if (UnbalancingStrike_Timer <= diff) { DoCastVictim(SPELL_UNBALANCING_STRIKE); UnbalancingStrike_Timer = 8000 + rand() % 12000; } else UnbalancingStrike_Timer -= diff; if (UpperCut_Timer <= diff) { Unit* randomMelee = SelectTarget(SELECT_TARGET_RANDOM, 0, NOMINAL_MELEE_RANGE, true); if (randomMelee) DoCast(randomMelee, SPELL_UPPERCUT); UpperCut_Timer = 15000 + rand() % 15000; } else UpperCut_Timer -= diff; HandleBugs(diff); //Heal brother when 60yrds close TryHealBrother(diff); //Teleporting to brother if (Teleport_Timer <= diff) TeleportToMyBrother(); else Teleport_Timer -= diff; CheckEnrage(diff); DoMeleeAttackIfReady(); }