|
1 | 1 | /* This file is part of the ScriptDev2 Project. See AUTHORS file for Copyright information |
2 | 2 | * This program is free software licensed under GPL version 2 |
3 | 3 | * Please see the included DOCS/LICENSE.TXT for more information */ |
| 4 | + |
| 5 | +#ifndef DEF_ICECROWN_HOR_H |
| 6 | +#define DEF_ICECROWN_HOR_H |
| 7 | + |
| 8 | +enum |
| 9 | +{ |
| 10 | + MAX_ENCOUNTER = 3, |
| 11 | + |
| 12 | + TYPE_FALRIC = 0, |
| 13 | + TYPE_MARWYN = 1, |
| 14 | + TYPE_LICH_KING = 2, |
| 15 | + |
| 16 | + NPC_FALRIC = 38112, |
| 17 | + NPC_MARWYN = 38113, |
| 18 | + NPC_LICH_KING = 37226, |
| 19 | + |
| 20 | + NPC_JAINA_PART1 = 37221, |
| 21 | + NPC_JAINA_PART2 = 36955, |
| 22 | + NPC_SYLVANAS_PART1 = 37223, |
| 23 | + NPC_SYLVANAS_PART2 = 37554, |
| 24 | + NPC_KILARA = 37583, |
| 25 | + NPC_ELANDRA = 37774, |
| 26 | + NPC_LORALEN = 37779, |
| 27 | + NPC_KORELN = 37582, |
| 28 | + |
| 29 | + // intro related npcs |
| 30 | + NPC_UTHER = 37225, |
| 31 | + NPC_LICH_KING_INTRO = 36954, |
| 32 | + NPC_FROSTMOURNE_ALTER_BUNNY = 37704, // dummy trigger for Quel'Delar |
| 33 | + NPC_QUEL_DELAR = 37158, |
| 34 | + |
| 35 | + // spirit event creatures |
| 36 | + NPC_SPECTRAL_FOOTMAN = 38173, |
| 37 | + NPC_SHADOWY_MERCENARY = 38177, |
| 38 | + NPC_PHANTOM_MAGE = 38172, |
| 39 | + NPC_GHOSTLY_PRIEST = 38175, |
| 40 | + NPC_TORTURED_RIFLEMAN = 38176, |
| 41 | + |
| 42 | + // escape event creatures |
| 43 | + NPC_RAGING_GHOUL = 36940, |
| 44 | + NPC_RISEN_WHITCH_DOCTOR = 36941, |
| 45 | + NPC_LUMBERING_ABONIMATION = 37069, |
| 46 | + NPC_ICE_WALL_TARGET = 37014, // dummy ice wall target |
| 47 | + |
| 48 | + // objects |
| 49 | + GO_ICECROWN_DOOR_ENTRANCE = 201976, // entrance door; used in combat during the spirit event |
| 50 | + GO_IMPENETRABLE_DOOR = 197341, // door after the spirit event |
| 51 | + GO_ICECROWN_DOOR_LK_ENTRANCE = 197342, // door before the Lich King |
| 52 | + GO_ICECROWN_DOOR_LK_EXIT = 197343, // door after the Lich King |
| 53 | + GO_FROSTMOURNE_ALTAR = 202236, |
| 54 | + GO_FROSTMOURNE = 202302, |
| 55 | + |
| 56 | + GO_ICE_WALL = 201385, // summoned during the Lich King escape |
| 57 | + GO_CAVE_IN = 201596, // door after the final encounter |
| 58 | + GO_PORTAL_DALARAN = 202079, |
| 59 | + GO_THE_SKYBREAKER = 201598, |
| 60 | + GO_OGRIMS_HAMMER = 201581, |
| 61 | + |
| 62 | + GO_CAPTAIN_CHEST_HORDE = 202212, |
| 63 | + GO_CAPTAIN_CHEST_HORDE_H = 202337, |
| 64 | + GO_CAPTAIN_CHEST_ALLIANCE = 201710, |
| 65 | + GO_CAPTAIN_CHEST_ALLIANCE_H = 202336, |
| 66 | + |
| 67 | + // world states |
| 68 | + WORLD_STATE_SPIRIT_WAVES = 4884, |
| 69 | + WORLD_STATE_SPIRIT_WAVES_COUNT = 4882, |
| 70 | +}; |
| 71 | + |
| 72 | +struct EventNpcLocations |
| 73 | +{ |
| 74 | + uint32 uiEntryHorde, uiEntryAlliance; |
| 75 | + float fX, fY, fZ, fO; |
| 76 | + float fMoveX, fMoveY, fMoveZ; |
| 77 | +}; |
| 78 | + |
| 79 | +const EventNpcLocations aEventBeginLocations[2] = |
| 80 | +{ |
| 81 | + {NPC_SYLVANAS_PART1, NPC_JAINA_PART1, 5236.659f, 1929.894f, 707.7781f, 0.87f}, |
| 82 | + {NPC_LORALEN, NPC_KORELN, 5232.680f, 1931.460f, 707.7781f, 0.83f}, |
| 83 | +}; |
| 84 | + |
| 85 | +class instance_halls_of_reflection : public ScriptedInstance |
| 86 | +{ |
| 87 | + public: |
| 88 | + instance_halls_of_reflection(Map* pMap); |
| 89 | + ~instance_halls_of_reflection() {} |
| 90 | + |
| 91 | + void Initialize() override; |
| 92 | + |
| 93 | + void OnCreatureCreate(Creature* pCreature) override; |
| 94 | + void OnObjectCreate(GameObject* pGo) override; |
| 95 | + |
| 96 | + void OnPlayerEnter(Player* pPlayer) override; |
| 97 | + |
| 98 | + void SetData(uint32 uiType, uint32 uiData) override; |
| 99 | + uint32 GetData(uint32 uiType) const override; |
| 100 | + |
| 101 | + uint32 GetPlayerTeam() { return m_uiTeam; } |
| 102 | + |
| 103 | + const char* Save() const override { return m_strInstData.c_str(); } |
| 104 | + void Load(const char* chrIn) override; |
| 105 | + |
| 106 | + protected: |
| 107 | + uint32 m_auiEncounter[MAX_ENCOUNTER]; |
| 108 | + std::string m_strInstData; |
| 109 | + |
| 110 | + uint32 m_uiTeam; // Team of first entered player, used to set if Jaina or Silvana to spawn |
| 111 | +}; |
| 112 | + |
| 113 | +#endif |
0 commit comments