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
2195: 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.

2198 {
2199 InstanceScript* instance = player->GetInstanceScript();
2200 if (!instance || instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
2201 return true;
2202
2203 Position destPos = {4126.35f, 2769.23f, 350.963f, 0.0f};
2204
2205 if (instance->GetData(DATA_COLDFLAME_JETS) == NOT_STARTED)
2206 {
2207 // save original player position
2208 float x, y, z, o;
2209 player->GetPosition(x, y, z, o);
2210
2211 // move player to preload grid and be able to select nearby npcs
2212 player->GetMap()->PlayerRelocation(player, destPos.GetPositionX(), destPos.GetPositionY(), destPos.GetPositionZ(), destPos.GetOrientation());
2213
2215 std::list<Creature*> traps;
2217 traps.sort(Acore::ObjectDistanceOrderPred(player));
2218 bool instant = false;
2219 for (std::list<Creature*>::iterator itr = traps.begin(); itr != traps.end(); ++itr)
2220 {
2221 (*itr)->AI()->DoAction(instant ? 1000 : 11000);
2222 instant = !instant;
2223 }
2224
2225 // restore original position
2226 player->GetMap()->PlayerRelocation(player, x, y, z, o);
2227 }
2228
2229 player->TeleportTo(631, destPos.GetPositionX(), destPos.GetPositionY(), destPos.GetPositionZ(), destPos.GetOrientation());
2230
2231 return true;
2232 }
@ 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:943
Definition Object.h:800
Definition InstanceScript.h:143
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:252
void PlayerRelocation(Player *, float x, float y, float z, float o)
Definition Map.cpp:782
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition Player.cpp:1352
Map * GetMap() const
Definition Object.h:625
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1238
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: