98 { 402.7893f, -748.5251f, 29.39399f, 2.024582f },
99 { 420.1999f, -727.0132f, 28.88036f, 2.042035f },
100 { 375.4977f, -707.3635f, -16.0964f, 2.426008f }
106 { { 400.7701f, -784.8928f, -31.60143f }, { 365.9514f, -719.1235f, -16.17974f } },
107 { { 397.3595f, -788.5157f, -31.59679f }, { 359.7433f, -715.017f, -16.17974f } },
108 { { 399.3177f, -787.2599f, -31.59631f }, { 362.0263f, -719.1036f, -16.17974f } },
109 { { 460.4623f, -719.2227f, -31.58718f }, { 389.266f, -679.3693f, -16.17973f } },
110 { { 456.0909f, -724.3412f, -31.58718f }, { 400.5992f, -691.7954f, -16.17973f } },
111 { { 452.6613f, -726.9518f, -31.58718f }, { 400.3423f, -701.5115f, -16.17974f } },
112 { { 447.8852f, -732.3298f, -31.58718f }, { 389.861f, -710.6993f, -16.17974f } },
113 { { 457.562f, -721.1855f, -31.58718f }, { 395.4494f, -684.5345f, -16.17973f } },
114 { { 451.7243f, -730.2181f, -31.58718f }, { 397.0945f, -708.4188f, -15.99747f } },
115 { { 413.9582f, -777.132f, -31.58716f }, { 388.1394f, -723.124f, -15.9938f } },
116 { { 411.5661f, -781.2356f, -31.58716f }, { 381.7102f, -730.0745f, -15.99554f } },
117 { { 407.395f, -786.793f, -31.58716f }, { 366.9791f, -737.3303f, -16.17974f } },
118 { { 404.9166f, -788.3472f, -31.58716f }, { 358.6124f, -735.9944f, -15.9855f } },
119 { { 401.5697f, -791.2033f, -31.58717f }, { 351.9383f, -729.6436f, -16.17974f } },
120 { { 410.1105f, -785.4691f, -31.58716f }, { 373.1659f, -736.2893f, -16.17974f } },
121 { { 442.5644f, -730.2499f, -31.59826f }, { 390.5955f, -714.6851f, -16.17974f } },
122 { { 445.5233f, -725.9542f, -31.60173f }, { 393.9694f, -708.1727f, -16.17974f } },
123 { { 448.5531f, -722.5888f, -31.60066f }, { 395.2702f, -702.556f, -16.17974f } },
124 { { 449.8521f, -719.7265f, -31.58849f }, { 394.5757f, -695.1004f, -16.17974f } },
125 { { 453.5134f, -717.7018f, -31.59883f }, { 387.6152f, -690.1782f, -16.17974f } },
126 { { 457.8564f, -711.7424f, -31.59773f }, { 378.6874f, -687.1343f, -16.17973f } },
127 { { 410.0583f, -774.4119f, -31.60115f }, { 383.8151f, -723.4276f, -16.17974f } },
128 { { 408.7458f, -777.955f, -31.59873f }, { 376.9857f, -725.0735f, -16.17974f } },
129 { { 405.2404f, -779.6614f, -31.60512f }, { 373.3736f, -722.7498f, -16.17974f } },
130 { { 404.0797f, -783.829f, -31.59497f }, { 367.8631f, -722.5212f, -16.17974f } }
153 std::list<TempSummon*> summoned;
471 Position const offset = { 0.0f, 0.0f, -19.0f, 0.0f };
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::chrono::minutes Minutes
Minutes shorthand typedef.
@ TEMPSUMMON_MANUAL_DESPAWN
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
std::unordered_set< ObjectGuid > GuidUnorderedSet
std::vector< ObjectGuid > GuidVector
#define RegisterSpellScript(spell_script)
@ TARGET_DEST_CASTER_RANDOM
#define SpellDestinationTargetSelectFn(F, I, N)
@ DATA_JEDOGA_SHADOWSEEKER
#define RegisterAhnKahetCreatureAI(ai_name)
@ NPC_TWILIGHT_WORSHIPPER
Position const JedogaGroundPosition
@ SPELL_RANDOM_LIGHTNING_VISUAL
@ SPELL_PILLAR_OF_LIGHTNING
@ SPELL_SPHERE_VISUAL_VOLUNTEER
@ SPELL_BEAM_VISUAL_JEDOGA
Position const JedogaFlyPosition
void AddSC_boss_jedoga_shadowseeker()
std::vector< JedogaVolunteerPositionPair > const JedogaVolunteerSpotPositions
Position const JedogaSacrificePosition
@ SUMMON_GROUP_WORSHIPPERS
std::pair< Position, Position > JedogaVolunteerPositionPair
Position const JedogaControllerPositions[3]
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustSummoned(Creature *summon) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
virtual void SummonedCreatureDies(Creature *, Unit *)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
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 SetPhase(uint8 phase)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
Creature * GetCreature(uint32 type)
EncounterState GetBossState(uint32 id) const
void MoveTakeoff(uint32 id, Position const &pos, Optional< int32 > tierTransitionId={}, Optional< float > velocity={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
void MoveLand(uint32 id, Position const &pos, Optional< int32 > tierTransitionId={}, Optional< float > velocity={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default)
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
void DespawnEntry(uint32 entry)
void Summon(Creature const *summon)
TaskScheduler & Schedule(std::chrono::duration< Rep, Period > time, task_handler_t task)
TaskScheduler & Update(success_t const &callback=nullptr)
SpellCastResult DoCastSelf(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 DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
void SetAnimTier(AnimTier animTier, bool notifyClient=true)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
bool SetWalk(bool enable)
bool HasUnitState(const uint32 f) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 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)
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
bool OnCheck(Player *, Unit *target) override
achievement_volunteer_work()
void ModDestHeight(SpellDestination &dest)
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 &
bool HealthBelowPct(uint32 pct) const
void RelocateOffset(Position const &offset)
GuidVector _volunteerGUIDS
ObjectGuid _selectedVolunteerGUID
void EnterEvadeMode(EvadeReason) override
void DamageTaken(Unit *, uint32 &, DamageEffectType, SpellInfo const *) override
void SummonedCreatureDies(Creature *summon, Unit *killer) override
void MovementInform(uint32 type, uint32 pointId) override
void JustSummoned(Creature *summon) override
uint32 GetData(uint32 type) const override
void UpdateAI(uint32 diff) override
void KilledUnit(Unit *Victim) override
void DoAction(int32 action) override
GuidUnorderedSet _initiateGUIDS
void JustDied(Unit *) override
boss_jedoga_shadowseeker(Creature *creature)
void JustEngagedWith(Unit *who) override
void MovementInform(uint32 type, uint32 pointId) override
void UpdateAI(uint32 diff) override
InstanceScript * _instance
void DoAction(int32 action) override
npc_twilight_volunteer(Creature *creature)