111 if (Archimonde->HealthBelowPct(2) || !Archimonde->IsAlive())
198 me->GetMotionMaster()->MoveFollow(temp, 0.0f, 0.0f);
204 me->GetRandomNearPosition(pos, 40);
347 Unit* victim =
me->GetVictim();
348 if (victim &&
me->IsWithinDistInMap(victim,
me->GetAttackDistance(victim)))
352 if (threatlist.empty())
355 std::list<Unit*> targets;
356 ThreatContainer::StorageType::const_iterator itr = threatlist.begin();
357 for (; itr != threatlist.end(); ++itr)
361 targets.push_back(unit);
368 Unit* target = targets.front();
371 if (!
me->IsWithinDistInMap(target,
me->GetAttackDistance(target)))
374 me->AddThreat(target,
me->getThreatManager().getThreat(
me->GetVictim()));
383 summoned->AI()->AttackStart(
me);
386 summoned->setFaction(
me->getFaction());
403 summoned->GetMotionMaster()->MoveFollow(DoomfireSpirit, 0.0f, 0.0f);
423 me->InterruptNonMeleeSpells(
false);
425 bool HasCast =
false;
429 switch (std::rand() % 2)
445 if (
me->HasAura(chargeSpell))
447 me->RemoveAuraFromStack(chargeSpell);
459 if (!
me->IsInCombat())
466 me->SetVisible(
false);
471 me->setFaction(1720);
472 me->SetVisible(
true);
488 Nordrassil->SetDisplayId(11686);
514 me->GetMotionMaster()->Clear(
false);
515 me->GetMotionMaster()->MoveIdle();
529 if (
me->IsWithinDistInMap(Check, 75))
531 me->GetMotionMaster()->Clear(
false);
532 me->GetMotionMaster()->MoveIdle();
545 me->GetMotionMaster()->Clear(
false);
546 me->GetMotionMaster()->MoveIdle();
606 temp =
me->GetVictim();
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ TEMPSUMMON_TIMED_DESPAWN
@ SPELL_SCHOOL_MASK_NORMAL
@ CURRENT_CHANNELED_SPELL
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
void AddSC_boss_archimonde()
@ SPELL_PROTECTION_OF_ELUNE
@ SPELL_UNLEASH_SOUL_GREEN
@ SPELL_SOUL_CHARGE_GREEN
@ SPELL_GRIP_OF_THE_LEGION
@ SPELL_UNLEASH_SOUL_YELLOW
@ SPELL_DRAIN_WORLD_TREE_2
@ SPELL_SOUL_CHARGE_YELLOW
@ CREATURE_DOOMFIRE_SPIRIT
@ CREATURE_CHANNEL_TARGET
Position const NordrassilLoc
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
CreatureScript(const char *name)
std::list< HostileReference * > StorageType
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 CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
static Unit * GetUnit(WorldObject &object, uint64 guid)
InstanceScript * GetInstanceScript()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_doomfire_targetting()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
float GetPositionZ() const
float GetPositionX() const
float GetPositionY() const
bool HealthAbovePct(uint32 pct) const
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
ScriptedAI(Creature *creature)
boss_archimondeAI(Creature *creature)
InstanceScript * instance
uint64 DoomfireSpiritGUID
void GainSoulCharge(Player *victim)
uint32 GripOfTheLegionTimer
void JustDied(Unit *killer) OVERRIDE
uint32 CheckDistanceTimer
void SummonDoomfire(Unit *target)
uint32 MeleeRangeCheckTimer
uint32 DrainNordrassilTimer
void EnterCombat(Unit *) OVERRIDE
void WaypointReached(uint32) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustSummoned(Creature *summoned) OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
bool CanUseFingerOfDeath()
hyjal_trashAI(Creature *creature)
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
InstanceScript * instance
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_ancient_wispAI(Creature *creature)
npc_doomfireAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
void MoveInLineOfSight(Unit *) OVERRIDE
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
npc_doomfire_targettingAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
void MoveInLineOfSight(Unit *who) OVERRIDE
void EnterCombat(Unit *) OVERRIDE