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
 
virtual bool OnTrigger (Player *, AreaTrigger const *)
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 

Additional Inherited Members

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

Detailed Description

Constructor & Destructor Documentation

◆ at_icc_saurfang_portal()

at_icc_saurfang_portal::at_icc_saurfang_portal ( )
inline
2269: AreaTriggerScript("at_icc_saurfang_portal") { }
Definition: ScriptMgr.h:801

Member Function Documentation

◆ OnTrigger()

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

Reimplemented from AreaTriggerScript.

2272 {
2273 InstanceScript* instance = player->GetInstanceScript();
2274 if (!instance || instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
2275 return true;
2276
2277 Position destPos = {4126.35f, 2769.23f, 350.963f, 0.0f};
2278
2279 if (instance->GetData(DATA_COLDFLAME_JETS) == NOT_STARTED)
2280 {
2281 // save original player position
2282 float x, y, z, o;
2283 player->GetPosition(x, y, z, o);
2284
2285 // move player to preload grid and be able to select nearby npcs
2286 player->GetMap()->PlayerRelocation(player, destPos.GetPositionX(), destPos.GetPositionY(), destPos.GetPositionZ(), destPos.GetOrientation());
2287
2289 std::list<Creature*> traps;
2291 traps.sort(Acore::ObjectDistanceOrderPred(player));
2292 bool instant = false;
2293 for (std::list<Creature*>::iterator itr = traps.begin(); itr != traps.end(); ++itr)
2294 {
2295 (*itr)->AI()->DoAction(instant ? 1000 : 11000);
2296 instant = !instant;
2297 }
2298
2299 // restore original position
2300 player->GetMap()->PlayerRelocation(player, x, y, z, o);
2301 }
2302
2303 player->TeleportTo(631, destPos.GetPositionX(), destPos.GetPositionY(), destPos.GetPositionZ(), destPos.GetOrientation());
2304
2305 return true;
2306 }
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition: ScriptedCreature.cpp:775
@ IN_PROGRESS
Definition: InstanceScript.h:57
@ DONE
Definition: InstanceScript.h:59
@ NOT_STARTED
Definition: InstanceScript.h:56
@ NPC_FROST_FREEZE_TRAP
Definition: icecrown_citadel.h:248
@ DATA_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:96
@ DATA_COLDFLAME_JETS
Definition: icecrown_citadel.h:124
Map * GetMap() const
Definition: Object.h:517
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
Definition: Object.h:681
Definition: Position.h:28
float GetPositionZ() const
Definition: Position.h:119
float GetOrientation() const
Definition: Position.h:120
float GetPositionX() const
Definition: Position.h:117
void GetPosition(float &x, float &y) const
Definition: Position.h:122
float GetPositionY() const
Definition: Position.h:118
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition: Player.cpp:1311
Definition: InstanceScript.h:140
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:230
void PlayerRelocation(Player *, float x, float y, float z, float o)
Definition: Map.cpp:1003
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:52
virtual void SetData(uint32, uint32)
Definition: ZoneScript.h:53

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().