Example #1
0
		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;
			}
		}
Example #2
0
        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;
            }
        }