269 return GetUlduarAI<npc_iron_rootsAI>(creature);
296 for (
uint8 i = 0; i < 3; ++i)
297 for (
uint8 n = 0; n < 2; ++n)
299 for (
uint8 i = 0; i < 6; ++i)
300 for (
uint8 n = 0; n < 2; ++n)
302 for (
uint8 n = 0; n < 2; ++n)
307 for (
uint8 n = 0; n < 3; ++n)
356 for (
uint8 n = 0; n < 3; ++n)
359 if (Elder[n] && Elder[n]->IsAlive())
370 if (Elder[0] && Elder[0]->IsAlive())
376 if (Elder[1] && Elder[1]->IsAlive())
382 if (Elder[2] && Elder[2]->IsAlive())
490 for (
uint8 i = 0; i < 2; ++i)
497 for (
uint8 k = 0; k < 3; ++k)
503 if (Elemental[0][i] && Elemental[1][i] && Elemental[2][i])
505 for (
uint8 n = 0; n < 3; ++n)
507 if (Elemental[n][i]->IsAlive())
508 Elemental[n][i]->
SetHealth(Elemental[n][i]->GetMaxHealth());
520 if (Elemental[0][i] && Elemental[1][i] && Elemental[2][i])
522 if (Elemental[0][i]->isDead() && Elemental[1][i]->isDead() && Elemental[2][i]->isDead())
524 for (
uint8 n = 0; n < 3; ++n)
545 for (
uint8 i = 0; i < 5; ++i)
556 for (
uint8 i = 0; i < 6; ++i)
574 for (
uint8 n = 0; n < 3; ++n)
580 randomId =
urand(0, 2);
592 for (
uint8 n = 0; n < 10; ++n)
617 const uint32 summonSpell[2][4] =
620 {62950, 62952, 62953, 62954},
621 {62955, 62956, 62957, 62958}
637 for (
uint8 n = 0; n < 3; ++n)
708 else if (waypointId == 10)
713 else if (waypointId == 18)
723 return GetUlduarAI<boss_freyaAI>(creature);
787 uint8 stackAmount = 0;
789 stackAmount = aura->GetStackAmount();
824 return GetUlduarAI<boss_elder_brightleafAI>(creature);
870 if (!who || who ==
me)
931 return GetUlduarAI<boss_elder_stonebarkAI>(creature);
1023 return GetUlduarAI<boss_elder_ironbranchAI>(creature);
1085 return GetUlduarAI<npc_detonating_lasherAI>(creature);
1151 return GetUlduarAI<npc_ancient_water_spiritAI>(creature);
1224 return GetUlduarAI<npc_storm_lasherAI>(creature);
1269 return GetUlduarAI<npc_snaplasherAI>(creature);
1299 for (
uint8 n = 0; n < sporesCount; ++n)
1344 return GetUlduarAI<npc_ancient_conservatorAI>(creature);
1366 return GetUlduarAI<npc_sun_beamAI>(creature);
1408 return GetUlduarAI<npc_healthy_sporeAI>(creature);
1448 return GetUlduarAI<npc_eonars_giftAI>(creature);
1490 return GetUlduarAI<npc_nature_bombAI>(creature);
1543 return GetUlduarAI<npc_unstable_sun_beamAI>(creature);
1565 for (
uint8 n = 0; n < 2; ++n)
1570 for (
uint8 n = 0; n < 10; ++n)
1575 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
Used when doing CastSpell with triggered == true.
#define SpellEffectFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
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_FREYA_DUMMY_YELLOW
@ 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
@ SPELL_FREYA_DUMMY_GREEN
@ NPC_STRENGTHENED_IRON_ROOTS
@ NPC_ANCIENT_WATER_SPIRIT
@ NPC_CHANNEL_STALKER_FREYA
@ NPC_ANCIENT_CONSERVATOR
@ DATA_GETTING_BACK_TO_NATURE
@ ACTION_ELDER_FREYA_KILLED
void SetStackAmount(uint8 num)
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
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(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void DoCastSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
Creature * GetCreature(uint32 type)
virtual ObjectGuid GetGuidData(uint32 type) const override
Difficulty GetDifficultyID() 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)
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)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void ApplySpellImmune(uint32 spellId, SpellImmunity op, uint32 type, bool apply)
void RemoveGameObject(GameObject *gameObj, bool del)
void CombatStop(bool includingCast=false, bool mutualPvP=true, bool(*unitFilter)(Unit const *otherUnit)=nullptr)
void SetHealth(uint64 val)
void SetInCombatWith(Unit *enemy, bool addSecondUnitSuppressed=false)
void SetFaction(uint32 faction) override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
void SetFacingToObject(WorldObject const *object, bool force=true)
Aura * AddAura(uint32 spellId, Unit *target)
void SetUninteractible(bool apply)
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void NearTeleportTo(Position const &pos, bool casting=false)
void RemoveAuraFromStack(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT, uint16 num=1)
bool HasUnitState(const uint32 f) const
void RemoveAllAttackers()
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void SetUnitFlag(UnitFlags flags)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
GameObject * FindNearestGameObject(uint32 entry, float range, bool spawnedOnly=true) const
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
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
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_freya_attuned_to_nature_dose_reduction()
void HandleSummon(SpellEffIndex effIndex)
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)
constexpr void GetPosition(float &x, float &y) const
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
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 WaypointReached(uint32 waypointId, uint32 pathId) override
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