Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
halls_of_reflection.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef DEF_HALLS_OF_REFLECTION_H
7#define DEF_HALLS_OF_REFLECTION_H
8
9#define HoRScriptName "instance_halls_of_reflection"
10#define MAX_ENCOUNTER 3
11
12/* Halls of Reflection encounters:
130- Falric
141- Marwyn
152- The Lich King
16*/
17
36
38{
41 NPC_UTHER = 37225,
43 NPC_LORALEN = 37779,
44 NPC_KORELN = 37582,
45
46 NPC_FALRIC = 38112,
47 NPC_MARWYN = 38113,
53
55 NPC_REFLECTION = 37068, // 37107 for tank only?
56
60 NPC_BARTLETT = 37182, // High Captain Justin Bartlett
61 NPC_KORM = 37833, // Sky-Reaver Korm Blackscar
62 NPC_ICE_WALL = 37014, // Ice Wall Target
63
66 NPC_ABON = 37069
67};
68
70{
75 //GO_ESCAPE_DOOR = 197343, // always open ?
76
77 GO_ICE_WALL = 201385,
78 GO_CAVE = 201596,
79
81 GO_SKYBREAKER = 201598,
84 GO_PORTAL = 202079,
85
86 GO_CAPTAIN_CHEST_1 = 202212, //3145
87 GO_CAPTAIN_CHEST_2 = 201710, //30357
88 GO_CAPTAIN_CHEST_3 = 202337, //3246
89 GO_CAPTAIN_CHEST_4 = 202336, //3333
90};
91
97
98// Common actions from Instance Script to Boss Script
105
107{
108 // General spells
109 SPELL_WELL_OF_SOULS = 72630, // cast when spawn(become visible)
110 SPELL_SPIRIT_ACTIVATE = 72130, // cast when unit activates
111};
112
120
121// Base class for FALRIC and MARWYN
122// handled the summonList and the notification events to/from the InstanceScript
124{
125 boss_horAI(Creature* creature) : ScriptedAI(creature), summons(creature)
126 {
127 instance = me->GetInstanceScript();
128 }
129
133
134 void Reset()
135 {
136 events.Reset();
137 me->SetVisible(false);
139 me->SetReactState(REACT_PASSIVE);
140 if (instance && instance->GetData(DATA_WAVE_COUNT) != NOT_STARTED)
141 instance->ProcessEvent(0, EVENT_DO_WIPE);
142 }
143
144 void DoAction(int32 actionID)
145 {
146 switch (actionID)
147 {
148 case ACTION_ENTER_COMBAT: // called by InstanceScript when boss shall enter in combat.
150 me->SetReactState(REACT_AGGRESSIVE);
151
152 if (Unit* unit = me->SelectNearestTarget())
153 AttackStart(unit);
154
156 break;
157 }
158 }
159
160 void JustSummoned(Creature* summoned)
161 {
162 summons.Summon(summoned);
163 }
164};
165
166template<class AI>
168{
169 return GetInstanceAI<AI>(creature, HoRScriptName);
170}
171
172#endif
Actions
std::int32_t int32
Definition Define.h:73
@ NOT_STARTED
AI * GetInstanceAI(T *obj, char const *scriptName)
@ REACT_PASSIVE
Definition Unit.h:1156
@ REACT_AGGRESSIVE
Definition Unit.h:1158
@ UNIT_FLAG_IMMUNE_TO_NPC
Definition Unit.h:634
@ UNIT_FLAG_IMMUNE_TO_PC
Definition Unit.h:633
@ UNIT_FIELD_FLAGS
Creatures
@ SPELL_WELL_OF_SOULS
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
Definition Unit.h:1367
@ NPC_JAINA_PART1
@ NPC_JAINA_PART2
@ NPC_KORELN
@ NPC_SYLVANAS_PART2
@ NPC_LORALEN
@ NPC_SYLVANAS_PART1
@ DATA_TEAM_IN_INSTANCE
#define HoRScriptName
@ GO_FROSTWORN_DOOR
@ GO_CAPTAIN_CHEST_4
@ GO_STAIRS_ORGRIM_HAMMER
@ GO_CAPTAIN_CHEST_1
@ GO_SKYBREAKER
@ GO_PORTAL
@ GO_FROSTMOURNE
@ GO_ICE_WALL
@ GO_ORGRIM_HAMMER
@ GO_ENTRANCE_DOOR
@ GO_STAIRS_SKYBREAKER
@ GO_ARTHAS_DOOR
@ GO_CAPTAIN_CHEST_2
@ GO_CAPTAIN_CHEST_3
@ ACTION_START_ESCAPING
@ ACTION_WALL_BROKEN
@ ACTION_ENTER_COMBAT
@ NPC_RISEN_WITCH_DOCTOR
@ NPC_BARTLETT
@ NPC_LICH_KING_PART1
@ NPC_WAVE_FOOTMAN
@ NPC_REFLECTION
@ NPC_WAVE_PRIEST
@ NPC_FALRIC
@ NPC_WAVE_MAGE
@ NPC_WAVE_MERCENARY
@ NPC_LICH_KING_PART2
@ NPC_ICE_WALL
@ NPC_FROSTWORN_GENERAL
@ NPC_WAVE_RIFLEMAN
@ NPC_RAGING_GNOUL
@ NPC_MARWYN
@ WORLD_STATE_HOR_WAVES_ENABLED
@ WORLD_STATE_HOR_WAVE_COUNT
AI * GetHallsOfReflectionAI(Creature *creature)
@ EVENT_SPAWN_WAVES
@ EVENT_NEXT_WAVE
@ EVENT_ADD_WAVE
@ EVENT_DO_WIPE
TrashGeneralSpells
@ SPELL_SPIRIT_ACTIVATE
@ DATA_MARWYN_EVENT
@ DATA_INTRO_EVENT
@ DATA_FROSWORN_EVENT
@ DATA_ESCAPE_EVENT
@ DATA_ESCAPE_LEADER
@ DATA_SUMMONS
@ DATA_FALRIC_EVENT
@ DATA_WAVE_COUNT
@ DATA_ICEWALL
@ DATA_CAVE_IN
@ DATA_FROSTMOURNE
@ DATA_LICHKING_EVENT
@ DATA_FROSTWORN_DOOR
Data
Definition molten_core.h:55
Creature * me
ScriptedAI(Creature *creature)
void AttackStart(Unit *) OVERRIDE
void DoAction(int32 actionID)
InstanceScript * instance
boss_horAI(Creature *creature)
void JustSummoned(Creature *summoned)