109 return GetKarazhanAI<boss_aranAI>(creature);
206 std::vector<Unit*> targets;
211 if (ref->GetVictim()->GetTypeId() ==
TYPEID_PLAYER && ref->GetVictim()->IsAlive())
212 targets.push_back(target);
216 while (targets.size() > 3)
217 targets.erase(targets.begin() +
rand32() % targets.size());
220 for (std::vector<Unit*>::const_iterator itr = targets.begin(); itr!= targets.end(); ++itr)
325 uint8 AvailableSpells = 0;
437 for (
uint32 i = 0; i < 4; ++i)
451 for (
uint32 i = 0; i < 5; ++i)
474 for (
uint8 i = 0; i < 3; ++i)
550 if (item && item->
GetEntry() == itemEntry)
565 return GetKarazhanAI<water_elementalAI>(creature);
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ EQUIPMENT_SLOT_MAINHAND
#define INVENTORY_SLOT_BAG_0
uint32 urand(uint32 min, uint32 max)
@ SPELL_EFFECT_INTERRUPT_CAST
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
void AddSC_boss_shade_of_aran()
@ CREATURE_SHADOW_OF_ARAN
@ CREATURE_WATER_ELEMENTAL
@ SPELL_CIRCULAR_BLIZZARD
uint32 const AtieshStaves[4]
virtual void MoveInLineOfSight(Unit *)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void SetCanMelee(bool canMelee, bool fleeFromMelee=false)
float GetAttackDistance(Unit const *player) const
virtual bool SetBossState(uint32 id, EncounterState state)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
virtual ObjectGuid GetGuidData(uint32 type) const override
void MoveDistract(uint32 time, float orientation)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
Item * GetItemByPos(uint16 pos) const
bool HasEffect(SpellEffectName effect) const
Trinity::IteratorPair< ThreatListIterator, std::nullptr_t > GetUnsortedThreatList() const
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)
void ClearUnitState(uint32 f)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
ThreatManager & GetThreatManager()
void SetPower(Powers power, int32 val, bool withPowerUpdate=true)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
bool IsNonMeleeSpellCast(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
int32 GetMaxPower(Powers power) const
uint32 GetFaction() const override
void SetFacingTo(float const ori, bool force=true)
float GetPowerPct(Powers power) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
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)
float GetDistance2d(WorldObject const *obj) const
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
float GetAbsoluteAngle(float x, float y) const
bool HealthBelowPct(uint32 pct) const
void JustEngagedWith(Unit *) override
InstanceScript * instance
ObjectGuid FlameWreathTarget[3]
bool PlayerHasWeaponEquipped(Player *player, uint32 itemEntry)
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
void MoveInLineOfSight(Unit *who) override
uint32 SecondarySpellTimer
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
water_elementalAI(Creature *creature)