Exemplo n.º 1
0
        void OnGameObjectRemove(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());

                heiganEruptionGUID[section].erase(go->GetGUID());
                return;
            }

            switch (go->GetEntry())
            {
                case GO_BIRTH:
                    if (sapphironGUID)
                    {
                        if (Creature* pSapphiron = instance->GetCreature(sapphironGUID))
                            pSapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
                        return;
                    }
                    break;
                default:
                    break;
            }

            AddDoor(go, false);
        }
Exemplo n.º 2
0
    void OnGameObjectCreate(GameObject* pGo, bool add)
    {
        if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
        {
            uint32 section = GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY());
            if (add)
                HeiganEruption[section].insert(pGo);
            else
                HeiganEruption[section].erase(pGo);
            return;
        }

        switch (pGo->GetEntry())
        {
            case GO_BIRTH: if (!add && Sapphiron) Sapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH); return;
            case GO_GOTHIK_GATE: pGothikGate = add ? pGo : NULL; break;
            case GO_HORSEMEN_CHEST: HorsemenChest = add ? pGo : NULL; break;
            case GO_HORSEMEN_CHEST_HERO: HorsemenChest = add ? pGo : NULL; break;
            case GO_KELTHUZAD_PORTAL01: uiPortals[0] = pGo->GetGUID(); break;
            case GO_KELTHUZAD_PORTAL02: uiPortals[1] = pGo->GetGUID(); break;
            case GO_KELTHUZAD_PORTAL03: uiPortals[2] = pGo->GetGUID(); break; 
            case GO_KELTHUZAD_PORTAL04: uiPortals[3] = pGo->GetGUID(); break; 
            case GO_KELTHUZAD_TRIGGER: uiKelthuzadTrigger = pGo->GetGUID(); break; 
        }

        AddDoor(pGo, add);
    }
Exemplo n.º 3
0
            void OnGameObjectCreate(GameObject* go) override
            {
                if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
                {
                    uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                    HeiganEruptionGUID[section].insert(go->GetGUID());
                    return;
                }

                switch (go->GetEntry())
                {
                    case GO_GOTHIK_GATE:
                        GothikGateGUID = go->GetGUID();
                        break;
                    case GO_HORSEMEN_CHEST:
                    case GO_HORSEMEN_CHEST_HERO:
                        HorsemenChestGUID = go->GetGUID();
                        break;
                    case GO_KELTHUZAD_PORTAL01:
                        PortalsGUID[0] = go->GetGUID();
                        break;
                    case GO_KELTHUZAD_PORTAL02:
                        PortalsGUID[1] = go->GetGUID();
                        break;
                    case GO_KELTHUZAD_PORTAL03:
                        PortalsGUID[2] = go->GetGUID();
                        break;
                    case GO_KELTHUZAD_PORTAL04:
                        PortalsGUID[3] = go->GetGUID();
                        break;
                    case GO_KELTHUZAD_TRIGGER:
                        KelthuzadTriggerGUID = go->GetGUID();
                        break;
                    case GO_ROOM_KELTHUZAD:
                        KelthuzadDoorGUID = go->GetGUID();
                        break;
                    case GO_NAXX_PORTAL_ARACHNID:
                        if (GetBossState(BOSS_MAEXXNA) == DONE)
                            go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
                        break;
                    case GO_NAXX_PORTAL_CONSTRUCT:
                        if (GetBossState(BOSS_THADDIUS) == DONE)
                            go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
                        break;
                    case GO_NAXX_PORTAL_PLAGUE:
                        if (GetBossState(BOSS_LOATHEB) == DONE)
                            go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
                        break;
                    case GO_NAXX_PORTAL_MILITARY:
                        if (GetBossState(BOSS_HORSEMEN) == DONE)
                            go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
                        break;
                    default:
                        break;
                }

                InstanceScript::OnGameObjectCreate(go);
            }
