324 { 794.0522f, -0.96732f, 48.97848f, 0.0f },
325 { 796.641f, -0.5888171f, 48.72847f, 3.176499f },
326 { 795.007f, -0.471827f, 75.0f, 0.0f },
327 { 795.007f, -0.471827f, 75.0f, 3.133458f },
328 { 792.419f, -0.504778f, 50.0505f, 0.0f },
329 { 792.419f, -0.504778f, 50.0505f, 3.130386f }
368 statue->ResetDoorOrButton();
371 statue->ResetDoorOrButton();
374 window->ResetDoorOrButton();
399 creature->Respawn(
true);
401 creature->AI()->EnterEvadeMode();
584 advisor->AI()->AttackStart(target);
706 statue->UseDoorOrButton();
709 statue->UseDoorOrButton();
712 window->UseDoorOrButton();
784 Kaelthas->AI()->EnterEvadeMode();
1110 Unit* target =
nullptr;
1377 caster->
CastSpell(caster, spells,
true);
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_CORPSE_DESPAWN
uint32 urand(uint32 min, uint32 max)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ AURA_STATE_WOUNDED_20_PERCENT
@ AURA_STATE_WOUNDED_35_PERCENT
@ AURA_STATE_WOUND_HEALTH_20_80
@ AURA_STATE_WOUNDED_25_PERCENT
@ AURA_EFFECT_HANDLE_REAL
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_IGNORE_POWER_AND_REAGENT_COST
Will ignore power and reagent cost.
#define SpellEffectFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG_NON_ATTACKABLE
@ ACTION_SCHEDULE_COMBAT_EVENTS
@ ACTION_PREPARE_ADVISORS
@ SPELL_CAPERNIAN_FIREBALL
@ SPELL_GRAVITY_LAPSE_TELE_BACK
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK_RIGHT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK_RIGHT3
@ SPELL_FLAME_STRIKE_DAMAGE
@ SPELL_GRAVITY_LAPSE_FLIGHT_AURA
@ SPELL_NETHER_BEAM_VISUAL
@ SPELL_GRAVITY_LAPSE_TELE_BACK_LEFT
@ SPELL_GRAVITY_LAPSE_PERIODIC
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_RIGHT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK_RIGHT2
@ SPELL_PHOENIX_ANIMATION
@ SPELL_NETHER_BEAM_VISUAL3
@ SPELL_GRAVITY_LAPSE_TELE_FRONT_RIGHT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_LEFT
@ SPELL_SUMMON_NETHER_VAPOR
@ SPELL_ARCANE_DISRUPTION
@ SPELL_GRAVITY_LAPSE_TELE_FRONT_LEFT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_FRONT2
@ SPELL_GRAVITY_LAPSE_TELE_FRONT_LEFT3
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK_LEFT2
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_FRONT_RIGHT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK_LEFT
@ SPELL_GRAVITY_LAPSE_TELE_FRONT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_FRONT
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_LEFT2
@ SPELL_GRAVITY_LAPSE_TELE_TO_CASTER
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK
@ SPELL_GRAVITY_LAPSE_TELE_FRONT_RIGHT2
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_RIGHT2
@ SPELL_GRAVITY_LAPSE_TELE_FRONT_LEFT2
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_FRONT_LEFT
@ SPELL_SUMMON_FLAME_STRIKE
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_BACK2
@ SPELL_KAEL_GAINING_POWER
@ SPELL_GRAVITY_LAPSE_TELE_CASTER_LEFT3
@ SPELL_NETHER_BEAM_VISUAL2
@ SPELL_FLAME_STRIKE_DUMMY
constexpr uint32 GravityLapseSpells[]
constexpr uint32 RemoveWeaponsSpells[]
@ POINT_TRANSITION_HALFWAY_DESCENDING
@ POINT_TRANSITION_HALFWAY_ASCENDING
@ POINT_TRANSITION_CENTER_ASCENDING
constexpr uint32 SummonWeaponsSpells[]
void AddSC_boss_kaelthas()
constexpr Position TransitionPos[6]
constexpr float CAPERNIAN_DISTANCE
@ EVENT_ARCANE_DISRUPTION
@ EVENT_DELAYED_RESSURECTION
HookList< EffectApplyHandler > AfterEffectRemove
InstanceScript *const instance
void JustReachedHome() override
virtual void MoveInLineOfSight(Unit *)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
void SetObjectScale(float scale) override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetTarget(ObjectGuid const &guid) override
void DelayEvents(Milliseconds delay)
void CancelEventGroup(uint32 group)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void SetPhase(uint8 phase)
virtual bool SetBossState(uint32 id, EncounterState state)
virtual ObjectGuid GetGuidData(uint32 type) const override
EncounterState GetBossState(uint32 id) const
GameObject * GetGameObject(uint32 type)
void MoveChase(Unit *target, Optional< ChaseRange > dist={}, Optional< ChaseAngle > angle={})
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Player * GetHitPlayer() const
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
void Summon(Creature const *summon)
Trinity::IteratorPair< ThreatListIterator, std::nullptr_t > GetUnsortedThreatList() const
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 DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
bool IsWithinMeleeRange(Unit const *obj) const
void SetHealth(uint64 val)
int64 ModifyHealth(int64 val)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
ThreatManager & GetThreatManager()
void SetInCombatWith(Unit *enemy, bool addSecondUnitSuppressed=false)
Spell * FindCurrentSpellBySpellId(uint32 spell_id) const
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
bool HasUnitFlag(UnitFlags flags) const
void RemoveAllAurasOnDeath()
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
void SetEmoteState(Emote emote)
void ModifyAuraState(AuraStateType flag, bool apply)
bool Attack(Unit *victim, bool meleeAttack)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
void RemoveUnitMovementFlag(uint32 f)
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
void SetUnitFlag(UnitFlags flags)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveUnitFlag(UnitFlags flags)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool IsValidAttackTarget(WorldObject const *target, SpellInfo const *bySpell=nullptr) const
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
bool Validate(SpellInfo const *) override
spell_kael_gravity_lapse()
void HandleScript(SpellEffIndex)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void DoStartNoMovement(Unit *target)
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
void ResetThreatList(Unit *who=nullptr)
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void MoveInLineOfSight(Unit *who) override
advisorbase_ai(Creature *creature)
void AttackStart(Unit *who) override
== Triggered Actions Requested ==================
ObjectGuid DelayRes_Target
InstanceScript * instance
void DamageTaken(Unit *killer, uint32 &damage, DamageEffectType, SpellInfo const *) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
uint32 Conflagration_Timer
boss_grand_astromancer_capernian(Creature *creature)
void AttackStart(Unit *who) override
== Triggered Actions Requested ==================
uint32 ArcaneExplosion_Timer
void JustDied(Unit *killer) override
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
ObjectGuid _advisorGuid[MAX_ADVISORS]
boss_kaelthas(Creature *creature)
void KilledUnit(Unit *) override
void JustDied(Unit *) override
void MoveInLineOfSight(Unit *who) override
void UpdateAI(uint32 diff) override
void JustReachedHome() override
void MovementInform(uint32 type, uint32 point) override
void DoAction(int32 action) override
void JustSummoned(Creature *summoned) override
void DamageTaken(Unit *attacker, uint32 &damage, DamageEffectType, SpellInfo const *) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
boss_lord_sanguinar(Creature *creature)
void JustDied(Unit *killer) override
void JustDied(Unit *killer) override
void UpdateAI(uint32 diff) override
boss_master_engineer_telonicus(Creature *creature)
void JustEngagedWith(Unit *) override
void JustEngagedWith(Unit *who) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *killer) override
boss_thaladred_the_darkener(Creature *creature)
npc_kael_flamestrike(Creature *creature)
void InitializeAI() override
void JustAppeared() override
void JustSummoned(Creature *summoned) override
void AttackStart(Unit *who) override
== Triggered Actions Requested ==================
void MoveInLineOfSight(Unit *) override
npc_phoenix_egg_tk(Creature *creature)
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
npc_phoenix_tk(Creature *creature)
#define RegisterTheEyeCreatureAI(ai_name)
@ DATA_TEMPEST_BRIDGE_WINDOW