128 std::vector<uint32> bossData;
130 if (data != exception)
131 bossData.emplace_back(data);
195 council->LowerPlayerDamageReq(council->GetMaxHealth());
275 illidari->AI()->EnterEvadeMode(why);
332 std::list<Unit*> TargetList;
337 if (!TargetList.empty())
724 caster->
CastSpell(target, judgementId,
true);
759 target->
CastSpell(target, spellId,
true);
First const & RAND(First const &first, Second const &second, Rest const &... rest)
std::chrono::seconds Seconds
Seconds shorthand typedef.
@ ENCOUNTER_FRAME_DISENGAGE
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ AURA_EFFECT_HANDLE_REAL
@ AURA_REMOVE_BY_ENEMY_SPELL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectRemoveFn(F, I, N, M)
#define RegisterBlackTempleCreatureAI(ai_name)
@ DATA_HIGH_NETHERMANCER_ZEREVOR
@ DATA_GATHIOS_THE_SHATTERER
@ EVENT_REFLECTIVE_SHIELD
@ EVENT_CIRCLE_OF_HEALING
@ EVENT_HAMMER_OF_JUSTICE
@ EVENT_EMPYREAL_EQUIVALENCY
@ EVENT_ARCANE_EXPLOSION_CHECK
void AddSC_boss_illidari_council()
uint32 const CouncilData[4]
@ SPELL_CIRCLE_OF_HEALING
@ SPELL_HAMMER_OF_JUSTICE
@ SPELL_JUDGEMENT_OF_COMMAND
@ SPELL_EMPYREAL_EQUIVALENCY
@ SPELL_REFLECTIVE_SHIELD
@ SPELL_REFLECTIVE_SHIELD_DAMAGE
@ SPELL_JUDGEMENT_OF_BLOOD
@ SPELL_BLESS_SPELL_WARDING
static uint32 GetRandomBossExcept(uint32 exception)
AuraRemoveMode GetRemoveMode() const
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectAbsorbHandler > AfterEffectAbsorb
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< EffectApplyHandler > OnEffectRemove
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
virtual bool CanSeeAlways(WorldObject const *)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void SetBoundary(CreatureBoundary const *boundary, bool negativeBoundaries=false)
void SetCombatPulseDelay(uint32 delay)
void SetCanMelee(bool canMelee, bool fleeFromMelee=false)
bool IsInEvadeMode() const
Unit * GetAttacker() const
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
HammerTargetSelector(Unit const *unit)
bool operator()(Unit *unit) const
virtual bool SetBossState(uint32 id, EncounterState state)
Creature * GetCreature(uint32 type)
CreatureBoundary const * GetBossBoundary(uint32 id) const
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
static ObjectGuid GetGUID(Object const *o)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< CastHandler > AfterCast
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
TaskScheduler & Schedule(std::chrono::duration< Rep, Period > time, task_handler_t task)
TaskScheduler & Update(success_t const &callback=nullptr)
bool DoSpellAttackIfReady(uint32 spellId)
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 SetHealth(uint64 val)
uint64 CountPctFromCurHealth(int32 pct) const
void SetMaxHealth(uint64 val)
bool HasUnitState(const uint32 f) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void setActive(bool isActiveObject)
bool IsInRange(WorldObject const *obj, float minRange, float maxRange, bool is3D=true) const
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
void Absorb(AuraEffect *aurEff, DamageInfo &dmgInfo, uint32 &)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void OnTrigger(AuraEffect const *aurEff)
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void OnAbsorb(AuraEffect *aurEff, DamageInfo &dmgInfo, uint32 &absorbAmount)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *aurEff, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
void DamageTaken(Unit *who, uint32 &damage, DamageEffectType, SpellInfo const *) override
virtual void ScheduleEvents()=0
IllidariCouncilBossAI(Creature *creature, uint32 bossId)
void EnterEvadeMode(EvadeReason why) override
void KilledUnit(Unit *victim) override
void JustEngagedWith(Unit *) override
void JustDied(Unit *) override
boss_gathios_the_shatterer(Creature *creature)
void ScheduleEvents() override
void ExecuteEvent(uint32 eventId) override
bool _canUseArcaneExplosion
void ExecuteEvent(uint32 eventId) override
boss_high_nethermancer_zerevor(Creature *creature)
void ScheduleEvents() override
void DoAction(int32 actionId) override
void UpdateAI(uint32 diff) override
boss_illidari_council(Creature *creature)
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void EnterEvadeMode(EvadeReason) override
void UpdateAI(uint32 diff) override
void ExecuteEvent(uint32 eventId) override
void HealReceived(Unit *, uint32 &addhealth) override
void UpdateAI(uint32 diff) override
boss_lady_malande(Creature *creature)
void ScheduleEvents() override
void ScheduleEvents() override
boss_veras_darkshadow(Creature *creature)
bool CanSeeAlways(WorldObject const *who) override
void ExecuteEvent(uint32 eventId) override
void UpdateAI(uint32 diff) override
npc_veras_vanish_effect(Creature *creature)