Exemplo n.º 4
0
        void OnGameObjectCreate(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                heiganEruptionGUID[section].insert(go->GetGUID());

                return;
            }

            switch (go->GetEntry())
            {
                case GO_GOTHIK_GATE:
                    gothikGateGUID = go->GetGUID();
                    go->SetGoState(gothikDoorState);
                    break;
                case GO_HORSEMEN_CHEST:
                    horsemenChestGUID = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST_HERO:
                    horsemenChestGUID = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL01:
                    portalsGUID[0] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL02:
                    portalsGUID[1] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL03:
                    portalsGUID[2] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL04:
                    portalsGUID[3] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_TRIGGER:
                    kelthuzadTriggerGUID = go->GetGUID();
                    break;
                default:
                    break;
            }

            AddDoor(go, true);
        }
Exemplo n.º 5
0
        void OnGameObjectRemove(GameObject* pGo)
        {
            if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY());
                HeiganEruptionGUID[section].erase(pGo->GetGUID());
                return;
            }

            if(pGo->GetEntry() == GO_BIRTH)
            {
                if (SapphironGUID)
                {
                    if (Creature *pSapphiron = instance->GetCreature(SapphironGUID))
                        pSapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
                    return;
                }
            }
        }
Exemplo n.º 6
0
        void OnGameObjectCreate(GameObject* pGo)
        {
            if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY());
                HeiganEruptionGUID[section].insert(pGo->GetGUID());
                return;
            }

            switch(pGo->GetEntry())
            {
                case GO_GOTHIK_GATE:
                    GothikGateGUID = pGo->GetGUID();
                    pGo->SetGoState(gothikDoorState);
                    break;
                case GO_HORSEMEN_CHEST: HorsemenChestGUID = pGo->GetGUID(); break;
                case GO_HORSEMEN_CHEST_HERO: HorsemenChestGUID = pGo->GetGUID(); break;
                case GO_KELTHUZAD_PORTAL01: uiPortals[0] = pGo->GetGUID(); break;
                case GO_KELTHUZAD_PORTAL02: uiPortals[1] = pGo->GetGUID(); break;
                case GO_KELTHUZAD_PORTAL03: uiPortals[2] = pGo->GetGUID(); break;
                case GO_KELTHUZAD_PORTAL04: uiPortals[3] = pGo->GetGUID(); break;
                case GO_KELTHUZAD_TRIGGER: uiKelthuzadTrigger = pGo->GetGUID(); break;

                case GO_ROOM_ANUBREKHAN:
                    uiNaxxDoors[DOOR_ROOM_ANUBREKHAN] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_ANUBREKHAN] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_ANUBREKHAN:
                    uiNaxxDoors[DOOR_PASSAGE_ANUBREKHAN] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_ANUBREKHAN] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_FAERLINA:
                    uiNaxxDoors[DOOR_PASSAGE_FAERLINA] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_FAERLINA] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_MAEXXNA:
                    uiNaxxDoors[DOOR_ROOM_MAEXXNA] = pGo->GetGUID();
                    pGo->SetGoState((m_auiEncounter[BOSS_FAERLINA] == DONE && m_auiEncounter[BOSS_MAEXXNA] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_NOTH:
                    uiNaxxDoors[DOOR_ROOM_NOTH] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_FAERLINA] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_NOTH:
                    uiNaxxDoors[DOOR_PASSAGE_NOTH] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_NOTH] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_HEIGAN:
                    uiNaxxDoors[DOOR_ROOM_HEIGAN] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_HEIGAN] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_HEIGAN:
                    uiNaxxDoors[DOOR_PASSAGE_HEIGAN] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_HEIGAN] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_LOATHEB:
                    uiNaxxDoors[DOOR_ROOM_LOATHEB] = pGo->GetGUID();
                    pGo->SetGoState((m_auiEncounter[BOSS_HEIGAN] == DONE && m_auiEncounter[BOSS_LOATHEB] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_GROBBULUS:
                    uiNaxxDoors[DOOR_ROOM_GROBBULUS] = pGo->GetGUID();
                    pGo->SetGoState((m_auiEncounter[BOSS_PATCHWERK] == DONE && m_auiEncounter[BOSS_GROBBULUS] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_GLUTH:
                    uiNaxxDoors[DOOR_PASSAGE_GLUTH] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_GLUTH] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_THADDIUS:
                    uiNaxxDoors[DOOR_ROOM_THADDIUS] = pGo->GetGUID();
                    pGo->SetGoState((m_auiEncounter[BOSS_GLUTH] == DONE && m_auiEncounter[BOSS_THADDIUS] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_GOTHIK:
                    uiNaxxDoors[DOOR_ROOM_GOTHIK] = pGo->GetGUID();
                    pGo->SetGoState((m_auiEncounter[BOSS_RAZUVIOUS] == DONE && m_auiEncounter[BOSS_GOTHIK] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_GOTHIK:
                    uiNaxxDoors[DOOR_PASSAGE_GOTHIK] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_GOTHIK] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_HORSEMEN:
                    uiNaxxDoors[DOOR_ROOM_HORSEMEN] = pGo->GetGUID();
                    pGo->SetGoState((m_auiEncounter[BOSS_GOTHIK] == DONE && m_auiEncounter[BOSS_HORSEMEN] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_SAPPHIRON:
                    uiNaxxDoors[DOOR_PASSAGE_SAPPHIRON] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_SAPPHIRON] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_KELTHUZAD:
                    uiNaxxDoors[DOOR_ROOM_KELTHUZAD] = pGo->GetGUID();
                    pGo->SetGoState(m_auiEncounter[BOSS_KELTHUZAD] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;

            }
            //AddDoor(pGo, add);
        }
Exemplo n.º 7
0
    void OnObjectCreate(GameObject* pGo)
    {
        if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
        {
            uint32 section = GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY());
            HeiganEruption[section].insert(pGo);

            return;
        }

        switch(pGo->GetEntry())
        {
            case GO_ARAC_ANUB_DOOR:
                m_uiAnubDoorGUID = pGo->GetGUID();
                break;
            case GO_ARAC_ANUB_GATE:
                m_uiAnubGateGUID = pGo->GetGUID();
                if (m_auiEncounter[0] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_ARAC_FAER_WEB:
                m_uiFaerWebGUID = pGo->GetGUID();
                break;
            case GO_ARAC_FAER_DOOR:
                m_uiFaerDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[1] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_ARAC_MAEX_INNER_DOOR:
                m_uiMaexInnerGUID = pGo->GetGUID();
                break;
            case GO_ARAC_MAEX_OUTER_DOOR:
                m_uiMaexOuterGUID = pGo->GetGUID();
                if (m_auiEncounter[2] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;

            case GO_PLAG_NOTH_ENTRY_DOOR:
                m_uiNothEntryDoorGUID = pGo->GetGUID();
                break;
            case GO_PLAG_NOTH_EXIT_DOOR:
                m_uiNothExitDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[3] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_PLAG_HEIG_ENTRY_DOOR:
                m_uiHeigEntryDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[3] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_PLAG_HEIG_EXIT_DOOR:
                m_uiHeigExitDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[4] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_PLAG_LOAT_DOOR:
                m_uiLoathebDoorGUID = pGo->GetGUID();
                break;

            case GO_MILI_GOTH_ENTRY_GATE:
                m_uiGothikEntryDoorGUID = pGo->GetGUID();
                break;
            case GO_MILI_GOTH_EXIT_GATE:
                m_uiGothikExitDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[7] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_MILI_GOTH_COMBAT_GATE:
                m_uiGothCombatGateGUID = pGo->GetGUID();
                break;
            case GO_MILI_HORSEMEN_DOOR:
                m_uiHorsemenDoorGUID  = pGo->GetGUID();
                if (m_auiEncounter[7] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;

            case GO_CHEST_HORSEMEN_NORM:
                m_uiHorsemenChestGUID = pGo->GetGUID();
                break;

            case GO_CHEST_HORSEMEN_HERO:
                m_uiHorsemenChestHeroGUID = pGo->GetGUID();
                break;

            case GO_CONS_PATH_EXIT_DOOR:
                m_uiPathExitDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[9] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_CONS_GLUT_EXIT_DOOR:
                m_uiGlutExitDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[11] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_CONS_THAD_DOOR:
                m_uiThadDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[11] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;

            case GO_KELTHUZAD_WATERFALL_DOOR:
                m_uiKelthuzadDoorGUID = pGo->GetGUID();
                if (m_auiEncounter[13] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;

            case GO_ARAC_EYE_RAMP:
                m_uiAracEyeRampGUID = pGo->GetGUID();
                if (m_auiEncounter[2] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_PLAG_EYE_RAMP:
                m_uiPlagEyeRampGUID = pGo->GetGUID();
                if (m_auiEncounter[5] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_MILI_EYE_RAMP:
                m_uiMiliEyeRampGUID = pGo->GetGUID();
                if (m_auiEncounter[8] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;
            case GO_CONS_EYE_RAMP:
                m_uiConsEyeRampGUID = pGo->GetGUID();
                if (m_auiEncounter[12] == DONE)
                    pGo->SetGoState(GO_STATE_ACTIVE);
                break;

            case GO_ARAC_PORTAL:
                m_uiAracPortalGUID = pGo->GetGUID();
                break;
            case GO_PLAG_PORTAL:
                m_uiPlagPortalGUID = pGo->GetGUID();
                break;
            case GO_MILI_PORTAL:
                m_uiMiliPortalGUID = pGo->GetGUID();
                break;
            case GO_CONS_PORTAL:
                m_uiConsPortalGUID = pGo->GetGUID();
                break;
        }
    }
Exemplo n.º 8
0
        void OnGameObjectCreate(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                HeiganEruptionGUID[section].insert(go->GetGUID());

                return;
            }

            switch (go->GetEntry())
            {
                case GO_GOTHIK_GATE:
                    GothikGateGUID = go->GetGUID();
                    go->SetGoState(gothikDoorState);
                    break;
                case GO_HORSEMEN_CHEST:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST_HERO:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL01:
                    PortalsGUID[0] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL02:
                    PortalsGUID[1] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL03:
                    PortalsGUID[2] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL04:
                    PortalsGUID[3] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_TRIGGER:
                    KelthuzadTriggerGUID = go->GetGUID();
                    break;
               case GO_ARAC_PORTAL:
                    AracPortalGUID = go->GetGUID();
                    break;
               case GO_PLAG_PORTAL:
                    PlagPortalGUID = go->GetGUID();
                    break;
                case GO_MILI_PORTAL:
                    MiliPortalGUID = go->GetGUID();
                    break;
                case GO_CONS_PORTAL:
                    ConsPortalGUID = go->GetGUID();
                    break;
                case GO_ARAC_EYE_RAMP:
                    AracEyeGUID = go->GetGUID();
                    if (Encounter[DATA_MAEXXNA] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                case GO_PLAG_EYE_RAMP:
                    PlagEyeGUID = go->GetGUID();
                    if (Encounter[DATA_LOATHEB] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                case GO_MILI_EYE_RAMP:
                    MiliEyeGUID = go->GetGUID();
                    if (Encounter[DATA_HORSEMEN] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                case GO_CONS_EYE_RAMP:
                    ConsEyeGUID = go->GetGUID();
                    if (Encounter[DATA_THADDIUS] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                default:
                    break;
            }
			
            AddDoor(go, true);
        }
Exemplo n.º 9
0
        void OnGameObjectRemove(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());

                HeiganEruptionGUID[section].erase(go->GetGUID());
                return;
            }

            switch (go->GetEntry())
            {
                case GO_BIRTH:
                    if (SapphironGUID)
                    {
                        if (Creature* pSapphiron = instance->GetCreature(SapphironGUID))
                            pSapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
                        return;
                    }
                case GO_ROOM_ANUBREKHAN:
                    uiNaxxDoors[DOOR_ROOM_ANUBREKHAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_ANUBREKHAN] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_ANUBREKHAN:
                    uiNaxxDoors[DOOR_PASSAGE_ANUBREKHAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_ANUBREKHAN] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_FAERLINA:
                    uiNaxxDoors[DOOR_PASSAGE_FAERLINA] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_FAERLINA] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_MAEXXNA:
                    uiNaxxDoors[DOOR_ROOM_MAEXXNA] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_FAERLINA] == DONE && m_auiEncounter[BOSS_MAEXXNA] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_NOTH:
                    uiNaxxDoors[DOOR_ROOM_NOTH] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_FAERLINA] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_NOTH:
                    uiNaxxDoors[DOOR_PASSAGE_NOTH] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_NOTH] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_HEIGAN:
                    uiNaxxDoors[DOOR_ROOM_HEIGAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_HEIGAN] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_HEIGAN:
                    uiNaxxDoors[DOOR_PASSAGE_HEIGAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_HEIGAN] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_LOATHEB:
                    uiNaxxDoors[DOOR_ROOM_LOATHEB] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_HEIGAN] == DONE && m_auiEncounter[BOSS_LOATHEB] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_GROBBULUS:
                    uiNaxxDoors[DOOR_ROOM_GROBBULUS] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_PATCHWERK] == DONE && m_auiEncounter[BOSS_GROBBULUS] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_GLUTH:
                    uiNaxxDoors[DOOR_PASSAGE_GLUTH] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_GLUTH] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_THADDIUS:
                    uiNaxxDoors[DOOR_ROOM_THADDIUS] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_GLUTH] == DONE && m_auiEncounter[BOSS_THADDIUS] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_GOTHIK:
                    uiNaxxDoors[DOOR_ROOM_GOTHIK] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_RAZUVIOUS] == DONE && m_auiEncounter[BOSS_GOTHIK] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_GOTHIK:
                    uiNaxxDoors[DOOR_PASSAGE_GOTHIK] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_GOTHIK] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_HORSEMEN:
                    uiNaxxDoors[DOOR_ROOM_HORSEMEN] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_GOTHIK] == DONE && m_auiEncounter[BOSS_HORSEMEN] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_SAPPHIRON:
                    uiNaxxDoors[DOOR_PASSAGE_SAPPHIRON] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_SAPPHIRON] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_KELTHUZAD:
                    uiNaxxDoors[DOOR_ROOM_KELTHUZAD] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_KELTHUZAD] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
            }

            AddDoor(go, false);
        }
