289 combatStalker->DespawnOrUnsummon();
363 combatStalker->SetCombatPulseDelay(5);
382 snobold->ExitVehicle();
467 if (gormok && gormok->
IsAlive())
705 if (!otherWorm->IsAlive())
709 otherWorm->DespawnOrUnsummon();
1108 if (caster->IsAIEnabled())
1165 if (!canBeRecalculated)
1168 canBeRecalculated =
false;
1175 int32 newAmount = slowEff->GetAmount() - 10;
1176 if (newAmount < -100)
1178 slowEff->ChangeAmount(newAmount);
1225 int32 const radius =
static_cast<int32>(((aurEff->
GetTickNumber() / 60.f) * 0.9f + 0.1f) * 10000.f * 2.f / 3.f);
1319 if (targets.empty())
@ RAID_DIFFICULTY_10MAN_NORMAL
@ RAID_DIFFICULTY_25MAN_NORMAL
@ ENCOUNTER_FRAME_DISENGAGE
@ SPLINE_CHAIN_MOTION_TYPE
float frand(float min, float max)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ TARGET_UNIT_SRC_AREA_ENEMY
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_CONTROL_VEHICLE
@ SPELL_AURA_MOD_DECREASE_SPEED
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_UNINTERACTIBLE
@ MODEL_ACIDMAW_STATIONARY
@ MODEL_DREADSCALE_MOBILE
@ MODEL_DREADSCALE_STATIONARY
Position const CombatStalkerPosition
@ SPLINE_INITIAL_MOVEMENT
void AddSC_boss_northrend_beasts()
@ SPELL_SLIME_POOL_EFFECT
@ SPELL_FURIOUS_CHARGE_SUMMON
@ SPELL_SURGE_OF_ADRENALINE
@ ACTION_ENABLE_FIRE_BOMB
@ ACTION_DISABLE_FIRE_BOMB
@ EVENT_SELECT_CHARGE_TARGET
@ EVENT_START_JORGMUNGARS
uint32 GetTickNumber() const
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
AuraEffect * GetEffect(uint8 effIndex) const
ObjectGuid GetCasterGUID() const
void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
HookList< EffectApplyHandler > OnEffectApply
InstanceScript *const instance
void JustSummoned(Creature *summon) override
virtual void ExecuteEvent(uint32)
virtual void ScheduleTasks()
void DoZoneInCombat(Creature *creature=nullptr)
void SetBoundary(CreatureBoundary const *boundary, bool negativeBoundaries=false)
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void SetCombatPulseDelay(uint32 delay)
void SetDisplayId(uint32 modelId) override
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetTarget(ObjectGuid guid) override
void Repeat(Milliseconds time)
void DelayEvents(Milliseconds delay)
bool IsInPhase(PhaseIndex phase) const
void RescheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void CancelEvent(EventId eventId)
void SetPhase(PhaseIndex phase)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
void DoCloseDoorOrButton(ObjectGuid guid)
Creature * GetCreature(uint32 type)
virtual ObjectGuid GetGuidData(uint32 type) const override
void DoUseDoorOrButton(ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
CreatureBoundary const * GetBossBoundary(uint32 id) const
void SendEncounterUnit(EncounterFrameType type, Unit const *unit=nullptr, uint8 param1=0, uint8 param2=0)
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=EVENT_JUMP, bool hasOrientation=false)
void MoveChase(Unit *target, Optional< ChaseRange > dist={}, Optional< ChaseAngle > angle={})
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
void MoveCharge(float x, float y, float z, float speed=SPEED_CHARGE, uint32 id=EVENT_CHARGE, bool generatePath=false)
void MoveAlongSplineChain(uint32 pointId, uint16 dbChainId, bool walk)
static ObjectGuid const Empty
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
SnobolledTargetSelector()
bool operator()(Unit *unit) const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void Summon(Creature const *summon)
virtual void DoAction(int32)
void AttackStartCaster(Unit *victim, float dist)
void DoMeleeAttackIfReady()
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual bool CanAIAttack(Unit const *) const
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 DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void EnterVehicle(Unit *base, int8 seatId=-1)
void RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetControlled(bool apply, UnitState state)
float GetCollisionHeight() const override
void UpdateSpeed(UnitMoveType mtype)
Unit * GetVehicleBase() const
MotionMaster * GetMotionMaster()
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)
void SetSpeedRate(UnitMoveType mtype, float rate)
bool HasUnitState(const uint32 f) const
void HandleEmoteCommand(Emote emoteId)
void SetUnitFlag(UnitFlags flags)
Vehicle * GetVehicleKit() const
void RemoveUnitFlag(UnitFlags flags)
Unit * GetPassenger(int8 seatId) const
Gets a passenger on specified seat.
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)
void setActive(bool isActiveObject)
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_gormok_jump_to_hand)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_gormok_ride_player)
PrepareAuraScript(spell_gormok_snobolled)
bool Validate(SpellInfo const *) override
void OnPeriodic(AuraEffect const *)
PrepareSpellScript(spell_icehowl_arctic_breath)
bool Validate(SpellInfo const *spellInfo) override
void HandleScriptEffect(SpellEffIndex)
void HandleSpeed(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_icehowl_massive_crash)
PrepareSpellScript(spell_icehowl_trample)
void CheckTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_jormungars_burning_bile)
void HandleScriptEffect(SpellEffIndex effIndex)
PrepareAuraScript(spell_jormungars_paralysis)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(AuraEffect const *)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_jormungars_paralytic_toxin)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void CalculateAmount(AuraEffect const *aurEff, int32 &amount, bool &canBeRecalculated)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_jormungars_slime_pool)
bool Validate(SpellInfo const *spellInfo) override
void PeriodicTick(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_jormungars_snakes_spray)
spell_jormungars_snakes_spray(uint32 spellId)
void HandleScript(SpellEffIndex)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
void AttackStart(Unit *) override
void SetCombatMovement(bool allowMovement)
boss_acidmaw(Creature *creature)
void MovementInform(uint32 type, uint32 pointId) override
boss_dreadscale(Creature *creature)
void PassengerBoarded(Unit *who, int8 seatId, bool apply) override
== Fields =======================================
void MovementInform(uint32 type, uint32 pointId) override
void ScheduleTasks() override
void ExecuteEvent(uint32 eventId) override
boss_gormok(Creature *creature)
void DoAction(int32 action) override
void MovementInform(uint32 type, uint32 pointId) override
void ExecuteEvent(uint32 eventId) override
boss_icehowl(Creature *creature)
void ScheduleTasks() override
void JustSummoned(Creature *summoned) override
void JustDied(Unit *) override
void ExecuteEvent(uint32 eventId) override
void ScheduleTasks() override
uint32 GetOtherWormData(uint32 wormEntry)
boss_jormungarAI(Creature *creature, uint32 bossId)
void DoAction(int32 action) override
void UpdateAI(uint32 diff) override
void HandleInstanceProgress()
void EnterEvadeMode(EvadeReason why) override
void JustEngagedWith(Unit *) override
void HandleWithHeroicEvents()
void UpdateAI(uint32 diff) override
void HandleInitialMovement()
void JustDied(Unit *) override
boss_northrend_beastsAI(Creature *creature, uint32 bossId)
InstanceScript * _instance
void UpdateAI(uint32 diff) override
void DoAction(int32 action) override
npc_beasts_combat_stalker(Creature *creature)
npc_fire_bomb(Creature *creature)
npc_jormungars_slime_pool(Creature *creature)
void SetGUID(ObjectGuid const &guid, int32 id) override
InstanceScript * _instance
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
void DoAction(int32 action) override
void JustDied(Unit *) override
void AttackStart(Unit *victim) override
npc_snobold_vassal(Creature *creature)
bool CanAIAttack(Unit const *who) const override
Position const ToCCommonLoc[]
@ NPC_BEASTS_COMBAT_STALKER
@ ACTION_START_JORMUNGARS
@ DATA_GORMOK_THE_IMPALER
@ DATA_BEASTS_COMBAT_STALKER
#define RegisterTrialOfTheCrusaderCreatureAI(ai_name)