96#define SPELL_FROZEN_BLOWS RAID_MODE<uint32>(62478,63512)
146#define ACHIEVEMENT_CHEESE_THE_FREEZE RAID_MODE<uint8>(2961, 2962)
147#define ACHIEVEMENT_GETTING_COLD_IN_HERE RAID_MODE<uint8>(2967, 2968)
148#define ACHIEVEMENT_THIS_CACHE_WAS_RARE RAID_MODE<uint8>(3182, 3184)
149#define ACHIEVEMENT_COOLEST_FRIENDS RAID_MODE<uint8>(2963, 2965)
150#define FRIENDS_COUNT RAID_MODE<uint8>(4, 8)
159 { 1983.75f, -243.36f, 432.767f, 1.57f },
160 { 1999.90f, -230.49f, 432.767f, 1.57f },
161 { 2010.06f, -243.45f, 432.767f, 1.57f },
162 { 2021.12f, -236.65f, 432.767f, 1.57f },
163 { 2028.10f, -244.66f, 432.767f, 1.57f },
164 { 2014.18f, -232.80f, 432.767f, 1.57f },
165 { 1992.90f, -237.54f, 432.767f, 1.57f },
166 { 1976.60f, -233.53f, 432.767f, 1.57f },
227 if (!target->IsAlive())
248 me->
NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation());
258 return GetUlduarAI<npc_flash_freezeAI>(creature);
297 me->
NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation());
310 if (!hodir->IsInCombat())
313 hodir->AI()->DoZoneInCombat();
314 hodir->AI()->AttackStart(who);
317 helper->AI()->AttackStart(hodir);
325 return GetUlduarAI<npc_ice_blockAI>(creature);
467 std::list<Creature*> IcicleSnowdriftList;
469 for (std::list<Creature*>::iterator itr = IcicleSnowdriftList.begin(); itr != IcicleSnowdriftList.end(); ++itr)
504 if (BitingColdAura->GetStackAmount() > 2)
529 std::list<Unit*> TargetList;
533 for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
552 return GetUlduarAI<boss_hodirAI>(creature);
605 return GetUlduarAI<npc_icicleAI>(creature);
650 return GetUlduarAI<npc_snowpacked_icicleAI>(creature);
700 std::list<Unit*> TargetList;
704 for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
734 return GetUlduarAI<npc_hodir_priestAI>(creature);
800 return GetUlduarAI<npc_hodir_shamanAI>(creature);
865 return GetUlduarAI<npc_hodir_druidAI>(creature);
950 return GetUlduarAI<npc_hodir_mageAI>(creature);
984 return GetUlduarAI<npc_toasty_fireAI>(creature);
1003 if (itr->first != target->
GetGUID())
1006 if (itr->second >= 4)
@ TEMPSUMMON_MANUAL_DESPAWN
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
Creature * GetClosestCreatureWithEntry(WorldObject *source, uint32 entry, float maxSearchRange, bool alive=true)
@ SPELL_AURA_PERIODIC_DUMMY
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
#define AuraEffectPeriodicFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
@ DATA_GETTING_COLD_IN_HERE
@ SPELL_FLASH_FREEZE_KILL
@ SPELL_SUMMON_BLOCK_OF_ICE
@ SPELL_SUMMON_FLASH_FREEZE_HELPER
@ SPELL_BITING_COLD_DAMAGE
@ SPELL_FLASH_FREEZE_VISUAL
@ SPELL_BITING_COLD_TRIGGERED
@ SPELL_FLASH_FREEZE_HELPER
@ EVENT_FLASH_FREEZE_EFFECT
#define SPELL_FROZEN_BLOWS
Position const SummonPositions[8]
@ ACTION_CHEESE_THE_FREEZE
@ ACTION_I_HAVE_THE_COOLEST_FRIENDS
HookList< EffectPeriodicHandler > OnEffectPeriodic
uint8 GetStackAmount() const
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
std::unordered_map< ObjectGuid, CombatReference * > const & GetPvECombatRefs() const
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
void SetCanMelee(bool canMelee, bool fleeFromMelee=false)
void SetDisplayFromModel(uint32 modelIdx)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void CancelEvent(uint32 eventId)
Creature * GetCreature(uint32 type)
EncounterState GetBossState(uint32 id) const
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
void Despawn(Creature const *summon)
void Summon(Creature const *summon)
virtual void SetData(uint32, uint32)
bool DoSpellAttackIfReady(uint32 spellId)
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 RemoveGameObject(GameObject *gameObj, bool del)
void CombatStop(bool includingCast=false, bool mutualPvP=true, bool(*unitFilter)(Unit const *otherUnit)=nullptr)
void SetInCombatWith(Unit *enemy, bool addSecondUnitSuppressed=false)
void SetControlled(bool apply, UnitState state)
void SetFaction(uint32 faction) override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
bool HasUnitFlag(UnitFlags flags) const
Unit * EnsureVictim() const
void NearTeleportTo(Position const &pos, bool casting=false)
void RemoveAuraFromStack(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT, uint16 num=1)
bool HasUnitState(const uint32 f) const
void RemoveAllAttackers()
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
CombatManager & GetCombatManager()
void SetUnitFlag(UnitFlags flags)
GameObject * FindNearestGameObject(uint32 entry, float range, bool spawnedOnly=true) 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)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
virtual void SetData(uint32, uint32)
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
std::list< std::pair< ObjectGuid, uint8 > > TargetList
void HandleEffectPeriodic(AuraEffect const *)
void HandleEffectPeriodic(AuraEffect const *)
AuraScript * GetAuraScript() const override
AuraScript * GetAuraScript() const override
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
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)
T const & RAID_MODE(T const &normal10, T const &normal25) const
bool HealthBelowPct(uint32 pct) const
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *who, uint32 &damage, DamageEffectType, SpellInfo const *) override
boss_hodirAI(Creature *creature)
uint32 gettingColdInHereTimer
void JustEngagedWith(Unit *who) override
bool iCouldSayThatThisCacheWasRare
void DoAction(int32 action) override
void KilledUnit(Unit *who) override
bool iHaveTheCoolestFriends
void UpdateAI(uint32 diff) override
npc_flash_freezeAI(Creature *creature)
InstanceScript * instance
void IsSummonedBy(WorldObject *summonerWO) override
void JustDied(Unit *) override
npc_hodir_druidAI(Creature *creature)
void UpdateAI(uint32 diff) override
InstanceScript * instance
void UpdateAI(uint32 diff) override
InstanceScript * instance
void JustDied(Unit *) override
npc_hodir_mageAI(Creature *creature)
void SummonedCreatureDespawn(Creature *summoned) override
void JustSummoned(Creature *summoned) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
npc_hodir_priestAI(Creature *creature)
InstanceScript * instance
void JustDied(Unit *) override
npc_hodir_shamanAI(Creature *creature)
void UpdateAI(uint32 diff) override
InstanceScript * instance
void DamageTaken(Unit *who, uint32 &, DamageEffectType, SpellInfo const *) override
void IsSummonedBy(WorldObject *summonerWO) override
InstanceScript * instance
npc_ice_blockAI(Creature *creature)
npc_icicleAI(Creature *creature)
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
npc_snowpacked_icicleAI(Creature *creature)
npc_toasty_fireAI(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
@ NPC_ELEMENTALIST_MAHFUUN