void UpdateAI(const uint32 uiDiff) { npc_escortAI::UpdateAI(uiDiff); if (HasEscortState(STATE_ESCORT_PAUSED)) { if (m_uiWave_Timer <= uiDiff) { switch (m_uiWave) { case 0: DoScriptText(SAY_BREAKOUT3, me); SummonAcolyte(3); m_uiWave_Timer = 20000; break; case 1: DoScriptText(SAY_BREAKOUT4, me); SummonAcolyte(3); m_uiWave_Timer = 20000; break; case 2: DoScriptText(SAY_BREAKOUT5, me); SummonAcolyte(4); m_uiWave_Timer = 20000; break; case 3: DoScriptText(SAY_BREAKOUT6, me); me->SummonCreature(NPC_HIGH_INQUISITOR_VALROTH, 1642.329f, -6045.818f, 127.583f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000); m_uiWave_Timer = 1000; break; case 4: { Creature* pTemp = Unit::GetCreature(*me, m_uiValrothGUID); if (!pTemp || !pTemp->isAlive()) { DoScriptText(SAY_BREAKOUT8, me); m_uiWave_Timer = 5000; } else { m_uiWave_Timer = 2500; return; //return, we don't want m_uiWave to increment now } break; } case 5: DoScriptText(SAY_BREAKOUT9, me); me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE); // i do not know why the armor will also be removed m_uiWave_Timer = 2500; break; case 6: DoScriptText(SAY_BREAKOUT10, me); SetEscortPaused(false); break; } ++m_uiWave; } else m_uiWave_Timer -= uiDiff; } }
void UpdateAI(uint32 uiDiff) override { npc_escortAI::UpdateAI(uiDiff); if (HasEscortState(STATE_ESCORT_PAUSED)) { if (waveTimer <= uiDiff) { switch (wave) { case 0: Talk(SAY_BREAKOUT3); SummonAcolyte(3); waveTimer = 20000; break; case 1: Talk(SAY_BREAKOUT4); SummonAcolyte(3); waveTimer = 20000; break; case 2: Talk(SAY_BREAKOUT5); SummonAcolyte(4); waveTimer = 20000; break; case 3: Talk(SAY_BREAKOUT6); me->SummonCreature(NPC_HIGH_INQUISITOR_VALROTH, 1642.329f, -6045.818f, 127.583f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000); waveTimer = 1000; break; case 4: { Creature* temp = ObjectAccessor::GetCreature(*me, valrothGUID); if (!temp || !temp->IsAlive()) { Talk(SAY_BREAKOUT8); waveTimer = 5000; } else { waveTimer = 2500; return; } break; } case 5: Talk(SAY_BREAKOUT9); me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); waveTimer = 2500; break; case 6: Talk(SAY_BREAKOUT10); SetEscortPaused(false); break; } ++wave; } else waveTimer -= uiDiff; } }