void UpdateAI(const uint32 uiDiff) { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; if (m_bCanMoveToRandom) { if (m_uiReturnTimer < uiDiff) { DoMoveToRandom(); m_uiReturnTimer = 800; }else m_uiReturnTimer -= uiDiff; } if (!m_bCanCast) return; if (m_uiEagleSwoopTimer < uiDiff) { if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0)) { DoCastSpellIfCan(pTarget,SPELL_EAGLE_SWOOP); m_bCanMoveToRandom = true; m_bCanCast = false; } m_uiEagleSwoopTimer = urand(4000, 6000); }else m_uiEagleSwoopTimer -= uiDiff; }
void UpdateAI(const uint32 uiDiff) override { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; if (m_uiReturnTimer) { if (m_uiReturnTimer <= uiDiff) { DoMoveToRandom(); m_uiReturnTimer = 0; } else m_uiReturnTimer -= uiDiff; } if (m_uiEagleSwoopTimer) { if (m_uiEagleSwoopTimer <= uiDiff) { if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0, nullptr, SELECT_FLAG_PLAYER)) { if (DoCastSpellIfCan(pTarget, SPELL_EAGLE_SWOOP) == CAST_OK) { m_uiEagleSwoopTimer = 0; m_uiReturnTimer = 1000; } } } else m_uiEagleSwoopTimer -= uiDiff; } }