void UpdateAI(uint32 diff) { if (!UpdateVictim()) return; if (BlessingTimer <= diff) { if (Unit* unit = SelectCouncilMember()) { switch (urand(0, 1)) { case 0: DoCast(unit, SPELL_BLESS_SPELLWARD); break; case 1: DoCast(unit, SPELL_BLESS_PROTECTION); break; } } BlessingTimer = 60000; } else BlessingTimer -= diff; if (ConsecrationTimer <= diff) { DoCast(me, SPELL_CONSECRATION); ConsecrationTimer = 40000; } else ConsecrationTimer -= diff; if (HammerOfJusticeTimer <= diff) { if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { // is in ~10-40 yd range if (me->IsInRange(target, 10.0f, 40.0f, false)) { DoCast(target, SPELL_HAMMER_OF_JUSTICE); HammerOfJusticeTimer = 20000; } } } else HammerOfJusticeTimer -= diff; if (SealTimer <= diff) { switch (urand(0, 1)) { case 0: DoCast(me, SPELL_SEAL_OF_COMMAND); break; case 1: DoCast(me, SPELL_SEAL_OF_BLOOD); break; } SealTimer = 40000; } else SealTimer -= diff; if (AuraTimer <= diff) { CastAuraOnCouncil(); AuraTimer = 90000; } else AuraTimer -= diff; DoMeleeAttackIfReady(); }
void UpdateAI(const uint32 diff) { if (!UpdateVictim()) return; if (BlessingTimer <= diff) { if (!me->IsNonMeleeSpellCasted(false)) { if (Unit* pUnit = SelectCouncilMember()) { switch (rand()%2) { case 0: DoCast(pUnit, SPELL_BLESS_SPELLWARD); break; case 1: DoCast(pUnit, SPELL_BLESS_PROTECTION); break; } } BlessingTimer = 15000; } } else BlessingTimer -= diff; if (JudgeTimer <= diff) { if (!me->IsNonMeleeSpellCasted(false)) { if (me->HasAura(SPELL_SEAL_OF_COMMAND,0)) { if (TryDoCast(me->getVictim(),SPELL_JUDGEMENT_OF_COMMAND)) { me->RemoveAurasDueToSpell(SPELL_SEAL_OF_COMMAND); JudgeTimer = 45000; } } if (me->HasAura(SPELL_SEAL_OF_BLOOD,0)) { if (TryDoCast(me->getVictim(),SPELL_JUDGEMENT_OF_BLOOD)) { me->RemoveAurasDueToSpell(SPELL_SEAL_OF_BLOOD); JudgeTimer = 45000; } } JudgeTimer = 15000; } } else JudgeTimer -= diff; if (ConsecrationTimer <= diff) { if (TryDoCast(me, SPELL_CONSECRATION)) ConsecrationTimer = 30000; } else ConsecrationTimer -= diff; if (HammerOfJusticeTimer <= diff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) { // is in ~10-40 yd range if (me->GetDistance2d(pTarget) > 10) { if (TryDoCast(pTarget, SPELL_HAMMER_OF_JUSTICE)) HammerOfJusticeTimer = 20000; } } } else HammerOfJusticeTimer -= diff; if (SealTimer <= diff) { if (!me->IsNonMeleeSpellCasted(false)) { switch (rand()%2) { case 0: DoCast(me, SPELL_SEAL_OF_COMMAND); break; case 1: DoCast(me, SPELL_SEAL_OF_BLOOD); break; } SealTimer = 30000; } } else SealTimer -= diff; if (AuraTimer <= diff) { if (!me->IsNonMeleeSpellCasted(false)) { CastAuraOnCouncil(); AuraTimer = 60000; } } else AuraTimer -= diff; DoMeleeAttackIfReady(); }