94#define SPELL_PERMAFROST_HELPER RAID_MODE<uint32>(66193, 67855, 67856, 67857)
104 {779.8038f, 150.6580f, 158.1426f, 0},
105 {736.0243f, 113.4201f, 158.0226f, 0},
106 {712.5712f, 160.9948f, 158.4368f, 0},
107 {701.4271f, 126.4740f, 158.0205f, 0},
108 {747.9202f, 155.0920f, 158.0613f, 0},
109 {769.6285f, 121.1024f, 158.0504f, 0},
177 std::list<Creature*> FrostSphereList;
179 if (!FrostSphereList.empty())
180 for (std::list<Creature*>::iterator itr = FrostSphereList.begin(); itr != FrostSphereList.end(); ++itr)
181 (*itr)->DespawnOrUnsummon();
211 for (
int i = 0; i < 10; i++)
214 temp->setFaction(31);
215 temp->GetMotionMaster()->MoveRandom(10);
225 std::list<Creature*> AddList;
227 me->GetCreatureListWithEntryInGrid(AddList,
NPC_BURROWER, 150.0f);
228 if (!AddList.empty())
229 for (std::list<Creature*>::iterator itr = AddList.begin(); itr != AddList.end(); ++itr)
230 (*itr)->DespawnOrUnsummon();
236 switch (summoned->GetEntry())
242 summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid2);
245 summoned->CombatStart(target);
246 summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid1);
266 for (
int i = 0; i < 4; i++)
270 for (
int i = 0; i < 6; i++)
330 std::list<uint64>::iterator i =
_burrowGUID.begin();
332 for (
uint32 k = 0; k < at; k++)
335 pBurrow->CastSpell(pBurrow, 66340,
false);
363 uint8 startAt = std::rand() % 5;
430 me->SetCorpseDelay(0);
433 me->SetInCombatWithZone();
434 if (
me->IsInCombat())
436 Anubarak->AI()->JustSummoned(
me);
460 me->DisappearAndDie();
502 me->SetCorpseDelay(10);
507 me->SetInCombatWithZone();
508 if (
me->IsInCombat())
510 Anubarak->AI()->JustSummoned(
me);
530 me->DisappearAndDie();
591 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
592 me->GetMotionMaster()->MoveRandom(20.0f);
597 if (
me->GetHealth() <= damage)
600 float floorZ =
me->GetMap()->GetHeight(
me->GetPhaseMask(),
me->GetPositionX(),
me->GetPositionY(),
me->GetPositionZ());
601 if (fabs(
me->GetPositionZ() - floorZ) < 0.1f)
604 me->GetMotionMaster()->MoveIdle();
609 me->SetObjectScale(2.0f);
614 me->GetMotionMaster()->MoveIdle();
635 me->SetObjectScale(2.0f);
665 me->SetInCombatWithZone();
691 me->DisappearAndDie();
743 if (
me->IsWithinDist(pWho, 7.0f))
768 me->GetMotionMaster()->MoveIdle();
769 me->GetMotionMaster()->Clear();
778 me->getThreatManager().clearReferences();
779 me->SetInCombatWithZone();
780 me->getThreatManager().addThreat(who, std::numeric_limits<float>::max());
781 me->GetMotionMaster()->Clear(
true);
782 me->GetMotionMaster()->MoveChase(who);
812 if (target && target->
HasAura(permafrost))
849 int32 lifeLeeched = target->CountPctFromCurHealth(aurEff->
GetAmount());
850 if (lifeLeeched < 250)
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ SPELL_AURA_PERIODIC_DUMMY
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
#define SPELL_PERMAFROST_HELPER
void AddSC_boss_anubarak_trial()
@ SPELL_CLEAR_ALL_DEBUFFS
@ SPELL_SUBMERGE_ANUBARAK
@ SPELL_LEECHING_SWARM_HEAL
@ SPELL_LEECHING_SWARM_DMG
@ SPELL_PERMAFROST_VISUAL
const Position SphereSpawn[6]
@ EVENT_SUMMON_FROST_SPHERE
@ EVENT_NERUBIAN_SHADOW_STRIKE
HookList< EffectPeriodicHandler > OnEffectPeriodic
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)
HookList< EffectHandler > OnEffectHitTarget
void SetHitDamage(int32 damage)
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)
void DoCastVictim(uint32 spellId, bool triggered=false)
void DoCastAOE(uint32 spellId, bool triggered=false)
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
static Creature * GetCreature(WorldObject &object, uint64 guid)
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)
InstanceScript * GetInstanceScript()
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
bool Validate(SpellInfo const *) OVERRIDE
PrepareAuraScript(spell_anubarak_leeching_swarm_AuraScript)
void HandleEffectPeriodic(AuraEffect const *aurEff)
spell_anubarak_leeching_swarm()
AuraScript * GetAuraScript() const OVERRIDE
void HandleDamageCalc(SpellEffIndex)
PrepareSpellScript(spell_impale_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
void SetCombatMovement(bool allowMovement)
bool HealthBelowPct(uint32 pct) const
const T & RAID_MODE(const T &normal10, const T &normal25) const
ScriptedAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void MoveInLineOfSight(Unit *) OVERRIDE
void JustSummoned(Creature *summoned) OVERRIDE
void JustReachedHome() OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void KilledUnit(Unit *who) OVERRIDE
boss_anubarak_trialAI(Creature *creature)
std::list< uint64 > _burrowGUID
void EnterCombat(Unit *) OVERRIDE
void EnterCombat(Unit *who) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void MoveInLineOfSight(Unit *pWho) OVERRIDE
PursuingSpikesPhases _phase
npc_anubarak_spikeAI(Creature *creature)
void StartChase(Unit *who)
void DamageTaken(Unit *, uint32 &uiDamage) OVERRIDE
bool CanAIAttack(Unit const *victim) const OVERRIDE
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
npc_frost_sphereAI(Creature *creature)
void MovementInform(uint32 type, uint32 pointId) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * _instance
void DoAction(int32 actionId) OVERRIDE
npc_nerubian_burrowerAI(Creature *creature)
uint32 _determinationTimer
void JustDied(Unit *killer) OVERRIDE
InstanceScript * _instance
npc_swarm_scarabAI(Creature *creature)
void DoAction(int32 actionId) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
const Position AnubarakLoc[]
@ DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE