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

Public Member Functions

 AreaTrigger_at_area_52_entrance ()
 
bool OnTrigger (Player *player, AreaTrigger const *trigger) 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
 

Private Attributes

std::map< uint32, time_t > _triggerTimes
 

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

◆ AreaTrigger_at_area_52_entrance()

AreaTrigger_at_area_52_entrance::AreaTrigger_at_area_52_entrance ( )
inline
432 : AreaTriggerScript("at_area_52_entrance")
433 {
435 }
@ AT_AREA_52_EAST
Definition: areatrigger_scripts.cpp:426
@ AT_AREA_52_WEST
Definition: areatrigger_scripts.cpp:425
@ AT_AREA_52_NORTH
Definition: areatrigger_scripts.cpp:424
@ AT_AREA_52_SOUTH
Definition: areatrigger_scripts.cpp:423
Definition: AreaTriggerScript.h:24
std::map< uint32, time_t > _triggerTimes
Definition: areatrigger_scripts.cpp:479

References _triggerTimes, AT_AREA_52_EAST, AT_AREA_52_NORTH, AT_AREA_52_SOUTH, and AT_AREA_52_WEST.

Member Function Documentation

◆ OnTrigger()

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

Reimplemented from AreaTriggerScript.

438 {
439 float x = 0.0f, y = 0.0f, z = 0.0f;
440
441 if (!player->IsAlive())
442 return false;
443
444 uint32 triggerId = trigger->entry;
445 if (GameTime::GetGameTime().count() - _triggerTimes[trigger->entry] < SUMMON_COOLDOWN)
446 return false;
447
448 switch (triggerId)
449 {
450 case AT_AREA_52_EAST:
451 x = 3044.176f;
452 y = 3610.692f;
453 z = 143.61f;
454 break;
455 case AT_AREA_52_NORTH:
456 x = 3114.87f;
457 y = 3687.619f;
458 z = 143.62f;
459 break;
460 case AT_AREA_52_WEST:
461 x = 3017.79f;
462 y = 3746.806f;
463 z = 144.27f;
464 break;
465 case AT_AREA_52_SOUTH:
466 x = 2950.63f;
467 y = 3719.905f;
468 z = 143.33f;
469 break;
470 }
471
472 player->SummonCreature(NPC_SPOTLIGHT, x, y, z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5000);
473 player->AddAura(SPELL_A52_NEURALYZER, player);
474 _triggerTimes[trigger->entry] = GameTime::GetGameTime().count();
475 return false;
476 }
std::uint32_t uint32
Definition: Define.h:108
@ TEMPSUMMON_TIMED_DESPAWN
Definition: Object.h:44
@ SUMMON_COOLDOWN
Definition: areatrigger_scripts.cpp:421
@ NPC_SPOTLIGHT
Definition: areatrigger_scripts.cpp:420
@ SPELL_A52_NEURALYZER
Definition: areatrigger_scripts.cpp:419
Seconds GetGameTime()
Definition: GameTime.cpp:38
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2343
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:19127
bool IsAlive() const
Definition: Unit.h:1822

References _triggerTimes, Unit::AddAura(), AT_AREA_52_EAST, AT_AREA_52_NORTH, AT_AREA_52_SOUTH, AT_AREA_52_WEST, AreaTrigger::entry, GameTime::GetGameTime(), Unit::IsAlive(), NPC_SPOTLIGHT, SPELL_A52_NEURALYZER, SUMMON_COOLDOWN, WorldObject::SummonCreature(), and TEMPSUMMON_TIMED_DESPAWN.

Member Data Documentation

◆ _triggerTimes

std::map<uint32, time_t> AreaTrigger_at_area_52_entrance::_triggerTimes
private