260 return GetUlduarAI<npc_iron_rootsAI>(creature);
287 for (
uint8 i = 0; i < 3; ++i)
288 for (
uint8 n = 0; n < 2; ++n)
290 for (
uint8 i = 0; i < 6; ++i)
291 for (
uint8 n = 0; n < 2; ++n)
293 for (
uint8 n = 0; n < 2; ++n)
298 for (
uint8 n = 0; n < 3; ++n)
347 for (
uint8 n = 0; n < 3; ++n)
350 if (Elder[n] && Elder[n]->IsAlive())
361 if (Elder[0] && Elder[0]->IsAlive())
367 if (Elder[1] && Elder[1]->IsAlive())
373 if (Elder[2] && Elder[2]->IsAlive())
481 for (
uint8 i = 0; i < 2; ++i)
488 for (
uint8 k = 0; k < 3; ++k)
494 if (Elemental[0][i] && Elemental[1][i] && Elemental[2][i])
496 for (
uint8 n = 0; n < 3; ++n)
498 if (Elemental[n][i]->IsAlive())
499 Elemental[n][i]->
SetHealth(Elemental[n][i]->GetMaxHealth());
511 if (Elemental[0][i] && Elemental[1][i] && Elemental[2][i])
513 if (Elemental[0][i]->isDead() && Elemental[1][i]->isDead() && Elemental[2][i]->isDead())
515 for (
uint8 n = 0; n < 3; ++n)
538 for (
uint8 i = 0; i < 5; ++i)
549 for (
uint8 i = 0; i < 6; ++i)
567 for (
uint8 n = 0; n < 3; ++n)
573 randomId =
urand(0, 2);
585 for (
uint8 n = 0; n < 10; ++n)
610 const uint32 summonSpell[2][4] =
613 {62950, 62952, 62953, 62954},
614 {62955, 62956, 62957, 62958}
630 for (
uint8 n = 0; n < 3; ++n)
694 return GetUlduarAI<boss_freyaAI>(creature);
758 uint8 stackAmount = 0;
760 stackAmount = aura->GetStackAmount();
797 return GetUlduarAI<boss_elder_brightleafAI>(creature);
843 if (!who || who ==
me)
906 return GetUlduarAI<boss_elder_stonebarkAI>(creature);
1000 return GetUlduarAI<boss_elder_ironbranchAI>(creature);
1064 return GetUlduarAI<npc_detonating_lasherAI>(creature);
1132 return GetUlduarAI<npc_ancient_water_spiritAI>(creature);
1207 return GetUlduarAI<npc_storm_lasherAI>(creature);
1254 return GetUlduarAI<npc_snaplasherAI>(creature);
1284 for (
uint8 n = 0; n < sporesCount; ++n)
1331 return GetUlduarAI<npc_ancient_conservatorAI>(creature);
1353 return GetUlduarAI<npc_sun_beamAI>(creature);
1394 return GetUlduarAI<npc_healthy_sporeAI>(creature);
1434 return GetUlduarAI<npc_eonars_giftAI>(creature);
1476 return GetUlduarAI<npc_nature_bombAI>(creature);
1529 return GetUlduarAI<npc_unstable_sun_beamAI>(creature);
1553 for (
uint8 n = 0; n < 2; ++n)
1558 for (
uint8 n = 0; n < 10; ++n)
1563 for (
uint8 n = 0; n < 25; ++n)
std::chrono::seconds Seconds
Seconds shorthand typedef.
uint32 urand(uint32 min, uint32 max)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellEffectFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_UNINTERACTIBLE
@ DATA_GETTING_BACK_TO_NATURE
constexpr Seconds FREYA_WAVE_TIME
@ EVENT_STRENGTHENED_IRON_ROOTS
@ EVENT_UNSTABLE_SUN_BEAM
@ SPELL_SUMMON_ANCIENT_CONSERVATOR
@ SPELL_ATTUNED_TO_NATURE_10_DOSE_REDUCTION
@ SPELL_HEALTHY_SPORE_VISUAL
@ SPELL_UNSTABLE_SUN_BEAM_TRIGGERED
@ SPELL_IRONBRANCH_ESSENCE
@ SPELL_DEFORESTATION_CREDIT
@ SPELL_FREYA_UNSTABLE_ENERGY_VISUAL
@ SPELL_POTENT_PHEROMONES
@ SPELL_BRIGHTLEAF_ESSENCE
@ SPELL_UNSTABLE_SUN_BEAM
@ SPELL_UNSTABLE_SUN_BEAM_SUMMON
@ SPELL_SUMMON_EONAR_GIFT
@ SPELL_SUMMON_NATURE_BOMB
@ SPELL_PETRIFIED_BARK_DMG
@ SPELL_ATTUNED_TO_NATURE_25_DOSE_REDUCTION
@ SPELL_TIDAL_WAVE_EFFECT
@ SPELL_FREYA_UNSTABLE_ENERGY
@ SPELL_FREYA_GROUND_TREMOR
@ SPELL_FREYA_UNSTABLE_SUNBEAM
@ SPELL_KNOCK_ON_WOOD_CREDIT
@ SPELL_STONEBARK_ESSENCE
@ SPELL_ATTUNED_TO_NATURE_2_DOSE_REDUCTION
@ SPELL_ATTUNED_TO_NATURE
@ NPC_STRENGTHENED_IRON_ROOTS
@ NPC_ANCIENT_WATER_SPIRIT
@ NPC_ANCIENT_CONSERVATOR
@ ACTION_ELDER_FREYA_KILLED
void SetStackAmount(uint8 num)
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void DoZoneInCombat(Creature *creature=nullptr)
void RemoveLootMode(uint16 lootMode)
void Respawn(bool force=false)
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void RemoveFromWorld() override
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void DoCastSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
Creature * GetCreature(uint32 type)
virtual ObjectGuid GetGuidData(uint32 type) const override
Difficulty GetDifficulty() const
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
SpellInfo const * GetSpellInfo() const
void Despawn(Creature const *summon)
void Summon(Creature const *summon)
virtual void DoAction(int32)
void DoMeleeAttackIfReady()
virtual uint32 GetData(uint32) 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)
virtual void AttackStart(Unit *)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void RemoveGameObject(GameObject *gameObj, bool del)
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void SetInCombatWith(Unit *enemy, bool addSecondUnitSuppressed=false)
void SetFaction(uint32 faction) override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
Aura * AddAura(uint32 spellId, Unit *target)
void SetHealth(uint32 val)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void SetFacingToObject(WorldObject const *object, bool force=true, uint32 movementId=EVENT_FACE)
void RemoveAuraFromStack(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void NearTeleportTo(Position const &pos, bool casting=false)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply)
void RemoveAllAttackers()
void CombatStop(bool includingCast=false, bool mutualPvP=true)
void SetUnitFlag(UnitFlags flags)
GameObject * FindNearestGameObject(uint32 entry, float range, bool spawnedOnly=true) const
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool OnCheck(Player *, Unit *target) override
achievement_getting_back_to_nature()
bool OnCheck(Player *, Unit *target) override
achievement_knock_knock_knock_on_wood()
achievement_knock_knock_on_wood()
bool OnCheck(Player *, Unit *target) override
bool OnCheck(Player *, Unit *target) override
achievement_knock_on_wood()
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
npc_ancient_conservator()
npc_ancient_water_spirit()
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
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
PrepareSpellScript(spell_freya_attuned_to_nature_dose_reduction_SpellScript)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_freya_attuned_to_nature_dose_reduction()
void HandleSummon(SpellEffIndex effIndex)
PrepareSpellScript(spell_freya_iron_roots_SpellScript)
SpellScript * GetSpellScript() const override
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
void GetPosition(float &x, float &y) const
void AttackStart(Unit *) override
void SetCombatMovement(bool allowMovement)
float GetThreat(Unit const *victim, Unit const *who=nullptr)
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
void JustEngagedWith(Unit *who) override
boss_elder_brightleafAI(Creature *creature)
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void DoAction(int32 action) override
void KilledUnit(Unit *who) override
void JustDied(Unit *) override
void KilledUnit(Unit *who) override
void DoAction(int32 action) override
boss_elder_ironbranchAI(Creature *creature)
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *who) override
void DoAction(int32 action) override
boss_elder_stonebarkAI(Creature *creature)
void JustEngagedWith(Unit *who) override
void KilledUnit(Unit *who) override
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *who, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustDied(Unit *) override
void DamageTaken(Unit *who, uint32 &damage, DamageEffectType, SpellInfo const *) override
void LasherDead(uint32 type)
uint32 deforestation[6][2]
boss_freyaAI(Creature *creature)
ObjectGuid ElementalGUID[3][2]
uint32 GetData(uint32 type) const override
void JustSummoned(Creature *summoned) override
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
bool checkElementalAlive[2]
void SummonedCreatureDies(Creature *summoned, Unit *who) override
void KilledUnit(Unit *who) override
void UpdateAI(uint32 diff) override
void SummonHealthySpores(uint8 sporesCount)
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *who) override
npc_ancient_conservatorAI(Creature *creature)
InstanceScript * instance
void JustDied(Unit *) override
npc_ancient_water_spiritAI(Creature *creature)
void UpdateAI(uint32 diff) override
npc_detonating_lasherAI(Creature *creature)
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
npc_eonars_giftAI(Creature *creature)
uint32 lifeBindersGiftTimer
npc_healthy_sporeAI(Creature *creature)
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void IsSummonedBy(WorldObject *summonerWO) override
npc_iron_rootsAI(Creature *creature)
void UpdateAI(uint32 diff) override
npc_nature_bombAI(Creature *creature)
void UpdateAI(uint32) override
void JustDied(Unit *) override
npc_snaplasherAI(Creature *creature)
InstanceScript * instance
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
InstanceScript * instance
npc_storm_lasherAI(Creature *creature)
uint32 lightningLashTimer
npc_sun_beamAI(Creature *creature)
InstanceScript * instance
npc_unstable_sun_beamAI(Creature *creature)
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override