128 ladyWaycrest->AI()->EnterEvadeMode(why);
165 ladyWaycrest->AI()->DoZoneInCombat();
177 if (ladyWaycrest->IsAlive())
270 lordWaycrest->AI()->EnterEvadeMode(why);
282 lordWaycrest->AI()->DoZoneInCombat();
296 if (lordWaycrest->IsAlive())
468 static constexpr Seconds TRAVEL_SPEED = 2s;
std::chrono::seconds Seconds
Seconds shorthand typedef.
@ ENCOUNTER_FRAME_DISENGAGE
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ AURA_EFFECT_HANDLE_REAL
@ AURA_REMOVE_BY_ENEMY_SPELL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_PERIODIC_DUMMY
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
LordAndLadyWaycrestVisual
@ SPELL_VISUAL_DISCORDANT_CADENZA_MISSILE
LordAndLadyWaycrestActions
@ ACTION_HEAL_AND_JOIN_FIGHT
@ ACTION_HEAL_LORD_WAYCREST
void AddSC_boss_lord_and_lady_waycrest()
LordAndLadyWaycrestSpells
@ SPELL_CONTAGIOUS_REMNANTS
@ SPELL_DISCORDANT_CADENZA_DAMAGE
@ SPELL_VITALITY_TRANSFER
@ SPELL_LORD_WAYCREST_DUMMY_ABSORB
@ SPELL_WRACKING_CHORD_SELECTOR
@ SPELL_VIRULENT_PATHOGEN_DAMAGE
@ SPELL_WRACKING_CHORD_DAMAGE
@ SPELL_DISCORDANT_CADENZA
@ SPELL_VIRULENT_PATHOGEN_SELECTOR
@ SPELL_VIRULENT_PATHOGEN_INFECT_AREA
constexpr Position LordWaycrestCombatPosition
LordAndLadyWaycrestEvents
@ EVENT_DISCORDANT_CADENZA
@ EVENT_VIRULENT_PATHOGEN
uint32 GetTickNumber() const
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
InstanceScript *const instance
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void SetBoundary(CreatureBoundary const *boundary, bool negativeBoundaries=false)
bool IsInEvadeMode() const
DiscordantCadenzaDamageEvent(Unit *caster, Position dest)
bool Execute(uint64, uint32) override
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
virtual bool SetBossState(uint32 id, EncounterState state)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
Creature * GetCreature(uint32 type)
CreatureBoundary const * GetBossBoundary(uint32 id) const
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
bool IsHeroicOrHigher() const
void MoveJump(uint32 id, Position const &pos, std::variant< std::monostate, float, Milliseconds > speedOrTime={}, Optional< float > minHeight={}, Optional< float > maxHeight={}, MovementFacingTarget const &facing={}, bool orientationFixed=false, bool unlimitedSpeed=false, Optional< float > speedMultiplier={}, JumpArrivalCastArgs const *arrivalCast=nullptr, Movement::SpellEffectExtraData const *spellEffectExtraData=nullptr, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void SetHealth(uint64 val)
uint64 CountPctFromMaxHealth(float pct) const
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
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)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void SendPlayOrphanSpellVisual(Position const &sourceLocation, ObjectGuid const &target, uint32 spellVisualId, float travelSpeed, bool speedAsTime=false, bool withSourceOrientation=false)
void HandleDamage(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDamage(AuraEffect const *, AuraEffectHandleModes)
void HandleHitTarget(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandlePeriodic(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex)
void HandleHitTarget(SpellEffIndex)
bool Validate(SpellInfo const *) override
constexpr void GetPosition(float &x, float &y) const
void KilledUnit(Unit *victim) override
boss_lady_waycrest(Creature *creature)
void JustEngagedWith(Unit *) override
void DoAction(int32 actionId) override
void UpdateAI(uint32 diff) override
void ExecuteEvent(uint32 eventId) override
void JustDied(Unit *) override
void EnterEvadeMode(EvadeReason why) override
void EnterEvadeMode(EvadeReason why) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustDied(Unit *) override
boss_lord_waycrest(Creature *creature)
void JustEngagedWith(Unit *) override
void ExecuteEvent(uint32 eventId) override
void KilledUnit(Unit *victim) override
void UpdateAI(uint32 diff) override
#define RegisterWaycrestManorCreatureAI(ai_name)
@ DATA_LORD_AND_LADY_WAYCREST