91 return GetKarazhanAI<boss_aranAI>(creature);
186 std::vector<Unit*> targets;
191 if (ref->GetVictim()->GetTypeId() ==
TYPEID_PLAYER && ref->GetVictim()->IsAlive())
192 targets.push_back(target);
196 while (targets.size() > 3)
197 targets.erase(targets.begin() +
rand32() % targets.size());
200 for (std::vector<Unit*>::const_iterator itr = targets.begin(); itr!= targets.end(); ++itr)
305 uint8 AvailableSpells = 0;
417 for (
uint32 i = 0; i < 4; ++i)
431 for (
uint32 i = 0; i < 5; ++i)
454 for (
uint8 i = 0; i < 3; ++i)
510 return GetKarazhanAI<water_elementalAI>(creature);
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
uint32 urand(uint32 min, uint32 max)
@ SPELL_EFFECT_INTERRUPT_CAST
void AddSC_boss_shade_of_aran()
@ CREATURE_SHADOW_OF_ARAN
@ CREATURE_WATER_ELEMENTAL
@ SPELL_CIRCULAR_BLIZZARD
virtual bool SetBossState(uint32 id, EncounterState state)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
virtual ObjectGuid GetGuidData(uint32 type) const override
static ObjectGuid GetGUID(Object const *o)
bool HasEffect(SpellEffects effect) const
Trinity::IteratorPair< ThreatListIterator, std::nullptr_t > GetUnsortedThreatList() const
void DoMeleeAttackIfReady()
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCast(uint32 spellId)
ThreatManager & GetThreatManager()
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool IsNonMeleeSpellCast(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
uint32 GetMaxPower(Powers power) const
uint32 GetFaction() const override
void SetPower(Powers power, uint32 val, bool withPowerUpdate=true, bool force=false)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
float GetPowerPct(Powers power) const
void SetStandState(UnitStandStateType state)
bool IsWithinDist2d(float x, float y, float dist) 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)
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
bool HealthBelowPct(uint32 pct) const
void JustEngagedWith(Unit *) override
InstanceScript * instance
ObjectGuid FlameWreathTarget[3]
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
boss_aranAI(Creature *creature)
uint32 CurrentNormalSpell
uint32 DrinkInterruptTimer
uint32 FlameWreathCheckTime
void KilledUnit(Unit *) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
uint32 SecondarySpellTimer
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
water_elementalAI(Creature *creature)