AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
at_icc_saurfang_portal Class Reference
Inheritance diagram for at_icc_saurfang_portal:
AreaTriggerScript ScriptObject

Public Member Functions

 at_icc_saurfang_portal ()
 
bool OnTrigger (Player *player, AreaTrigger const *) override
 
- Public Member Functions inherited from AreaTriggerScript
bool IsDatabaseBound () const override
 
- Public Member Functions inherited from ScriptObject
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Additional Inherited Members

- Protected Member Functions inherited from AreaTriggerScript
 AreaTriggerScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ at_icc_saurfang_portal()

at_icc_saurfang_portal::at_icc_saurfang_portal ( )
inline
2182: AreaTriggerScript("at_icc_saurfang_portal") { }
Definition AreaTriggerScript.h:24

Member Function Documentation

◆ OnTrigger()

bool at_icc_saurfang_portal::OnTrigger ( Player player,
AreaTrigger const *   
)
inlineoverridevirtual

Reimplemented from AreaTriggerScript.

2185 {
2186 InstanceScript* instance = player->GetInstanceScript();
2187 if (!instance || instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
2188 return true;
2189
2190 Position destPos = {4126.35f, 2769.23f, 350.963f, 0.0f};
2191
2192 if (instance->GetData(DATA_COLDFLAME_JETS) == NOT_STARTED)
2193 {
2194 // save original player position
2195 float x, y, z, o;
2196 player->GetPosition(x, y, z, o);
2197
2198 // move player to preload grid and be able to select nearby npcs
2199 player->GetMap()->PlayerRelocation(player, destPos.GetPositionX(), destPos.GetPositionY(), destPos.GetPositionZ(), destPos.GetOrientation());
2200
2202 std::list<Creature*> traps;
2204 traps.sort(Acore::ObjectDistanceOrderPred(player));
2205 bool instant = false;
2206 for (std::list<Creature*>::iterator itr = traps.begin(); itr != traps.end(); ++itr)
2207 {
2208 (*itr)->AI()->DoAction(instant ? 1000 : 11000);
2209 instant = !instant;
2210 }
2211
2212 // restore original position
2213 player->GetMap()->PlayerRelocation(player, x, y, z, o);
2214 }
2215
2216 player->TeleportTo(631, destPos.GetPositionX(), destPos.GetPositionY(), destPos.GetPositionZ(), destPos.GetOrientation());
2217
2218 return true;
2219 }
@ IN_PROGRESS
Definition InstanceScript.h:59
@ DONE
Definition InstanceScript.h:61
@ NOT_STARTED
Definition InstanceScript.h:58
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition ScriptedCreature.cpp:875
Definition Object.h:700
Definition InstanceScript.h:143
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:242
void PlayerRelocation(Player *, float x, float y, float z, float o)
Definition Map.cpp:843
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition Player.cpp:1338
Map * GetMap() const
Definition Object.h:536
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1203
virtual uint32 GetData(uint32) const
Definition ZoneScript.h:51
virtual void SetData(uint32, uint32)
Definition ZoneScript.h:52
@ NPC_FROST_FREEZE_TRAP
Definition icecrown_citadel.h:250
@ DATA_DEATHBRINGER_SAURFANG
Definition icecrown_citadel.h:89
@ DATA_COLDFLAME_JETS
Definition icecrown_citadel.h:117
Definition Position.h:27
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
float GetPositionX() const
Definition Position.h:121
void GetPosition(float &x, float &y) const
Definition Position.h:126
float GetPositionY() const
Definition Position.h:122

References DATA_COLDFLAME_JETS, DATA_DEATHBRINGER_SAURFANG, DONE, InstanceScript::GetBossState(), GetCreatureListWithEntryInGrid(), ZoneScript::GetData(), WorldObject::GetInstanceScript(), WorldObject::GetMap(), Position::GetOrientation(), Position::GetPosition(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), IN_PROGRESS, NOT_STARTED, NPC_FROST_FREEZE_TRAP, Map::PlayerRelocation(), ZoneScript::SetData(), and Player::TeleportTo().


The documentation for this class was generated from the following file: