64#define SPELL_SHATTER DUNGEON_MODE<uint32>(52429,59527)
178 if (_temperCycles < 3 && me->HealthBelowPctDamaged(100.f - (20.f + 20.f *
_temperCycles), damage))
386 temperVisual->SendCustomAnim(0);
390 for (
uint8 i = 0; i < 2; ++i)
#define RegisterSpellScript(spell_script)
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DUMMY
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
T CalculatePct(T base, U pct)
@ SPELL_SUMMON_MOLTEN_GOLEM
@ SPELL_TEMPER_DUMMY_INTRO
@ SPELL_DAZE_IMMUNITY_CANCEL
@ SPELL_TEMPER_DUMMY_COMBAT
@ SPELL_COSMETIC_STUN_IMMUNE_FREEZE_AMNIM
@ SPELL_TEMPER_SUMMON_OBJECT
@ SPELL_IMMOLATION_STRIKE
void AddSC_boss_volkhan()
@ SAY_ANNOUNCE_RUN_TO_ANVIL
@ SAY_ANNOUNCE_SHATTERING_STOMP
static Position const AnvilPosition
@ EVENT_IMMOLATION_STRIKE
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > AfterEffectApply
virtual void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)=0
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
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)
bool IsInPhase(uint8 phase) const
void CancelEvent(uint32 eventId)
void SetPhase(uint8 phase)
Creature * GetCreature(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={})
static Creature * ToCreature(Object *o)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< CastHandler > AfterCast
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
SpellInfo const * GetSpellInfo() const
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
static uint32 DealDamage(Unit *attacker, Unit *victim, uint32 damage, CleanDamage const *cleanDamage=nullptr, DamageEffectType damagetype=DIRECT_DAMAGE, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *spellProto=nullptr, bool durabilityLoss=true)
float GetHealthPct() const
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
uint64 GetMaxHealth() const
bool HasUnitState(const uint32 f) const
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
achievement_shatter_resistant()
bool OnCheck(Player *, Unit *target) override
void HandlePeriodicDummyEffect(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleDummyEffect(SpellEffIndex)
#define RegisterHallsOfLightningCreatureAI(ai_name)
@ DATA_VOLKHAN_TEMPER_VISUAL
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
uint8 _shatteredGolemsCount
void EnterEvadeMode(EvadeReason) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *who) override
void MovementInform(uint32 motionType, uint32 id) override
void JustDied(Unit *killer) override
void JustAppeared() override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void DoAction(int32 action) override
uint32 GetData(uint32 type) const override
void KilledUnit(Unit *who) override
boss_volkhan(Creature *creature)
void EnterEvadeMode(EvadeReason why) override
void JustAppeared() override
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
npc_volkhan_molten_golem(Creature *creature)
void DoAction(int32 action) override
void DamageTaken(Unit *attacker, uint32 &damage, DamageEffectType, SpellInfo const *) override