Exemplo n.º 10
0
        void OnGameObjectCreate(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                HeiganEruptionGUID[section].insert(go->GetGUID());

                return;
            }

            switch (go->GetEntry())
            {
                case 16506:
                case 16505:
                    FaerlinaMinion.insert(go->GetGUID());
                    break;
                case 16803:
                    RazuviousMinion.insert(go->GetGUID());
                    break;
                case 16063:
                case 16064:
                case 16065:
                case 30549:
                    Horsemen.insert(go->GetGUID());
                    break;
                case GO_PASSAGE_SAPPHIRON:
                    SapphironWall = go->GetGUID();
                    break;
                case GO_ROOM_GROBBULUS:
                    GrobbulusDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_GLUTH:
                    GluthDoor = go->GetGUID();
                    break;
                case GO_ROOM_THADDIUS:
                    ThaddiusDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_ANUBREKHAN:
                    AnubrekhanDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_FAERLINA:
                    FaerlinaDoor = go->GetGUID();
                    break;
                case GO_ROOM_MAEXXNA:
                    MaexxnaDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_NOTH:
                    NothDoor_Out = go->GetGUID();
                    break;
                case GO_ROOM_HEIGAN:
                    HeiganDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_GOTHIK:
                    GothicDoor = go->GetGUID();
                    break;
                case GO_ROOM_HORSEMEN:
                    HorsemenDoor = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST_HERO:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL01:
                    uiPortals[0] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL02:
                    uiPortals[1] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL03:
                    uiPortals[2] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL04:
                    uiPortals[3] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_TRIGGER:
                    uiKelthuzadTrigger = go->GetGUID();
                    break;
                default:
                    break;
            }

            AddDoor(go, true);
        }