388 {1945.682f, 33.34201f, 411.4408f, 5.270895f},
389 {1945.761f, -81.52171f, 411.4407f, 1.029744f},
390 {2028.822f, -65.73573f, 411.4426f, 2.460914f},
391 {2028.766f, 17.42014f, 411.4446f, 3.857178f},
395 {2036.873f, 25.42513f, 338.4984f, 3.909538f},
396 {1939.045f, -90.87457f, 338.5426f, 0.994837f},
397 {1939.148f, 42.49035f, 338.5427f, 5.235988f},
398 {2036.658f, -73.58822f, 338.4985f, 2.460914f},
402 {1928.793f, 65.03109f, 242.3763f, 0.0f},
403 {1912.324f, -155.7967f, 239.9896f, 0.0f},
453 creature->AI()->EnterEvadeMode();
458 if (
Player* player = itr->GetSource())
478 bool clockwise =
false;
479 std::list<TempSummon*> clouds;
482 for (std::list<TempSummon*>::const_iterator itr = clouds.begin(); itr != clouds.end(); ++itr)
484 (*itr)->AI()->DoAction(
int32(clockwise));
485 clockwise = !clockwise;
492 sara->SetInCombatWith(
me);
496 keeper->SetInCombatWith(
me);
663 return GetUlduarAI<boss_voice_of_yogg_saronAI>(creature);
678 std::map<ObjectGuid, ObjectGuid>::const_iterator itr =
_linkData.find(guid);
723 switch (spellInfo->
Id)
856 for (
uint8 i = 0; i < 4; ++i)
859 float radius =
frand(25.0f, 50.0f);
860 float angle =
frand(0.0f, 2.0f *
float(
M_PI));
873 voice->AI()->JustSummoned(summon);
896 return GetUlduarAI<boss_saraAI>(creature);
919 if (keepersCount == 0)
921 if (keepersCount <= 1)
923 if (keepersCount <= 2)
925 if (keepersCount <= 3)
945 creature->DisappearAndDie();
949 creature->AI()->EnterEvadeMode();
953 if (
Player* player = itr->GetSource())
1023 return GetUlduarAI<boss_yogg_saronAI>(creature);
1124 return GetUlduarAI<boss_brain_of_yogg_saronAI>(creature);
1155 return GetUlduarAI<npc_ominous_cloudAI>(creature);
1212 voice->AI()->JustSummoned(
me);
1222 return GetUlduarAI<npc_guardian_of_yogg_saronAI>(creature);
1279 return GetUlduarAI<npc_corruptor_tentacleAI>(creature);
1315 voice->AI()->JustSummoned(
me);
1324 return GetUlduarAI<npc_constrictor_tentacleAI>(creature);
1385 return GetUlduarAI<npc_crusher_tentacleAI>(creature);
1417 return GetUlduarAI<npc_influence_tentacleAI>(creature);
1434 if (!spellClickHandled)
1452 return GetUlduarAI<npc_descend_into_madnessAI>(creature);
1510 return GetUlduarAI<npc_immortal_guardianAI>(creature);
1531 if (menuId != 10333)
1563 return GetUlduarAI<npc_observation_ring_keeperAI>(creature);
1592 std::list<Creature*> wells;
1594 for (std::list<Creature*>::const_iterator itr = wells.begin(); itr != wells.end(); ++itr)
1669 std::list<Creature*> wells;
1671 for (std::list<Creature*>::const_iterator itr = wells.begin(); itr != wells.end(); ++itr)
1691 return GetUlduarAI<npc_yogg_saron_keeperAI>(creature);
1812 return GetUlduarAI<npc_yogg_saron_illusionsAI>(creature);
1875 return GetUlduarAI<npc_garonaAI>(creature);
1913 return GetUlduarAI<npc_turned_championAI>(creature);
1938 return GetUlduarAI<npc_laughing_skullAI>(creature);
1999 return sanity->GetStackAmount() <= 40;
2127 if (targets.size() != 2)
2134 ai->SetLinkBetween(targets.front()->GetGUID(), targets.back()->GetGUID());
2161 ai->RemoveLinkFrom(
GetTarget()->GetGUID());
2166 ai->RemoveLinkFrom(
GetTarget()->GetGUID());
2450 if (vehicle->IsAlive())
2451 vehicle->KillSelf();
2522 float stack = std::ceil((target->
GetHealthPct() / 10) - 1);
2562 target->SetHealth(target->CountPctFromMaxHealth((
int32)
GetCaster()->GetHealthPct()));
2627 caster->GetMotionMaster()->MoveConfused();
2762 if (!damageInfo || !damageInfo->
GetDamage())
2980 return !
object->HasInArc(
static_cast<float>(
M_PI),
_caster);
3072 if (
GetCaster()->GetDistance(yogg) > 20.0f)
First const & RAND(First const &first, Second const &second, Rest const &... rest)
@ ACHIEVEMENT_TIMED_TYPE_EVENT
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ TEMPSUMMON_TIMED_DESPAWN
float frand(float min, float max)
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_FAILED_OUT_OF_RANGE
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ AURA_REMOVE_BY_ENEMY_SPELL
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckAreaTargetFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG_UNINTERACTIBLE
@ CURRENT_CHANNELED_SPELL
T CalculatePct(T base, U pct)
@ EVENT_GROUP_SUMMON_TENTACLES
@ ACHIEV_TIMED_START_EVENT
@ ACTION_TOGGLE_SHATTERED_ILLUSION
Position const ObservationRingKeepersPos[4]
@ EMOTE_BRAIN_ILLUSION_SHATTERED
@ SAY_STORMWIND_ROLEPLAY_6
@ SAY_ICECROWN_ROLEPLAY_6
@ EMOTE_YOGG_SARON_EXTINGUISH_ALL_LIFE
@ SAY_SARA_ULDUAR_SCREAM_1
@ SAY_ICECROWN_ROLEPLAY_3
@ SAY_SARA_ULDUAR_SCREAM_2
@ SAY_STORMWIND_ROLEPLAY_3
@ SAY_STORMWIND_ROLEPLAY_1
@ SAY_STORMWIND_ROLEPLAY_5
@ EMOTE_OMINOUS_CLOUD_PLAYER_TOUCH
@ EMOTE_YOGG_SARON_MADNESS
@ SAY_STORMWIND_ROLEPLAY_4
@ SAY_ICECROWN_ROLEPLAY_5
@ SAY_STORMWIND_ROLEPLAY_7
@ EMOTE_YOGG_SARON_EMPOWERING_SHADOWS
@ SAY_ICECROWN_ROLEPLAY_2
@ SAY_YOGG_SARON_DEAFENING_ROAR
@ SAY_ICECROWN_ROLEPLAY_4
@ SAY_ICECROWN_ROLEPLAY_1
@ SAY_STORMWIND_ROLEPLAY_2
@ EMOTE_YOGG_SARON_DEAFENING_ROAR
@ WHISPER_VOICE_PHASE_1_WIPE
Position const IllusionsMiscPos[2]
Position const YoggSaronSpawnPos
@ SPELL_TELEPORT_BACK_TO_MAIN_ROOM
@ SPELL_TELEPORT_PORTAL_VISUAL
@ SPELL_BRAIN_LINK_DAMAGE
@ SPELL_SPEED_OF_INVENTION
@ SPELL_LOW_SANITY_SCREEN_EFFECT
@ SPELL_DEATH_RAY_ORIGIN_VISUAL
@ SPELL_SANITY_WELL_VISUAL
@ SPELL_TENTACLE_VOID_ZONE
@ SPELL_DEATH_RAY_DAMAGE_VISUAL
@ SPELL_BRAIN_LINK_NO_DAMAGE
@ SPELL_SHADOWY_BARRIER_YOGG
@ SPELL_DEATH_RAY_PERIODIC
@ SPELL_MALADY_OF_THE_MIND_JUMP
@ SPELL_SHATTERED_ILLUSION_REMOVE
@ SPELL_PHASE_2_TRANSFORM
@ SPELL_EMPOWERING_SHADOWS
@ SPELL_RESILIENCE_OF_NATURE
@ SPELL_SARAS_FERVOR_TARGET_SELECTOR
@ SPELL_SUMMON_GUARDIAN_1
@ SPELL_LUNATIC_GAZE_DAMAGE
@ SPELL_VERTEX_COLOR_BLACK
@ SPELL_HODIRS_PROTECTIVE_GAZE
@ SPELL_SHADOWY_BARRIER_SARA
@ SPELL_DEATH_RAY_WARNING_VISUAL
@ SPELL_IMMORTAL_GUARDIAN
@ SPELL_CRUSHER_TENTACLE_SUMMON
@ SPELL_SIMPLE_TELEPORT_KEEPERS
@ SPELL_EXTINGUISH_ALL_LIFE
@ SPELL_LUNATIC_GAZE_SKULL
@ SPELL_MALADY_OF_THE_MIND
@ SPELL_FLASH_FREEZE_VISUAL
@ SPELL_SHATTERED_ILLUSION
@ SPELL_GRIM_REPRISAL_DAMAGE
@ SPELL_CONSTRICTOR_TENTACLE_SUMMON
@ SPELL_TELEPORT_TO_ICECROWN_ILLUSION
@ SPELL_PHASE_3_TRANSFORM
@ SPELL_FURY_OF_THE_STORM
@ SPELL_TELEPORT_TO_CHAMBER_ILLUSION
@ SPELL_DESTABILIZATION_MATRIX
@ SPELL_SUMMON_GUARDIAN_2
@ SPELL_TELEPORT_TO_STORMWIND_ILLUSION
@ SPELL_SARAS_ANGER_TARGET_SELECTOR
@ SPELL_BRAIN_HURT_VISUAL
@ SPELL_CORRUPTOR_TENTACLE_SUMMON
@ SPELL_PERMANENT_FEIGN_DEATH
@ SPELL_SANITY_WELL_SUMMON
@ SPELL_OMINOUS_CLOUD_VISUAL
@ SPELL_FORTITUDE_OF_FROST
@ SPELL_CONSTRICTOR_TENTACLE
@ SPELL_RIDE_YOGG_SARON_VEHICLE
@ SPELL_IN_THE_MAWS_OF_THE_OLD_GOD
@ SPELL_SARAS_BLESSING_TARGET_SELECTOR
@ SPELL_TENTACLE_VOID_ZONE_2
uint32 const IllusionSpells[MAX_ILLUSION_ROOMS]
Position const YSKeepersPos[4]
boss_sara::boss_saraAI SaraAI
@ CREATURE_GROUP_PORTALS_25
@ CREATURE_GROUP_PORTALS_10
void AddSC_boss_yogg_saron()
@ EVENT_CHAMBER_ROLEPLAY_2
@ EVENT_CHAMBER_ROLEPLAY_3
@ EVENT_MALADY_OF_THE_MIND
@ EVENT_ICECROWN_ROLEPLAY_4
@ EVENT_SUMMON_IMMORTAL_GUARDIAN
@ EVENT_ICECROWN_ROLEPLAY_6
@ EVENT_ICECROWN_ROLEPLAY_1
@ EVENT_SUMMON_CRUSHER_TENTACLE
@ EVENT_DESTABILIZATION_MATRIX
@ EVENT_CAST_RANDOM_SPELL
@ EVENT_ICECROWN_ROLEPLAY_2
@ EVENT_STORMWIND_ROLEPLAY_4
@ EVENT_STORMWIND_ROLEPLAY_7
@ EVENT_HODIRS_PROTECTIVE_GAZE
@ EVENT_ICECROWN_ROLEPLAY_3
@ EVENT_SUMMON_CORRUPTOR_TENTACLE
@ EVENT_CHAMBER_ROLEPLAY_4
@ EVENT_EXTINGUISH_ALL_LIFE
@ EVENT_STORMWIND_ROLEPLAY_6
@ EVENT_CHAMBER_ROLEPLAY_1
@ EVENT_CHAMBER_ROLEPLAY_5
@ EVENT_ICECROWN_ROLEPLAY_5
@ EVENT_STORMWIND_ROLEPLAY_5
@ EVENT_STORMWIND_ROLEPLAY_2
@ EVENT_SUMMON_CONSTRICTOR_TENTACLE
@ EVENT_SUMMON_GUARDIAN_OF_YOGG_SARON
@ EVENT_STORMWIND_ROLEPLAY_3
@ EVENT_STORMWIND_ROLEPLAY_1
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< CheckAreaTargetHandler > DoCheckAreaTarget
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectProcHandler > OnEffectProc
uint8 GetStackAmount() const
bool ModStackAmount(int32 num, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
InstanceScript *const instance
void JustSummoned(Creature *summon) override
bool HasPvECombatWithPlayers() const
@ EVADE_REASON_NO_HOSTILES
void DoZoneInCombat(Creature *creature=nullptr)
void EngagementStart(Unit *who)
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void ResetPlayerDamageReq()
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void AddLootMode(uint16 lootMode)
bool IsInEvadeMode() const
Unit * GetAttacker() const
void DelayEvents(Milliseconds delay)
bool IsInPhase(PhaseIndex phase) const
void SetPhase(PhaseIndex phase)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
bool operator()(WorldObject *object)
HighSanityTargetSelector()
virtual bool SetBossState(uint32 id, EncounterState state)
Creature * GetCreature(uint32 type)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
virtual ObjectGuid GetGuidData(uint32 type) const override
void DoStartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
void DoStopTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
bool operator()(WorldObject *object)
LunaticGazeTargetSelector(Unit *caster)
float GetHeight(float x, float y, float z, bool checkVMap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH) const
PlayerList const & GetPlayers() const
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
void MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount)
static ObjectGuid const Empty
static Creature * ToCreature(Object *o)
static Unit * ToUnit(Object *o)
static Player * ToPlayer(Object *o)
bool IsGameMaster() const
DamageInfo * GetDamageInfo() const
SanityReduction(uint8 stacks)
void RemoveSanity(SpellEffIndex)
HookList< CastHandler > AfterCast
HookList< CheckCastHandler > OnCheckCast
Unit * GetHitUnit() const
int32 GetEffectValue() const
HookList< EffectHandler > OnEffectHitTarget
HookList< CastHandler > BeforeCast
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void SetSpellValue(SpellValueMod mod, int32 value)
void Despawn(Creature const *summon)
void DespawnEntry(uint32 entry)
void Summon(Creature const *summon)
void DoMeleeAttackIfReady()
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 HealthAbovePct(int32 pct) const
float GetHealthPct() const
void KillSelf(bool durabilityLoss=true)
void SetFaction(uint32 faction) override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
void RemoveNpcFlag(NPCFlags flags)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void InterruptSpell(CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true, SpellCastResult result=SPELL_FAILED_INTERRUPTED, Optional< SpellCastResult > resultOther={})
bool SetWalk(bool enable)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
void HandleEmoteCommand(Emote emoteId)
uint32 CountPctFromMaxHealth(int32 pct) const
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
static void Kill(Unit *attacker, Unit *victim, bool durabilityLoss=true)
CombatManager & GetCombatManager()
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
uint32 GetPhaseMask() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
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)
float GetDistance2d(WorldObject const *obj) const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
CreatureAI * GetAI(Creature *creature) const override
boss_brain_of_yogg_saron()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
boss_voice_of_yogg_saron()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_constrictor_tentacle()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_descend_into_madness()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_guardian_of_yogg_saron()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_observation_ring_keeper()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_yogg_saron_illusions()
CreatureAI * GetAI(Creature *creature) const override
PrepareSpellScript(spell_yogg_saron_boil_ominously_SpellScript)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_yogg_saron_boil_ominously()
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void DummyTick(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_yogg_saron_brain_link_AuraScript)
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_yogg_saron_brain_link_SpellScript)
PrepareSpellScript(spell_yogg_saron_brain_link_damage_SpellScript)
spell_yogg_saron_brain_link_damage_SpellScript()
spell_yogg_saron_brain_link_damage()
SpellScript * GetSpellScript() const override
SpellScript * GetSpellScript() const override
AuraScript * GetAuraScript() const override
spell_yogg_saron_brain_link()
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_yogg_saron_cancel_illusion_room_aura_SpellScript)
SpellScript * GetSpellScript() const override
spell_yogg_saron_cancel_illusion_room_aura()
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_yogg_saron_constrictor_tentacle_AuraScript)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
spell_yogg_saron_constrictor_tentacle()
AuraScript * GetAuraScript() const override
PrepareAuraScript(spell_yogg_saron_death_ray_warning_visual_AuraScript)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
AuraScript * GetAuraScript() const override
spell_yogg_saron_death_ray_warning_visual()
PrepareAuraScript(spell_yogg_saron_diminsh_power_AuraScript)
void HandleProc(AuraEffect const *, ProcEventInfo &)
AuraScript * GetAuraScript() const override
spell_yogg_saron_diminsh_power()
void OnPeriodic(AuraEffect const *)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_yogg_saron_empowered_AuraScript)
bool Validate(SpellInfo const *) override
spell_yogg_saron_empowered()
AuraScript * GetAuraScript() const override
PrepareSpellScript(spell_yogg_saron_empowering_shadows_missile_SpellScript)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
SpellScript * GetSpellScript() const override
spell_yogg_saron_empowering_shadows_missile()
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_yogg_saron_empowering_shadows_range_check_SpellScript)
SpellScript * GetSpellScript() const override
spell_yogg_saron_empowering_shadows_range_check()
PrepareAuraScript(spell_yogg_saron_grim_reprisal_AuraScript)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
spell_yogg_saron_grim_reprisal()
AuraScript * GetAuraScript() const override
PrepareAuraScript(spell_yogg_saron_hodirs_protective_gaze_AuraScript)
bool Validate(SpellInfo const *) override
bool CanApply(Unit *target)
void OnAbsorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
AuraScript * GetAuraScript() const override
spell_yogg_saron_hodirs_protective_gaze()
SpellCastResult CheckRequirement()
PrepareSpellScript(spell_yogg_saron_in_the_maws_of_the_old_god_SpellScript)
spell_yogg_saron_in_the_maws_of_the_old_god()
SpellScript * GetSpellScript() const override
void ClearShatteredIllusion()
PrepareSpellScript(spell_yogg_saron_induce_madness_SpellScript)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
spell_yogg_saron_induce_madness()
SpellScript * GetSpellScript() const override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_yogg_saron_insane_AuraScript)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_yogg_saron_insane_periodic_SpellScript)
SpellScript * GetSpellScript() const override
spell_yogg_saron_insane_periodic()
AuraScript * GetAuraScript() const override
spell_yogg_saron_insane()
bool CanApply(Unit *target)
PrepareAuraScript(spell_yogg_saron_keeper_aura_AuraScript)
AuraScript * GetAuraScript() const override
spell_yogg_saron_keeper_aura()
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_yogg_saron_lunatic_gaze_SpellScript)
spell_yogg_saron_lunatic_gaze()
SpellScript * GetSpellScript() const override
PrepareSpellScript(spell_yogg_saron_lunge_SpellScript)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_yogg_saron_malady_of_the_mind_AuraScript)
spell_yogg_saron_malady_of_the_mind_SpellScript()
PrepareSpellScript(spell_yogg_saron_malady_of_the_mind_SpellScript)
void FilterTargets(std::list< WorldObject * > &targets)
spell_yogg_saron_malady_of_the_mind()
AuraScript * GetAuraScript() const override
SpellScript * GetSpellScript() const override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_yogg_saron_match_health_SpellScript)
SpellScript * GetSpellScript() const override
spell_yogg_saron_match_health()
PrepareAuraScript(spell_yogg_saron_nondescript_AuraScript)
void OnRemove(AuraEffect const *aurEff, AuraEffectHandleModes)
AuraScript * GetAuraScript() const override
spell_yogg_saron_nondescript()
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_yogg_saron_psychosis_SpellScript)
SpellScript * GetSpellScript() const override
spell_yogg_saron_psychosis()
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_yogg_saron_revealed_tentacle_SpellScript)
bool Validate(SpellInfo const *) override
SpellScript * GetSpellScript() const override
spell_yogg_saron_revealed_tentacle()
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void DummyTick(AuraEffect const *)
PrepareAuraScript(spell_yogg_saron_sanity_AuraScript)
PrepareSpellScript(spell_yogg_saron_sanity_SpellScript)
AuraScript * GetAuraScript() const override
SpellScript * GetSpellScript() const override
spell_yogg_saron_sanity()
PrepareAuraScript(spell_yogg_saron_shadow_beacon_AuraScript)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
AuraScript * GetAuraScript() const override
spell_yogg_saron_shadow_beacon()
PrepareSpellScript(spell_yogg_saron_shattered_illusion_SpellScript)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_yogg_saron_shattered_illusion()
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_yogg_saron_squeeze_AuraScript)
AuraScript * GetAuraScript() const override
spell_yogg_saron_squeeze()
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_yogg_saron_target_selectors_SpellScript)
spell_yogg_saron_target_selectors()
SpellScript * GetSpellScript() const override
PrepareSpellScript(spell_yogg_saron_titanic_storm_SpellScript)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_yogg_saron_titanic_storm()
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
float GetPositionZ() const
float GetPositionX() const
float GetPositionY() const
void SetCombatMovement(bool allowMovement)
void SetAggressiveStateAfter(Milliseconds timer, Creature *who=nullptr, bool startCombat=true, Creature *summoner=nullptr, StartCombatArgs const &combatArgs={ })
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustSummoned(Creature *summon) override
void UpdateAI(uint32) override
InstanceScript * _instance
void DoAction(int32 action) override
boss_brain_of_yogg_saronAI(Creature *creature)
std::map< ObjectGuid, ObjectGuid > _linkData
boss_saraAI(Creature *creature)
void SetLinkBetween(ObjectGuid player1, ObjectGuid player2)
void DoAction(int32 action) override
void SpellHitTarget(WorldObject *, SpellInfo const *spellInfo) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
ObjectGuid GetLinkedPlayerGUID(ObjectGuid guid) const
void KilledUnit(Unit *victim) override
void JustEnteredCombat(Unit *who) override
void JustSummoned(Creature *summon) override
void UpdateAI(uint32 diff) override
void RemoveLinkFrom(ObjectGuid player1)
InstanceScript * _instance
void JustEngagedWith(Unit *) override
void DoAction(int32 action) override
void MoveInLineOfSight(Unit *who) override
boss_voice_of_yogg_saronAI(Creature *creature)
void EnterEvadeMode(EvadeReason why) override
void JustEngagedWith(Unit *) override
void JustSummoned(Creature *summon) override
Milliseconds _guardianTimer
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
boss_yogg_saronAI(Creature *creature)
InstanceScript * _instance
void JustDied(Unit *) override
void DoAction(int32 action) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
npc_constrictor_tentacleAI(Creature *creature)
InstanceScript * _instance
void IsSummonedBy(WorldObject *) override
void UpdateAI(uint32) override
npc_corruptor_tentacleAI(Creature *creature)
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
npc_crusher_tentacleAI(Creature *creature)
npc_descend_into_madnessAI(Creature *creature)
void OnSpellClick(Unit *clicker, bool spellClickHandled) override
InstanceScript * _instance
void UpdateAI(uint32) override
npc_garonaAI(Creature *creature)
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
InstanceScript * _instance
npc_guardian_of_yogg_saronAI(Creature *creature)
void IsSummonedBy(WorldObject *summoner) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_immortal_guardianAI(Creature *creature)
void UpdateAI(uint32 diff) override
npc_influence_tentacleAI(Creature *creature)
void UpdateAI(uint32) override
InstanceScript * _instance
void JustDied(Unit *) override
npc_laughing_skullAI(Creature *creature)
void UpdateAI(uint32) override
void UpdateAI(uint32) override
npc_observation_ring_keeperAI(Creature *creature)
bool OnGossipSelect(Player *player, uint32 menuId, uint32) override
void UpdateAI(uint32) override
npc_ominous_cloudAI(Creature *creature)
void DoAction(int32 action) override
void MovementInform(uint32 type, uint32 pointId) override
void DoAction(int32 action) override
npc_turned_championAI(Creature *creature)
void UpdateAI(uint32 diff) override
InstanceScript * _instance
void IsSummonedBy(WorldObject *) override
npc_yogg_saron_illusionsAI(Creature *creature)
npc_yogg_saron_keeperAI(Creature *creature)
void JustEnteredCombat(Unit *who) override
void DoAction(int32 action) override
void IsSummonedBy(WorldObject *) override
void UpdateAI(uint32 diff) override
@ DATA_BRAIN_OF_YOGG_SARON
@ DATA_VOICE_OF_YOGG_SARON
@ NPC_HODIR_OBSERVATION_RING
@ NPC_MIMIRON_OBSERVATION_RING
@ NPC_DESCEND_INTO_MADNESS
@ NPC_CONSTRICTOR_TENTACLE
@ NPC_FREYA_OBSERVATION_RING
@ NPC_THORIM_OBSERVATION_RING
@ NPC_MARKED_IMMORTAL_GUARDIAN
@ NPC_GUARDIAN_OF_YOGG_SARON