128#define ACHIEVEMENT_CHEESE_THE_FREEZE RAID_MODE<uint8>(2961, 2962)
129#define ACHIEVEMENT_GETTING_COLD_IN_HERE RAID_MODE<uint8>(2967, 2968)
130#define ACHIEVEMENT_THIS_CACHE_WAS_RARE RAID_MODE<uint8>(3182, 3184)
131#define ACHIEVEMENT_COOLEST_FRIENDS RAID_MODE<uint8>(2963, 2965)
132#define FRIENDS_COUNT RAID_MODE<uint8>(4, 8)
141 { 1983.75f, -243.36f, 432.767f, 1.57f },
142 { 1999.90f, -230.49f, 432.767f, 1.57f },
143 { 2010.06f, -243.45f, 432.767f, 1.57f },
144 { 2021.12f, -236.65f, 432.767f, 1.57f },
145 { 2028.10f, -244.66f, 432.767f, 1.57f },
146 { 2014.18f, -232.80f, 432.767f, 1.57f },
147 { 1992.90f, -237.54f, 432.767f, 1.57f },
148 { 1976.60f, -233.53f, 432.767f, 1.57f },
173 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
194 me->DespawnOrUnsummon();
199 if (!target->IsAlive())
200 me->DisappearAndDie();
210 me->SetInCombatWith(summoner);
211 me->AddThreat(summoner, 250.0f);
216 me->NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation());
240 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
253 me->SetInCombatWith(summoner);
254 me->AddThreat(summoner, 250.0f);
255 summoner->AddThreat(
me, 250.0f);
260 me->NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation());
272 if (!Hodir->IsInCombat())
275 Hodir->AI()->DoZoneInCombat();
276 Hodir->AI()->AttackStart(who);
279 Helper->AI()->AttackStart(Hodir);
348 if (damage >=
me->GetHealth())
355 me->RemoveAllAuras();
356 me->RemoveAllAttackers();
360 me->InterruptNonMeleeSpells(
true);
362 me->GetMotionMaster()->Clear();
363 me->GetMotionMaster()->MoveIdle();
365 me->CombatStop(
true);
368 me->DespawnOrUnsummon(10000);
410 std::list<Creature*> IcicleSnowdriftList;
412 for (std::list<Creature*>::iterator itr = IcicleSnowdriftList.begin(); itr != IcicleSnowdriftList.end(); ++itr)
441 std::list<HostileReference*> ThreatList =
me->getThreatManager().getThreatList();
442 for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)
472 std::list<Unit*> TargetList;
475 me->VisitNearbyObject(100.0f, searcher);
476 for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
508 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid1);
556 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
573 me->RemoveGameObject(Snowdrift,
true);
574 me->DespawnOrUnsummon();
629 std::list<Unit*> TargetList;
632 me->VisitNearbyObject(30.0f, searcher);
633 for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
877 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
890 me->RemoveGameObject(ToastyFire,
true);
891 me->DespawnOrUnsummon();
918 if (itr->first != target->
GetGUID())
921 if (itr->second >= 4)
@ TEMPSUMMON_MANUAL_DESPAWN
Creature * GetClosestCreatureWithEntry(WorldObject *source, uint32 entry, float maxSearchRange, bool alive)
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
@ SPELL_AURA_PERIODIC_DUMMY
#define AuraEffectPeriodicFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ 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
Position const SummonPositions[8]
@ ACTION_CHEESE_THE_FREEZE
@ ACTION_I_HAVE_THE_COOLEST_FRIENDS
HookList< EffectPeriodicHandler > OnEffectPeriodic
uint8 GetStackAmount() const
InstanceScript *const instance
BossAI(Creature *creature, uint32 bossId)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
CreatureScript(const char *name)
static Creature * GetCreature(WorldObject const &u, uint64 guid)
static Unit * GetUnit(WorldObject const &, uint64 guid)
SpellScriptLoader(const char *name)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
bool DoSpellAttackIfReady(uint32 spell)
void DoCastAOE(uint32 spellId, bool triggered=false)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAuraFromStack(uint32 spellId, uint64 casterGUID=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
void CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
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< uint64, uint8 > > TargetList
PrepareAuraScript(spell_biting_cold_AuraScript)
void HandleEffectPeriodic(AuraEffect const *)
PrepareAuraScript(spell_biting_cold_dot_AuraScript)
void HandleEffectPeriodic(AuraEffect const *)
AuraScript * GetAuraScript() const OVERRIDE
AuraScript * GetAuraScript() const OVERRIDE
Position const SummonPositions[10]
bool HealthBelowPct(uint32 pct) const
const T & RAID_MODE(const T &normal10, const T &normal25) const
ScriptedAI(Creature *creature)
void DoAction(int32 action) OVERRIDE
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
boss_hodirAI(Creature *creature)
uint32 gettingColdInHereTimer
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
bool iCouldSayThatThisCacheWasRare
void KilledUnit(Unit *who) OVERRIDE
bool iHaveTheCoolestFriends
void IsSummonedBy(Unit *summoner) OVERRIDE
npc_flash_freezeAI(Creature *creature)
InstanceScript * instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_hodir_druidAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
InstanceScript * instance
InstanceScript * instance
void JustSummoned(Creature *summoned) OVERRIDE
npc_hodir_mageAI(Creature *creature)
void SummonedCreatureDespawn(Creature *summoned) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
npc_hodir_priestAI(Creature *creature)
InstanceScript * instance
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_hodir_shamanAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void IsSummonedBy(Unit *summoner) OVERRIDE
InstanceScript * instance
npc_ice_blockAI(Creature *creature)
void DamageTaken(Unit *who, uint32 &) OVERRIDE
npc_icicleAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_snowpacked_icicleAI(Creature *creature)
void SpellHit(Unit *, const SpellInfo *spell) OVERRIDE
npc_toasty_fireAI(Creature *creature)
@ NPC_ELEMENTALIST_MAHFUUN