88 me->GetPosition(x, y, z);
89 me->SummonGameObject(
GO_BIRTH, x, y, z, 0, 0, 0, 0, 0, 0);
90 me->SetVisible(
false);
126 IceBlockMap::iterator itr =
_iceblocks.find(target->GetGUID());
129 if (
GameObject* iceblock =
me->SummonGameObject(
GO_ICEBLOCK, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, 0, 0, 0, 0, 25000))
130 itr->second = iceblock->GetGUID();
254 summon->GetMotionMaster()->MoveRandom(40);
266 me->GetHomePosition(x, y, z, o);
267 me->GetMotionMaster()->MovePoint(1, x, y, z);
284 me->SetDisableGravity(
true);
290 std::vector<Unit*> targets;
291 std::list<HostileReference*>::const_iterator i =
me->getThreatManager().getThreatList().begin();
292 for (; i !=
me->getThreatManager().getThreatList().end(); ++i)
294 targets.push_back((*i)->getTarget());
300 std::vector<Unit*>::const_iterator itr = targets.begin();
301 advance(itr, rand()%targets.size());
302 _iceblocks.insert(std::make_pair((*itr)->GetGUID(), 0));
328 me->SetDisableGravity(
false);
335 me->SetVisible(
true);
347 std::vector<Unit*> targets;
348 std::list<HostileReference*>::const_iterator i =
me->getThreatManager().getThreatList().begin();
349 for (; i !=
me->getThreatManager().getThreatList().end(); ++i)
351 Unit* target = (*i)->getTarget();
358 targets.push_back(target);
366 if (go->IsInBetween(
me, target, 2.0f)
367 &&
me->GetExactDist2d(target->
GetPositionX(), target->
GetPositionY()) -
me->GetExactDist2d(go->GetPositionX(), go->GetPositionY()) < 5.0f)
370 targets.push_back(target);
379 for (std::vector<Unit*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr)
@ TEMPSUMMON_TIMED_DESPAWN
@ UNIT_FLAG_NON_ATTACKABLE
void AddSC_boss_sapphiron()
std::map< uint64, uint64 > IceBlockMap
AchievementCriteriaScript(const char *name)
BossAI(Creature *creature, uint32 bossId)
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
CreatureScript(const char *name)
static GameObject * GetGameObject(WorldObject &object, uint64 guid)
LinkedListHead::Iterator< MapReference const > const_iterator
static Player * GetPlayer(WorldObject const &, uint64 guid)
static GameObject * GetGameObject(WorldObject const &u, uint64 guid)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
virtual void InitializeAI()
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
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply)
bool OnCheck(Player *, Unit *target) OVERRIDE
achievement_the_hundred_club()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
float GetPositionX() const
float GetPositionY() const
bool HealthAbovePct(uint32 pct) const
const T & RAID_MODE(const T &normal10, const T &normal25) const
void MovementInform(uint32, uint32 id) OVERRIDE
void JustDied(Unit *) OVERRIDE
void SpellHitTarget(Unit *target, SpellInfo const *spell) OVERRIDE
void InitializeAI() OVERRIDE
uint32 _checkFrostResistTimer
void EnterCombat(Unit *) OVERRIDE
void CheckPlayersFrostResist()
boss_sapphironAI(Creature *creature)
void DoAction(int32 param) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 GetData(uint32 data) const OVERRIDE