AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ValithriaDespawner Class Reference
Inheritance diagram for ValithriaDespawner:
BasicEvent

Public Member Functions

 ValithriaDespawner (Creature *creature)
 
bool Execute (uint64, uint32) override
 
void operator() (Creature *creature) const
 
- Public Member Functions inherited from BasicEvent
 BasicEvent ()=default
 
virtual ~BasicEvent ()=default
 
virtual bool IsDeletable () const
 
virtual void Abort (uint64)
 
void ScheduleAbort ()
 

Private Attributes

Creature_creature
 

Detailed Description

Constructor & Destructor Documentation

◆ ValithriaDespawner()

ValithriaDespawner::ValithriaDespawner ( Creature creature)
inlineexplicit
214 : _creature(creature)
215 {
216 }
Creature * _creature
Definition boss_valithria_dreamwalker.cpp:275

Member Function Documentation

◆ Execute()

bool ValithriaDespawner::Execute ( uint64  ,
uint32   
)
inlineoverridevirtual

Reimplemented from BasicEvent.

219 {
221 Cell::VisitObjects(_creature, worker, 333.0f);
222 _creature->AI()->Reset();
223 _creature->setActive(false);
224 return true;
225 }
CreatureAI * AI() const
Definition Creature.h:144
virtual void Reset()
Definition UnitAI.h:211
void setActive(bool isActiveObject)
Definition Object.cpp:1086
Definition GridNotifiers.h:512
static void VisitObjects(WorldObject const *obj, T &visitor, float radius)
Definition CellImpl.h:165

References _creature, Creature::AI(), UnitAI::Reset(), WorldObject::setActive(), and Cell::VisitObjects().

◆ operator()()

void ValithriaDespawner::operator() ( Creature creature) const
inline
228 {
229 switch (creature->GetEntry())
230 {
232 if (InstanceScript* instance = creature->GetInstanceScript())
233 instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, creature);
234 break;
236 if (creature->IsAlive())
237 creature->AI()->Reset();
238 return;
240 case NPC_SUPPRESSER:
243 case NPC_MANA_VOID:
245 case NPC_ROT_WORM:
246 creature->DespawnOrUnsummon();
247 return;
249 creature->DespawnOrUnsummon();
250 return;
251 default:
252 return;
253 }
254
255 uint32 corpseDelay = creature->GetCorpseDelay();
256 uint32 respawnDelay = creature->GetRespawnDelay();
257 creature->SetCorpseDelay(1);
258 creature->SetRespawnDelay(10);
259
260 if (CreatureData const* data = creature->GetCreatureData())
261 creature->SetPosition(data->posX, data->posY, data->posZ, data->orientation);
262 if (!creature->IsAlive())
263 {
264 creature->RemoveCorpse(false);
265 creature->SetRespawnTime(11);
266 }
267 else
268 creature->DespawnOrUnsummon();
269
270 creature->SetCorpseDelay(corpseDelay);
271 creature->SetRespawnDelay(respawnDelay);
272 }
std::uint32_t uint32
Definition Define.h:107
@ ENCOUNTER_FRAME_DISENGAGE
Definition InstanceScript.h:47
void SetRespawnTime(uint32 respawn)
Definition Creature.cpp:3841
void SetRespawnDelay(uint32 delay)
Definition Creature.h:297
void RemoveCorpse(bool setSpawnTime=true, bool skipVisibility=false)
Definition Creature.cpp:418
void SetPosition(float x, float y, float z, float o)
Definition Creature.cpp:3293
CreatureData const * GetCreatureData() const
Definition Creature.h:208
uint32 GetRespawnDelay() const
Definition Creature.h:296
void SetCorpseDelay(uint32 delay)
Definition Creature.h:74
uint32 GetCorpseDelay() const
Definition Creature.h:76
void DespawnOrUnsummon(Milliseconds msTimeToDespawn=0ms, Seconds forcedRespawnTimer=0s)
Definition Creature.cpp:2199
Definition InstanceScript.h:143
uint32 GetEntry() const
Definition Object.h:117
bool IsAlive() const
Definition Unit.h:1793
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1242
@ NPC_THE_LICH_KING_VALITHRIA
Definition icecrown_citadel.h:328
@ NPC_MANA_VOID
Definition icecrown_citadel.h:325
@ NPC_RISEN_ARCHMAGE
Definition icecrown_citadel.h:320
@ NPC_VALITHRIA_DREAMWALKER
Definition icecrown_citadel.h:318
@ NPC_SUPPRESSER
Definition icecrown_citadel.h:322
@ NPC_BLAZING_SKELETON
Definition icecrown_citadel.h:321
@ NPC_ROT_WORM
Definition icecrown_citadel.h:327
@ NPC_GLUTTONOUS_ABOMINATION
Definition icecrown_citadel.h:324
@ NPC_COLUMN_OF_FROST
Definition icecrown_citadel.h:326
@ NPC_BLISTERING_ZOMBIE
Definition icecrown_citadel.h:323
Definition CreatureData.h:370

References Creature::AI(), Creature::DespawnOrUnsummon(), ENCOUNTER_FRAME_DISENGAGE, Creature::GetCorpseDelay(), Creature::GetCreatureData(), Object::GetEntry(), WorldObject::GetInstanceScript(), Creature::GetRespawnDelay(), Unit::IsAlive(), NPC_BLAZING_SKELETON, NPC_BLISTERING_ZOMBIE, NPC_COLUMN_OF_FROST, NPC_GLUTTONOUS_ABOMINATION, NPC_MANA_VOID, NPC_RISEN_ARCHMAGE, NPC_ROT_WORM, NPC_SUPPRESSER, NPC_THE_LICH_KING_VALITHRIA, NPC_VALITHRIA_DREAMWALKER, Creature::RemoveCorpse(), UnitAI::Reset(), Creature::SetCorpseDelay(), Creature::SetPosition(), Creature::SetRespawnDelay(), and Creature::SetRespawnTime().

Member Data Documentation

◆ _creature

Creature* ValithriaDespawner::_creature
private

Referenced by Execute().


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