96 { 3212.854f, 575.597f, 109.856f, 0.0f },
97 { 3246.425f, 565.367f, 61.249f, 0.0f }
102 { 3293.238f, 472.223f, 106.968f, 0.0f },
103 { 3271.669f, 526.907f, 61.931f, 0.0f }
108 { 3193.310f, 472.861f, 102.697f, 0.0f },
109 { 3227.268f, 533.238f, 59.995f, 0.0f }
186 if (tenebron->IsAlive())
187 tenebron->DisappearAndDie();
190 if (shadron->IsAlive())
191 shadron->DisappearAndDie();
194 if (vesperon->IsAlive())
195 vesperon->DisappearAndDie();
220 tenebron->SetHomePosition(3239.07f, 657.235f, 86.8775f, 4.74729f);
221 if (tenebron->IsAlive())
225 tenebron->GetMotionMaster()->MoveTargetedHome();
232 tenebron->GetMotionMaster()->MoveTargetedHome();
240 shadron->SetHomePosition(3363.06f, 525.28f, 98.362f, 4.76475f);
241 if (shadron->IsAlive())
245 shadron->GetMotionMaster()->MoveTargetedHome();
252 shadron->GetMotionMaster()->MoveTargetedHome();
260 vesperon->SetHomePosition(3145.68f, 520.71f, 89.7f, 4.64258f);
261 if (vesperon->IsAlive())
265 vesperon->GetMotionMaster()->MoveTargetedHome();
272 vesperon->GetMotionMaster()->MoveTargetedHome();
285 bool _canUseWill =
false;
289 if (fetchTene->IsAlive() && !fetchTene->GetVictim())
292 if (!fetchTene->IsInCombat())
307 if (fetchShad->IsAlive() && !fetchShad->GetVictim())
310 if (!fetchShad->IsInCombat())
325 if (fetchVesp->IsAlive() && !fetchVesp->GetVictim())
328 if (!fetchVesp->IsInCombat())
349 if (temp->IsAlive() && !temp->GetVictim())
351 temp->SetWalk(
false);
358 switch (temp->GetEntry())
394 std::list<Creature*> fireCyclonesList;
399 if (fireCyclonesList.empty())
465 if (
urand(0, 5) == 0)
@ TEMPSUMMON_TIMED_DESPAWN
uint32 urand(uint32 min, uint32 max)
@ UNIT_FLAG_NON_ATTACKABLE
@ SPELL_POWER_OF_VESPERON
@ SAY_SARTHARION_CALL_TENEBRON
@ SPELL_POWER_OF_TENEBRON
@ NPC_ACOLYTE_OF_VESPERON
@ SAY_SARTHARION_CALL_VESPERON
@ SPELL_WILL_OF_SARTHARION
@ SAY_SARTHARION_CALL_SHADRON
Position const FlameLeft1Direction
Position const FlameRight1Direction
Position const FlameRight1Spawn
Position const FlameLeft1Spawn
void AddSC_boss_sartharion()
Position const VesperonPositions[]
Position const FlameRight3Spawn
Position const TenebronPositions[]
Position const FlameLeft2Spawn
Position const ShadronPositions[]
Position const FlameRight2Spawn
Position const FlameRight3Direction
Position const FlameRight2Direction
Position const FlameLeft2Direction
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void DoZoneInCombat(Creature *creature=nullptr)
void SetHomePosition(float x, float y, float z, float o)
void AddLootMode(uint16 lootMode)
bool HasLootMode(uint16 lootMode)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
virtual bool SetBossState(uint32 id, EncounterState state)
virtual ObjectGuid GetGuidData(uint32 type) const override
EncounterState GetBossState(uint32 id) const
void DoMeleeAttackIfReady()
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)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
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)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
#define RegisterObsidianSanctumCreatureAI(ai_name)
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
bool HealthAbovePct(uint32 pct) const
bool HealthBelowPct(uint32 pct) const
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void KilledUnit(Unit *who) override
void CallDragon(uint32 dataId)
void CastLavaStrikeOnTarget(Unit *target)
void JustReachedHome() override
boss_sartharion(Creature *creature)
uint32 GetData(uint32 type) const override
void JustEngagedWith(Unit *who) override