292 std::list<Creature*> listStalactiteTrigger;
294 if (!listStalactiteTrigger.empty())
295 for (std::list<Creature*>::const_iterator itr = listStalactiteTrigger.begin(); itr != listStalactiteTrigger.end(); ++itr)
296 (*itr)->DespawnOrUnsummon();
299 std::list<GameObject*> listStalactite;
301 if (!listStalactite.empty())
302 for (std::list<GameObject*>::const_iterator itr = listStalactite.begin(); itr != listStalactite.end(); ++itr)
311 return GetStonecoreAI<boss_slabhideAI>(creature);
354 return GetStonecoreAI<npc_lava_fissureAI>(creature);
400 return GetStonecoreAI<npc_stalactite_triggerAI>(creature);
442 Position offset = { 0.0f, 0.0f, 50.0f, 0.0f };
528 for (std::list<GameObject*>::const_iterator itr =
objectList.begin(); itr !=
objectList.end(); ++itr)
529 if (!(*itr)->IsInvisibleDueToDespawn(unit) && (*itr)->IsInBetween(
caster, unit, 1.5f))
550 std::list<GameObject*> goList;
@ TARGET_DEST_CASTER_RANDOM
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_EFFECT_APPLY_AURA
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
@ NPC_STALACTITE_TRIGGER_GROUND
@ ACTION_STALACTITE_MISSLE
@ SPELL_FACE_RANDOM_PLAYER
@ SPELL_STALACTITE_SUMMON_TRIGGER
@ SPELL_CRYSTAL_STORM_TRIGGER
@ SPELL_STALACTITE_MISSLE
@ SPELL_STALACTITE_SUMMON
@ SPELL_LAVA_FISSURE_CRACK
@ SPELL_LAVA_FISSURE_ERUPTION
@ SPELL_STALACTITE_CREATE
void AddSC_boss_slabhide()
constexpr Position SlabhideInAirPos
@ POINT_SLABHIDE_INTRO_LAND
constexpr Position SlabhideIntroPos
constexpr Position SlabhideIntroLandPos
constexpr Position SlabhideMiddlePos
@ EVENT_HANDLE_ROCK_WALLS
@ EVENT_STALACTITE_MISSLE
@ EVENT_LAVA_FISSURE_ERUPTION
BehindObjectCheck(Unit *caster, std::list< GameObject * > objectList)
bool operator()(WorldObject *unit)
std::list< GameObject * > objectList
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void SetHomePosition(float x, float y, float z, float o)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
float GetHeight(PhaseShift const &phaseShift, float x, float y, float z, bool vmap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
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 bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
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 SetHover(bool enable, bool updateAnimTier=true)
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
bool SetCanFly(bool enable)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void GetCreatureListWithEntryInGrid(Container &creatureContainer, uint32 entry, float maxSearchRange=250.0f) const
void GetGameObjectListWithEntryInGrid(Container &gameObjectContainer, uint32 entry, float maxSearchRange=250.0f) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
PhaseShift & GetPhaseShift()
void setActive(bool isActiveObject)
void UpdateGroundPositionZ(float x, float y, float &z) const
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
void ModDestHeight(SpellDestination &dest)
spell_s81028_s80650_stalactite()
SpellScript * GetSpellScript() const override
void SummonStalactiteTrigger()
spell_s81035_stalactite()
SpellScript * GetSpellScript() const override
void FilterTargets(std::list< WorldObject * > &unitList)
SpellScript * GetSpellScript() const override
spell_s92300_crystal_storm()
bool Validate(SpellInfo const *) override
void HandleDummyEffect(SpellEffIndex)
spell_s92306_crystal_storm()
SpellScript * GetSpellScript() const override
void ModDestHeight(SpellDestination &dest)
SpellScript * GetSpellScript() const override
spell_stalactite_mod_dest_height()
@ DATA_SLABHIDE_ROCK_WALL
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void RelocateOffset(Position const &offset)
void Relocate(Position const &pos)
void DoAction(int32 action) override
void JustDied(Unit *) override
boss_slabhideAI(Creature *creature)
void JustEngagedWith(Unit *who) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void MovementInform(uint32 type, uint32 id) override
void UpdateAI(uint32 diff) override
npc_lava_fissureAI(Creature *creature)
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
npc_stalactite_triggerAI(Creature *creature)