Beispiel #1
0
    void UpdateEscortAI(const uint32 uiDiff)
    {
        if (uiPhase)
        {
            if (uiTimer <= uiDiff)
            {
                switch (uiPhase)
                {
                case 1:
                    DoScriptText(SAY_BLASTMASTER_1, me);
                    NextStep(1500, true);
                    break;
                case 2:
                    SetEscortPaused(false);
                    NextStep(0, false, 0);
                    break;
                case 3:
                    DoScriptText(SAY_BLASTMASTER_2, me);
                    SetEscortPaused(false);
                    NextStep(0, false, 0);
                    break;
                case 4:
                    DoScriptText(SAY_BLASTMASTER_3, me);
                    NextStep(3000, true);
                    break;
                case 5:
                    DoScriptText(SAY_BLASTMASTER_4, me);
                    NextStep(3000, true);
                    break;
                case 6:
                    SetInFace(true);
                    DoScriptText(SAY_BLASTMASTER_5, me);
                    Summon(1);
                    if (pInstance)
                        if (GameObject* pGo = GameObject::GetGameObject((*me), pInstance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
                            pInstance->HandleGameObject(0, true, pGo);
                    NextStep(3000, true);
                    break;
                case 7:
                    DoScriptText(SAY_BLASTMASTER_6, me);
                    SetEscortPaused(false);
                    NextStep(0, false, 0);
                    break;
                case 8:
                    me->HandleEmoteCommand(EMOTE_STATE_WORK);
                    NextStep(25000, true);
                    break;
                case 9:
                    Summon(2);
                    NextStep(0, false);
                    break;
                case 10:
                    Summon(4);
                    NextStep(0, false);
                    break;
                case 11:
                    DoScriptText(SAY_BLASTMASTER_17, me);
                    NextStep(5000, true);
                    break;
                case 12:
                    DoScriptText(SAY_BLASTMASTER_18, me);
                    NextStep(5000, true);
                    break;
                case 13:
                    DoScriptText(SAY_BLASTMASTER_20, me);
                    CaveDestruction(true);
                    NextStep(8000, true);
                    break;
                case 14:
                    DoScriptText(SAY_BLASTMASTER_21, me);
                    NextStep(8500, true);
                    break;
                case 15:
                    DoScriptText(SAY_BLASTMASTER_22, me);
                    NextStep(2000, true);
                    break;
                case 16:
                    DoScriptText(SAY_BLASTMASTER_23, me);
                    SetInFace(false);
                    if (pInstance)
                        if (GameObject* pGo = GameObject::GetGameObject((*me), pInstance->GetData64(DATA_GO_CAVE_IN_LEFT)))
                            pInstance->HandleGameObject(0, true, pGo);
                    NextStep(2000, true);
                    break;
                case 17:
                    SetEscortPaused(false);
                    DoScriptText(SAY_BLASTMASTER_24, me);
                    Summon(6);
                    NextStep(0, false);
                    break;
                case 18:
                    Summon(7);
                    NextStep(0, false);
                    break;
                case 19:
                    SetInFace(false);
                    Summon(8);
                    DoScriptText(SAY_BLASTMASTER_25, me);
                    NextStep(0, false);
                    break;
                case 20:
                    DoScriptText(SAY_BLASTMASTER_27, me);
                    NextStep(2000, true);
                    break;
                case 21:
                    Summon(9);
                    NextStep(0, false);
                    break;
                case 22:
                    CaveDestruction(false);
                    DoScriptText(SAY_BLASTMASTER_20, me);
                    NextStep(0, false);
                    break;
                }
            }
            else uiTimer -= uiDiff;
        }

        if (!UpdateVictim())
            return;

        DoMeleeAttackIfReady();
    }
Beispiel #2
0
        void UpdateEscortAI(uint32 uiDiff) override
        {
            if (uiPhase)
            {
                if (uiTimer <= uiDiff)
                {
                    switch (uiPhase)
                    {
                        case 1:
                            Talk(SAY_BLASTMASTER_1);
                            NextStep(2000, true);
                            break;
                        case 2:
                            SetEscortPaused(false);
                            NextStep(0, false, 0);
                            break;
                        case 3:
                            Talk(SAY_BLASTMASTER_2);
                            SetEscortPaused(false);
                            NextStep(0, false, 0);
                            break;
                        case 4:
                            Talk(SAY_BLASTMASTER_3);
                            NextStep(3000, true);
                            break;
                        case 5:
                            Talk(SAY_BLASTMASTER_4);
                            NextStep(3000, true);
                            break;
                        case 6:
                            SetInFace(true);
                            Talk(SAY_BLASTMASTER_5);
                            Summon(1);
                            if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_RIGHT)))
                                instance->HandleGameObject(ObjectGuid::Empty, true, go);
                            NextStep(3000, true);
                            break;
                        case 7:
                            Talk(SAY_BLASTMASTER_6);
                            SetEscortPaused(false);
                            NextStep(0, false, 0);
                            break;
                        case 8:
                            me->HandleEmoteCommand(EMOTE_STATE_USE_STANDING);
                            NextStep(25000, true);
                            break;
                        case 9:
                            Summon(2);
                            NextStep(0, false);
                            break;
                        case 10:
                            Summon(4);
                            Talk(SAY_BLASTMASTER_8);
                            NextStep(0, false);
                            break;
                        case 11:
                            Talk(SAY_BLASTMASTER_9);
                            NextStep(5000, true);
                            break;
                        case 12:
                            Talk(SAY_BLASTMASTER_10);
                            NextStep(5000, true);
                            break;
                        case 13:
                            Talk(SAY_BLASTMASTER_11);
                            CaveDestruction(true);
                            NextStep(8000, true);
                            break;
                        case 14:
                            Talk(SAY_BLASTMASTER_12);
                            NextStep(8500, true);
                            break;
                        case 15:
                            Talk(SAY_BLASTMASTER_13);
                            NextStep(2000, true);
                            break;
                        case 16:
                            Talk(SAY_BLASTMASTER_14);
                            SetInFace(false);
                            if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_LEFT)))
                                instance->HandleGameObject(ObjectGuid::Empty, true, go);
                            NextStep(2000, true);
                            break;
                        case 17:
                            SetEscortPaused(false);
                            Talk(SAY_BLASTMASTER_15);
                            Summon(5);
                            NextStep(0, false);
                            break;
                        case 18:
                            Summon(6);
                            NextStep(0, false);
                            break;
                        case 19:
                            SetInFace(false);
                            Summon(7);
                            Talk(SAY_BLASTMASTER_16);
                            NextStep(0, false);
                            break;
                        case 20:
                            Talk(SAY_BLASTMASTER_18);
                            NextStep(2000, true);
                            break;
                        case 21:
                            Summon(8);
                            NextStep(0, false);
                            break;
                        case 22:
                            CaveDestruction(false);
                            Talk(SAY_BLASTMASTER_11);
                            NextStep(3000, true);
                            break;
                        case 23:
                            Summon(9);
                            Talk(SAY_BLASTMASTER_19);
                            NextStep(0, false);
                            break;
                    }
                } else uiTimer -= uiDiff;
            }

            if (!UpdateVictim())
                return;

            DoMeleeAttackIfReady();
        }