80#define SPELL_SHARE_HEALTH (me->GetEntry() == NPC_BLAZING_MONSTROSITY_LEFT ? SPELL_SHARE_HEALTH_LEFT : SPELL_SHARE_HEALTH_RIGHT)
81#define SPELL_MOLTEN_BARRAGE (me->GetEntry() == NPC_BLAZING_MONSTROSITY_LEFT ? SPELL_MOLTEN_BARRAGE_LEFT : SPELL_MOLTEN_BARRAGE_RIGHT)
82#define SPELL_MOLTEN_BARRAGE_EFFECT (me->GetEntry() == NPC_BLAZING_MONSTROSITY_LEFT ? SPELL_MOLTEN_BARRAGE_EFFECT_L : SPELL_MOLTEN_BARRAGE_EFFECT_R)
249 return GetFirelandsAI<npc_harbinger_of_flameAI>(creature);
305 init.
MoveTo(0.6654003f, 0.0f, 1.9815f);
351 return GetFirelandsAI<npc_blazing_monstrosityAI>(creature);
391 return GetFirelandsAI<npc_molten_barrageAI>(creature);
418 std::list<Creature*> eggs;
420 for (std::list<Creature*>::const_iterator itr = eggs.begin(); itr != eggs.end(); ++itr)
462 std::list<Creature*> eggs;
492 return GetFirelandsAI<npc_egg_pileAI>(creature);
515 creature->DespawnOrUnsummon(4s);
561 angle = bird->GetOrientation();
570 angle -= float(
M_PI) * 0.5f;
575 angle += float(
M_PI) * 0.5f;
584 angle -= float(
M_PI);
DB2Storage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore("CreatureDisplayInfo.db2", &CreatureDisplayInfoLoadInfo::Instance)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
#define SpellEffectFn(F, I, N)
@ CURRENT_CHANNELED_SPELL
#define SPELL_MOLTEN_BARRAGE
@ MODEL_INVISIBLE_STALKER
#define SPELL_SHARE_HEALTH
static void AlysrazorTrashEvaded(Creature *creature)
@ SPELL_MOLTEN_BARRAGE_LEFT
@ SPELL_RIGHT_SIDE_SMACK_R
@ SPELL_INVISIBILITY_AND_STEALTH_DETECTION
@ SPELL_LEFT_SIDE_SMACK_L
@ SPELL_SHARE_HEALTH_RIGHT
@ SPELL_FIEROCLAST_BARRAGE
@ SPELL_GENERIC_DUMMY_CAST
@ SPELL_MOLTEN_BARRAGE_VISUAL
@ SPELL_RIGHT_SIDE_SMACK_L
@ SPELL_KNOCKBACK_FORWARD
@ SPELL_MOLTEN_EGG_TRASH_CALL_L
@ SPELL_SHARE_HEALTH_LEFT
@ SPELL_LEFT_SIDE_SMACK_R
@ SPELL_MOLTEN_BARRAGE_RIGHT
@ SPELL_SUMMON_SMOULDERING_HATCHLING
@ SPELL_MOLTEN_BARRAGE_EFFECT_L
@ SPELL_MOLTEN_BARRAGE_EFFECT_R
@ SPELL_SLEEP_ULTRA_HIGH_PRIORITY
@ SPELL_ALYSRAZOR_COSMETIC_EGG_XPLOSION
@ SPELL_MOLTEN_EGG_TRASH_CALL_R
void AddSC_boss_alysrazor()
#define SPELL_MOLTEN_BARRAGE_EFFECT
@ EVENT_CONTINUE_SPITTING
@ EVENT_FIEROCLAST_BARRAGE
@ EVENT_SUMMON_SMOULDERING_HATCHLING
virtual void MoveInLineOfSight(Unit *)
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void Respawn(bool force=false)
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetDisplayId(uint32 displayId, bool setNative=false) override
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
bool operator()(Unit *object) const
MoltenEggCheck(Creature *pile)
void MoveFollow(Unit *target, float dist, ChaseAngle angle, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_ACTIVE)
void MoveTo(Vector3 const &destination, bool generatePath=true, bool forceDestination=false)
void DisableTransportPathTransformations()
void SetFacing(float angle)
RespawnEggEvent(Creature *egg)
bool Execute(uint64, uint32) override
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< CastHandler > AfterCast
Creature * GetHitCreature() const
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
SpellInfo const * GetSpellInfo() const
void Despawn(Creature const *summon)
void Summon(Creature const *summon)
void AddThreat(Unit *target, float amount, SpellInfo const *spell=nullptr, bool ignoreModifiers=false, bool ignoreRedirects=false)
== AFFECT MY THREAT LIST ==
float GetThreat(Unit const *who, bool includeOffline=false) const
void operator()(Creature *creature) const
virtual void AttackStart(Unit *victim)
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 ClearUnitState(uint32 f)
void RestoreDisplayId(bool ignorePositiveAurasPreventingMounting=false)
ThreatManager & GetThreatManager()
UF::UpdateField< UF::UnitData, 0, TYPEID_UNIT > m_unitData
void PlayOneShotAnimKitId(uint16 animKitId)
void SetFaction(uint32 faction) override
MotionMaster * GetMotionMaster()
void SetUninteractible(bool apply)
void AddUnitState(uint32 f)
bool IsCharmedOwnedByPlayerOrPlayer() const
uint32 GetDisplayId() const
uint32 GetNativeDisplayId() const
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
virtual void SetDisplayId(uint32 displayId, bool setNative=false)
void InterruptSpell(CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true)
Spell * GetCurrentSpell(CurrentSpellTypes spellType) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
float GetDistance2d(WorldObject const *obj) const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
CreatureAI * GetAI(Creature *creature) const override
npc_blazing_monstrosity()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
void HandleEffect(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const override
spell_alysrazor_aggro_closest()
bool Validate(SpellInfo const *) override
void HandleExplosion(SpellEffIndex effIndex)
spell_alysrazor_cosmetic_egg_xplosion()
SpellScript * GetSpellScript() const override
bool Validate(SpellInfo const *) override
spell_alysrazor_fieroblast()
SpellScript * GetSpellScript() const override
bool Validate(SpellInfo const *) override
void TurnBird(SpellEffIndex effIndex)
void KnockBarrage(SpellEffIndex effIndex)
spell_alysrazor_turn_monstrosity()
SpellScript * GetSpellScript() const override
@ NPC_SMOULDERING_HATCHLING
@ NPC_BLAZING_MONSTROSITY_RIGHT
@ NPC_BLAZING_MONSTROSITY_LEFT
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
constexpr void SetOrientation(float orientation)
void UpdateAI(uint32 diff) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
void JustDied(Unit *) override
void SummonedCreatureDespawn(Creature *summon) override
void EnterEvadeMode(EvadeReason why) override
void JustEngagedWith(Unit *) override
void JustSummoned(Creature *summon) override
void JustReachedHome() override
npc_blazing_monstrosityAI(Creature *creature)
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
void DoAction(int32 action) override
uint32 _callHatchlingSpell
void UpdateAI(uint32 diff) override
npc_egg_pileAI(Creature *creature)
void JustReachedHome() override
void JustDied(Unit *) override
npc_harbinger_of_flameAI(Creature *creature)
void MoveInLineOfSight(Unit *unit) override
void JustReachedHome() override
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void MovementInform(uint32 movementType, uint32) override
npc_molten_barrageAI(Creature *creature)
void IsSummonedBy(WorldObject *) override
void AttackStart(Unit *target) override