139 return GetScholomanceAI<boss_darkmaster_gandlingAI>(creature);
186 if (attempts++ >= 6)
break;
247 { 177.9624f, -68.23893f, 84.95197f, 3.228859f },
248 { 183.7705f, -61.43489f, 84.92424f, 5.148721f },
249 { 184.7035f, -77.74805f, 84.92424f, 4.660029f },
251 { 111.7203f, -1.105035f, 85.45985f, 3.961897f },
252 { 118.0079f, 6.430664f, 85.31169f, 2.408554f },
253 { 120.0276f, -7.496636f, 85.31169f, 2.984513f },
255 { 245.3716f, 0.628038f, 72.73877f, 0.01745329f },
256 { 240.9920f, 3.405653f, 72.73877f, 6.143559f },
257 { 240.9543f, -3.182943f, 72.73877f, 0.2268928f },
259 { 181.8245f, -42.58117f, 75.4812f, 4.660029f },
260 { 177.7456f, -42.74745f, 75.4812f, 4.886922f },
261 { 185.6157f, -42.91200f, 75.4812f, 4.45059f },
301 int8 pos_to_summon = 0;
302 int8 phase_to_set = 0;
303 int32 gate_to_close = 0;
343 for (
uint8 i = 0; i < 3; ++i)
347 Summoned->GetMotionMaster()->MoveRandom(5);
348 Summoned->AI()->SetData(0, phase_to_set);
TC_GAME_API bool InstanceHasScript(WorldObject const *obj, char const *scriptName)
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
uint32 urand(uint32 min, uint32 max)
@ SPELL_EFFECT_SEND_EVENT
#define SpellEffectFn(F, I, N)
Position const SummonPos[18]
void AddSC_boss_darkmaster_gandling()
@ ROOM_HALL_OF_THE_DAMNED
@ ROOM_BAROV_FAMILY_VAULT
@ ROOM_VAULT_OF_THE_RAVENIAN
@ SPELL_SHADOW_PORTAL_THECOVEN
@ SPELL_SHADOW_PORTAL_HALLOFTHEDAMNED
@ SPELL_SHADOW_PORTAL_HALLOFSECRETS
@ SPELL_SHADOW_PORTAL_BAROVFAMILYVAULT
@ SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN
@ SPELL_SHADOW_PORTAL_THESHADOWVAULT
@ SPELL_EVENT_HALLOFSECRETS
@ SPELL_EVENT_HALLOFTHEDAMNED
@ SPELL_EVENT_BAROVFAMILYVAULT
@ SPELL_EVENT_THESHADOWVAULT
@ SPELL_EVENT_VAULTOFTHERAVENIAN
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
virtual ObjectGuid GetGuidData(uint32 type) const override
void MoveRandom(float wanderDistance=0.0f, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_DEFAULT)
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
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)
MotionMaster * GetMotionMaster()
bool HasUnitState(const uint32 f) const
InstanceScript * GetInstanceScript() 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)
CreatureAI * GetAI(Creature *creature) const override
boss_darkmaster_gandling()
void HandleCast(SpellEffIndex)
InstanceScript * _instance
InstanceScript * _instance
void HandleSendEvent(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_shadow_portal_rooms()
SpellScript * GetSpellScript() const override
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
@ DATA_DARKMASTERGANDLING
#define ScholomanceScriptName
bool HealthAbovePct(uint32 pct) const
boss_darkmaster_gandlingAI(Creature *creature)
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *who) override
void IsSummonedBy(WorldObject *) override
void JustDied(Unit *) override