192 defiler->DespawnOrUnsummon(20s);
396 .TriggeringAura = aurEff
452 std::list<Creature*> sporePods;
457 if (sporePods.empty())
592 creatureCaster->DespawnOrUnsummon();
644 if (zancha->IsAlive())
660 if (!zancha || !zancha->
IsAlive())
@ ENCOUNTER_FRAME_DISENGAGE
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_TELEPORT_UNITS
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DUMMY
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_IGNORE_CAST_TIME
Will always be instantly cast.
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG2_UNTARGETABLE_BY_CLIENT
@ SPELL_FESTERING_HARVEST_DAMAGE
@ SPELL_UPHEAVAL_SCRIPT_EFFECT
@ SPELL_UPHEAVAL_SELECTOR
@ SPELL_THOUSAND_FOLD_BLADE
@ SPELL_VOLATILE_PODS_AREATRIGGER
@ SPELL_VOLATILE_PODS_VISUAL
@ SPELL_TELEPORT_BEHIND_YOU_SELECTOR
@ SPELL_ACHIEVEMENT_VISUAL
@ SPELL_FESTERING_HARVEST
void AddSC_boss_sporecaller_zancha()
SporecallerZanchaCreatures
SporecallerZanchaSummonGroups
@ SUMMON_GROUP_VOLATILE_PODS
@ SUMMON_GROUP_MUSASHITAKE
@ SUMMON_GROUP_ZANCHA_INTRO
AreaTriggerAI(AreaTrigger *a, uint32 scriptId={}) noexcept
void InitSplines(std::vector< G3D::Vector3 > const &splinePoints, Optional< float > overrideSpeed={}, Optional< bool > speedIsTimeInSeconds={})
uint32 GetTickNumber() const
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
static Conversation * CreateConversation(uint32 conversationEntry, Unit *creator, Position const &pos, ObjectGuid privateObjectOwner, SpellInfo const *spellInfo=nullptr, bool autoStart=true)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
bool HasReactState(ReactStates state) const
void SetReactState(ReactStates st)
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
Creature * GetCreature(uint32 type)
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
static ObjectGuid const Empty
Movement::PointsArray const & GetPath() const
bool CalculatePath(float srcX, float srcY, float srcZ, float destX, float destY, float destZ, bool forceDest=false)
bool IsGameMaster() const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual void DoAction(int32 param)
int32 ModifyPower(Powers power, int32 val, bool withPowerUpdate=true)
void SetPower(Powers power, int32 val, bool withPowerUpdate=true)
void SetUninteractible(bool apply)
void RemoveUnitFlag2(UnitFlags2 flags)
int32 GetPower(Powers power) const
bool HasUnitState(const uint32 f) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetPowerType(Powers power, bool sendUpdate=true, bool onInit=false)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void MovePositionToFirstCollision(Position &pos, float dist, float angle) const
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
static void SetDest(SpellScript const &, SpellDestination &dest)
static constexpr Position CenterPosition
bool Validate(SpellInfo const *) override
void OnPrecast() override
void PeriodicTick(AuraEffect const *aurEff) const
static constexpr std::array< uint8, 5 > SporecallerEnergizeCycle
void HandleHitTarget(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleTeleport(SpellEffIndex) const
void OnRemove(AuraEffect const *aurEff, AuraEffectHandleModes) const
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex) const
bool Validate(SpellInfo const *) override
static constexpr uint8 MAX_VOLATILE_PODS
void HandleHitTarget(SpellEffIndex) const
void HandleHitTarget(SpellEffIndex) const
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
bool IsMythicPlus() const
bool IsHeroicOrHigher() const
void Relocate(Position const &pos)
void OnUnitEnter(Unit *unit) override
void OnCreate(Spell const *) override
void OnUnitEnter(Unit *unit) override
void OnDestinationReached() override
void OnUnitEnter(Unit *unit) override
void OnInitialize() override
boss_sporecaller_zancha(Creature *creature)
void JustDied(Unit *) override
void JustEngagedWith(Unit *who) override
uint32 _volatilePodsCount
void EnterEvadeMode(EvadeReason) override
void DoAction(int32 action) override
void JustAppeared() override
void KilledUnit(Unit *victim) override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_sporecaller_zancha_musashitake(Creature *creature)
@ DATA_SPORECALLER_ZANCHA
#define RegisterUnderrotCreatureAI(ai_name)