127 std::list<Creature*> soulEchoes;
130 for (
Creature* soulEcho : soulEchoes)
131 soulEcho->DespawnOrUnsummon();
332 velandras->DespawnOrUnsummon(6s);
338 staellis->DespawnOrUnsummon(6s);
391 creatureCaster->DespawnOrUnsummon(3s);
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ ENCOUNTER_FRAME_DISENGAGE
float frand(float min, float max)
uint32 urand(uint32 min, uint32 max)
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
#define RegisterConversationAI(ai_name)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_CLONE_CASTER
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellEffectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ DATA_BOSS_1_POST_BOSS_DOOR
#define RegisterBlackRookHoldCreatureAI(ai_name)
@ SPELL_SUMMON_MINIBOSS_A
@ SPELL_SECRET_DOOR_CHANNEL_LEFT
@ SPELL_SWIRLING_SCYTHE_DAMAGE
@ SPELL_SOUL_ECHOES_CLONE_CASTER
@ SPELL_START_SPLIT_CONVERSATION
@ SPELL_SOUL_ECHOES_DAMAGE
@ SPELL_CALL_SOULS_AREATRIGGER
@ SPELL_SUMMON_MINIBOSS_B
@ SPELL_SUMMON_MINIBOSS_C
@ SPELL_SECRET_DOOR_CHANNEL_MID
@ SPELL_SECRET_DOOR_CHANNEL_RIGHT
constexpr uint16 RandomAnimKit[3]
constexpr Position VelandrasOutroPosition
@ EVENT_CHECK_ALIVE_SOULS
AmalgamOfSoulsConversation
@ NPC_LADY_VELANDRAS_RAVENCREST
@ NPC_LORD_ETHELDRIN_RAVENCREST
constexpr Position EtheldrinOutroPosition
constexpr Position StaellisOutroPosition
constexpr Position AmalgamOfSoulsPosition
@ SUMMON_GROUP_RESTLESS_SOULS
@ SOUL_ECHOES_STALKER_ANIM_KIT_3
@ SOUL_ECHOES_STALKER_ANIM_KIT_1
@ SOUL_ECHOES_STALKER_ANIM_KIT_2
void AddSC_boss_amalgam_of_souls()
AreaTriggerAI(AreaTrigger *a, uint32 scriptId={}) noexcept
void InitSplines(std::vector< G3D::Vector3 > const &splinePoints, Optional< float > overrideSpeed={}, Optional< bool > speedIsTimeInSeconds={})
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
Conversation *const conversation
LocaleConstant GetPrivateObjectOwnerLocale() const
Milliseconds GetLastLineEndTime(LocaleConstant locale) const
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void CancelEvent(uint32 eventId)
Creature * GetCreature(uint32 type)
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
GameObject * GetGameObject(uint32 type)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={}, Optional< MovementFadeObject > fadeObject={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
Movement::PointsArray const & GetPath() const
bool CalculatePath(float srcX, float srcY, float srcZ, float destX, float destY, float destZ, bool forceDest=false)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< CastHandler > AfterCast
HookList< EffectHandler > OnEffectHitTarget
TaskScheduler & Schedule(duration_t time, task_handler_t task)
TaskScheduler & Update()
Update the scheduler to the current time.
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCast(uint32 spellId)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
MotionMaster * GetMotionMaster()
bool HealthBelowPctDamaged(float pct, uint32 damage) const
bool HasUnitState(const uint32 f) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetAIAnimKitId(uint16 animKitId)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
conversation_amalgam_of_souls_outro(Conversation *conversation)
void OnUpdate(uint32 diff) override
void HandleHitTarget(SpellEffIndex) const
void HandleAfterCast() const
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes) const
void OnApply(AuraEffect const *, AuraEffectHandleModes) const
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetPositionZ() const
bool IsHeroicOrHigher() const
void OnUnitEnter(Unit *unit) override
void OnInitialize() override
void OnUnitEnter(Unit *unit) override
void JustEngagedWith(Unit *who) override
void MovementInform(uint32, uint32 id) override
boss_amalgam_of_souls(Creature *creature)
void EnterEvadeMode(EvadeReason) override
void DespawnSoulEchoes() const
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_amalgam_of_souls_lord_etheldrin_ravencrest(Creature *creature)
void UpdateAI(uint32 diff) override
void JustAppeared() override
void MovementInform(uint32, uint32 id) override
void JustAppeared() override
npc_amalgam_of_souls_restless_soul(Creature *creature)
void MovementInform(uint32, uint32 id) override
void IsSummonedBy(WorldObject *summoner) override
npc_amalgam_of_souls_soul_echoes_stalker(Creature *creature)