uint32 urand(uint32 min, uint32 max)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_TELEPORT_UNITS
@ TARGET_DEST_CASTER_RANDOM
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
#define RegisterBlackTempleCreatureAI(ai_name)
void AddSC_boss_mother_shahraz()
uint32 const PrismaticAuras[6]
uint32 const RandomBeam[4]
uint32 const BeamTriggers[4]
@ SPELL_SABER_LASH_IMMUNITY
@ SPELL_SINISTER_PERIODIC
@ SPELL_PRISMATIC_AURA_NATURE
@ SPELL_PRISMATIC_AURA_FIRE
@ SPELL_FATAL_ATTRACTION_TELEPORT
@ SPELL_PRISMATIC_AURA_SHADOW
@ SPELL_PRISMATIC_AURA_FROST
@ SPELL_PRISMATIC_AURA_HOLY
@ SPELL_PRISMATIC_AURA_ARCANE
@ SPELL_FATAL_ATTRACTION_DAMAGE
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
HookList< EffectPeriodicHandler > OnEffectPeriodic
Unit * GetUnitOwner() const
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void Repeat(Milliseconds time)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_mother_shahraz_fatal_attraction_link)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_mother_shahraz_fatal_attraction)
void SetDest(SpellDestination &dest)
void HandleTeleport(SpellEffIndex)
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
bool Validate(SpellInfo const *spellInfo) override
void OnTrigger(AuraEffect const *aurEff)
PrepareAuraScript(spell_mother_shahraz_generic_periodic)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_mother_shahraz_random_periodic)
void OnPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *spellInfo) override
void OnTrigger(AuraEffect const *aurEff)
PrepareAuraScript(spell_mother_shahraz_saber_lash)
void Relocate(Position const &pos)
void JustEngagedWith(Unit *who) override
void KilledUnit(Unit *victim) override
void ExecuteEvent(uint32 eventId) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void EnterEvadeMode(EvadeReason) override
boss_mother_shahraz(Creature *creature)
void JustDied(Unit *) override