void UpdateAI(const uint32 uiDiff) { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim() || m_creature->HasAura(SPELL_RIFT_SHIELD)) return; // Create additional Chaotic Rift at 50% HP if (!m_bChaoticRift && m_creature->GetHealthPercent() < 50.0f) { DoScriptText(EMOTE_SHIELD, m_creature); m_uiChaoticRiftGUID = CreateRiftAtRandomPoint(); DoScriptText(SAY_SHIELD, m_creature); DoCastSpellIfCan(m_creature, SPELL_RIFT_SHIELD); m_bChaoticRift = true; return; } if (m_uiCreateRiftTimer < uiDiff) { CreateRiftAtRandomPoint(); m_uiCreateRiftTimer = 25000; } else m_uiCreateRiftTimer -= uiDiff; if (m_uiSparkTimer < uiDiff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) DoCastSpellIfCan(pTarget, m_bIsRegularMode ? SPELL_SPARK : SPELL_SPARK_H); m_uiSparkTimer = 5000; } else m_uiSparkTimer -= uiDiff; DoMeleeAttackIfReady(); }
void UpdateAI(const uint32 uiDiff) { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim() || m_creature->HasAura(SPELL_RIFT_SHIELD)) return; // Create additional Chaotic Rift at 75%, 50% and 25% HP if (m_creature->GetHealth()*4 < m_creature->GetMaxHealth()*m_uiShieldCount) { DoScriptText(EMOTE_SHIELD, m_creature); m_uiChaoticRiftGUID = CreateRiftAtRandomPoint(); DoScriptText(SAY_SHIELD, m_creature); DoCast(m_creature, SPELL_RIFT_SHIELD); --m_uiShieldCount; return; } if (m_uiCreateRiftTimer < uiDiff) { CreateRiftAtRandomPoint(); m_uiCreateRiftTimer = 25000; } else m_uiCreateRiftTimer -= uiDiff; if (m_uiSparkTimer < uiDiff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) DoCast(pTarget, m_bIsHeroicMode?SPELL_SPARK_H:SPELL_SPARK); m_uiSparkTimer = 5000; } else m_uiSparkTimer -= uiDiff; DoMeleeAttackIfReady(); }