205 std::vector<Creature*> _worldTriggerList;
208 if (_worldTriggerList.empty())
213 _worldTriggerList.resize(21);
215 for (
uint8 i = 0; i < 21; i++)
217 Creature* wTrigger = _worldTriggerList[i];
237 std::vector<Creature*> _worldTriggerList;
240 if (_worldTriggerList.empty())
243 for (
Creature* trigger : _worldTriggerList)
244 trigger->m_Events.KillAllEvents(
true);
603 reliquary->AI()->JustSummoned(
me);
702 reliquary->AI()->EnterEvadeMode(why);
735 if (!damageInfo || !damageInfo->
GetDamage())
745 effect->ChangeAmount(effect->GetAmount() - 5);
763 aurEff1->ChangeAmount(aurEff1->GetAmount() + 5);
#define RegisterSpellScript(spell_script)
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_MOD_HEALING_PCT
@ SPELL_AURA_DAMAGE_IMMUNITY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define AuraEffectProcFn(F, I, N)
#define AuraEffectUpdatePeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_STAND_STATE_SUBMERGED
#define RegisterBlackTempleCreatureAI(ai_name)
@ DATA_ESSENCE_OF_SUFFERING
@ DATA_RELIQUARY_COMBAT_TRIGGER
@ DATA_RELIQUARY_OF_SOULS
@ NPC_RELIQUARY_WORLD_TRIGGER
void AddSC_boss_reliquary_of_souls()
@ ACTION_ESSENCE_OF_DESIRE_DEAD
@ RELIQUARY_DESPAWN_WAYPOINT
@ ACTION_ESSENCE_OF_SUFFERING_DEAD
@ PHASE_ESSENCE_OF_SUFFERING
@ PHASE_ESSENCE_OF_DESIRE
@ EVENT_START_CHECK_TANKER
@ SPELL_ENSLAVED_SOUL_PASSIVE
@ SPELL_SUMMON_ESSENCE_OF_DESIRE
@ SPELL_SUMMON_ESSENCE_OF_SUFFERING
@ SPELL_AURA_OF_DESIRE_DAMAGE
@ SPELL_SUMMON_ESSENCE_OF_ANGER
@ SPELL_AURA_OF_SUFFERING
Position const DespawnPoint
uint32 GetTickNumber() const
void SetAmount(int32 amount)
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectUpdatePeriodicHandler > OnEffectUpdatePeriodic
AuraEffect * GetEffect(uint8 effIndex) const
HookList< EffectProcHandler > OnEffectProc
AuraEffect * GetEffect(uint8 effIndex) const
InstanceScript *const instance
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
void DoZoneInCombat(Creature *creature=nullptr)
bool IsInBoundary(Position const *who=nullptr) const
void SetBoundary(CreatureBoundary const *boundary, bool negativeBoundaries=false)
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void SetCombatPulseDelay(uint32 delay)
bool IsEngaged() const override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
EnslavedSoulEvent(Creature *owner)
bool Execute(uint64, uint32) override
void Repeat(Milliseconds time)
bool IsInPhase(PhaseIndex phase) const
void SetPhase(PhaseIndex phase)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
virtual bool SetBossState(uint32 id, EncounterState state)
Creature * GetCreature(uint32 type)
CreatureBoundary const * GetBossBoundary(uint32 id) const
EncounterState GetBossState(uint32 id) const
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
bool IsGameMaster() const
DamageInfo * GetDamageInfo() const
HookList< CastHandler > AfterCast
void Summon(Creature const *summon)
void DoAction(int32 info, Predicate &&predicate, uint16 max=0)
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
TaskScheduler & Update(success_t const &callback=EmptyCallback)
void DoMeleeAttackIfReady()
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual bool CanAIAttack(Unit const *) const
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
void KillSelf(bool durabilityLoss=true)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
void SetStandState(UnitStandStateType state)
void GetCreatureListWithEntryInGrid(Container &creatureContainer, uint32 entry, float maxSearchRange=250.0f) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void setActive(bool isActiveObject)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
PrepareAuraScript(spell_reliquary_of_souls_aura_of_anger)
void HandleEffectPeriodicUpdate(AuraEffect *aurEff)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_reliquary_of_souls_aura_of_desire)
void OnProcSpell(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void UpdateAmount(AuraEffect *)
PrepareSpellScript(spell_reliquary_of_souls_frenzy)
PrepareAuraScript(spell_reliquary_of_souls_spite)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_reliquary_of_souls_submerge)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void RandomShuffle(C &container)
Reorder the elements of the container randomly.
void SetCombatMovement(bool allowMovement)
void DoPlaySoundToSet(WorldObject *source, uint32 soundId)
void UpdateAI(uint32 diff) override
boss_essence_of_anger(Creature *creature)
void JustEngagedWith(Unit *) override
void JustDied(Unit *) override
boss_essence_of_desire(Creature *creature)
void MovementInform(uint32 motionType, uint32 pointId) override
void KilledUnit(Unit *victim) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
boss_essence_of_suffering(Creature *creature)
void KilledUnit(Unit *victim) override
void MovementInform(uint32 motionType, uint32 pointId) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
boss_reliquary_of_souls(Creature *creature)
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void JustSummoned(Creature *summon) override
void EnterEvadeMode(EvadeReason) override
void DoAction(int32 actionId) override
InstanceScript * _instance
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_enslaved_soul(Creature *creature)
void DoAction(int32 actionId) override
void UpdateAI(uint32 diff) override
void DoAction(int32 actionId) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
InstanceScript * _instance
bool CanAIAttack(Unit const *who) const override
void UpdateAI(uint32) override
void MoveInLineOfSight(Unit *who) override
npc_reliquary_combat_trigger(Creature *creature)
void EnterEvadeMode(EvadeReason why) override