Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
npc_orb_carrier::npc_orb_carrierAI Struct Reference
Inheritance diagram for npc_orb_carrier::npc_orb_carrierAI:
Collaboration diagram for npc_orb_carrier::npc_orb_carrierAI:

Public Member Functions

void DoAction (int32 action) OVERRIDE
 npc_orb_carrierAI (Creature *creature)
void UpdateAI (uint32) OVERRIDE
 == Triggered Actions Requested ==================
Public Member Functions inherited from ScriptedAI
void AttackStart (Unit *) OVERRIDE
void AttackStartNoMove (Unit *target)
void DamageTaken (Unit *, uint32 &) OVERRIDE
void DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false)
std::list< Creature * > DoFindFriendlyCC (float range)
std::list< Creature * > DoFindFriendlyMissingBuff (float range, uint32 spellId)
float DoGetThreat (Unit *unit)
void DoModifyThreatPercent (Unit *unit, int32 pct)
void DoPlaySoundToSet (WorldObject *source, uint32 soundId)
void DoResetThreat ()
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
CreatureDoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
void DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f)
void DoStartNoMovement (Unit *target)
void DoStopAttack ()
void DoTeleportAll (float x, float y, float z, float o)
void DoTeleportPlayer (Unit *unit, float x, float y, float z, float o)
void DoTeleportTo (float const pos[4])
void DoTeleportTo (float x, float y, float z, uint32 time=0)
template<class T>
const T & DUNGEON_MODE (const T &normal5, const T &heroic5) const
void EnterCombat (Unit *) OVERRIDE
bool EnterEvadeIfOutOfCombatArea (uint32 const diff)
void ExecuteEvent (uint32) OVERRIDE
DifficultyID GetDifficulty () const
PlayerGetPlayerAtMinimumRange (float minRange)
bool HealthAbovePct (uint32 pct) const
bool HealthBelowPct (uint32 pct) const
bool Is25ManRaid () const
bool IsCombatMovementAllowed () const
bool IsHeroic () const
void JustDied (Unit *) OVERRIDE
void JustSummoned (Creature *) OVERRIDE
void KilledUnit (Unit *) OVERRIDE
void MovementInform (uint32, uint32) OVERRIDE
void OnPossess (bool)
template<class T>
const T & RAID_MODE (const T &normal10, const T &normal25) const
template<class T>
const T & RAID_MODE (const T &normal10, const T &normal25, const T &flex, const T &lfr) const
template<class T>
const T & RAID_MODE (const T &normal10, const T &normal25, const T &heroic10, const T &heroic25, const T &flex, const T &lfr) const
void Reset () OVERRIDE
 ScriptedAI (Creature *creature)
SpellInfo const * SelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, uint32 powerCostMin, uint32 powerCostMax, float rangeMin, float rangeMax, SelectEffect effect)
void SetCombatMovement (bool allowMovement)
void SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
void SpellHit (Unit *, SpellInfo const *) OVERRIDE
void SpellHitTarget (Unit *, SpellInfo const *) OVERRIDE
void SummonedCreatureDespawn (Creature *) OVERRIDE
void UpdateAI (uint32 diff) OVERRIDE
 == Triggered Actions Requested ==================
virtual ~ScriptedAI ()
Public Member Functions inherited from CreatureAI
virtual void AttackedBy (Unit *)
virtual bool CanRespawn ()
virtual bool CanSeeAlways (WorldObject const *)
bool CanSeeEvenInPassiveMode () const
virtual void CorpseRemoved (uint32 &)
 == State checks =================================
 CreatureAI (Creature *creature)
void DoZoneInCombat (Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
virtual void EnterEvadeMode ()
virtual bool IsEscorted ()
virtual void IsSummonedBy (Unit *)
virtual void JustReachedHome ()
virtual void JustRespawned ()
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At =================================
void OnCharmed (bool apply)
virtual void OnSpellClick (Unit *, bool &)
virtual void OwnerAttacked (Unit *)
virtual void OwnerAttackedBy (Unit *)
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields =======================================
virtual void ReceiveEmote (Player *, uint32)
void SetCanSeeEvenInPassiveMode (bool canSeeEvenInPassiveMode)
virtual void SummonedCreatureDies (Creature *, Unit *)
void Talk (uint8 id, WorldObject const *whisperTarget=NULL)
virtual ~CreatureAI ()
Public Member Functions inherited from UnitAI
void AttackStartCaster (Unit *victim, float dist)
virtual bool CanAIAttack (Unit const *) const
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
void DoAddAuraToAllHostilePlayers (uint32 spellid)
void DoCast (uint32 spellId)
void DoCast (Unit *victim, uint32 spellId, bool triggered=false)
void DoCastAOE (uint32 spellId, bool triggered=false)
void DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false)
void DoCastVictim (uint32 spellId, bool triggered=false)
float DoGetSpellMaxRange (uint32 spellId, bool positive=false)
void DoMeleeAttackIfReady ()
bool DoSpellAttackIfReady (uint32 spell)
virtual uint32 GetData (uint32) const
virtual uint64 GetGUID (int32=0) const
virtual void HealDone (Unit *, uint32 &)
virtual void HealReceived (Unit *, uint32 &)
virtual void InitializeAI ()
virtual bool OnGossipHello (Player *player)
template<class PREDICATE>
UnitSelectTarget (SelectAggroTarget targetType, uint32 position, PREDICATE const &predicate)
UnitSelectTarget (SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
template<class PREDICATE>
void SelectTargetList (std::list< Unit * > &targetList, PREDICATE const &predicate, uint32 maxTargets, SelectAggroTarget targetType)
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectAggroTarget targetType, float dist=0.0f, bool playerOnly=false, int32 aura=0)
virtual void SetData (uint32, uint32)
virtual void SetGUID (uint64, int32=0)
virtual void sGossipHello (Player *)
virtual void sGossipSelect (Player *, uint32, uint32)
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
virtual bool sOnDummyEffect (Unit *, uint32, SpellEffIndex)
virtual void sOnGameEvent (bool, uint16)
virtual void SpellInterrupted (uint32, uint32)
virtual void sQuestAccept (Player *, Quest const *)
virtual void sQuestComplete (Player *, Quest const *)
virtual void sQuestReward (Player *, Quest const *, uint32)
virtual void sQuestSelect (Player *, Quest const *)
 UnitAI (Unit *unit)
virtual ~UnitAI ()

Private Member Functions

void TriggerCutter (Unit *caster, Unit *target)

Private Attributes

InstanceScriptinstance

Additional Inherited Members

Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
Public Attributes inherited from ScriptedAI
bool IsFleeing
Creatureme
Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
Protected Member Functions inherited from CreatureAI
bool _EnterEvadeMode ()
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
virtual void MoveInLineOfSight (Unit *)
void SetGazeOn (Unit *target)
bool UpdateVictim ()
bool UpdateVictimWithGaze ()
Protected Attributes inherited from CreatureAI
Creature *const me
Protected Attributes inherited from UnitAI
Unit *const me

Detailed Description

Definition at line 890 of file boss_halion.cpp.

Constructor & Destructor Documentation

◆ npc_orb_carrierAI()

npc_orb_carrier::npc_orb_carrierAI::npc_orb_carrierAI ( Creature * creature)
inline

Definition at line 892 of file boss_halion.cpp.

References ASSERT, Unit::GetVehicleKit(), instance, and ScriptedAI::ScriptedAI().

Member Function Documentation

◆ DoAction()

void npc_orb_carrier::npc_orb_carrierAI::DoAction ( int32 action)
inlinevirtual

◆ TriggerCutter()

void npc_orb_carrier::npc_orb_carrierAI::TriggerCutter ( Unit * caster,
Unit * target )
inlineprivate

Definition at line 940 of file boss_halion.cpp.

References Unit::CastSpell(), SPELL_TWILIGHT_CUTTER, and SPELL_TWILIGHT_PULSE_PERIODIC.

Referenced by DoAction().

◆ UpdateAI()

void npc_orb_carrier::npc_orb_carrierAI::UpdateAI ( uint32 )
inlinevirtual

== Triggered Actions Requested ==================

According to sniffs this spell is cast every 1 or 2 seconds. However, refreshing it looks bad, so just cast the spell if we are not channeling it.

Workaround: This is here because even though the above spell has SPELL_ATTR1_CHANNEL_TRACK_TARGET, we are having two creatures involded here. This attribute is handled clientside, meaning the client sends orientation update itself. Here, no packet is sent, and the creature does not rotate. By forcing the carrier to always be facing the rotation focus, we ensure everything works as it should.

Reimplemented from CreatureAI.

Definition at line 898 of file boss_halion.cpp.

References DATA_ORB_ROTATION_FOCUS, ObjectAccessor::GetCreature(), instance, ScriptedAI::me, OVERRIDE, SPELL_TRACK_ROTATION, and UNIT_STATE_CASTING.

Member Data Documentation

◆ instance

InstanceScript* npc_orb_carrier::npc_orb_carrierAI::instance
private

Definition at line 938 of file boss_halion.cpp.

Referenced by npc_orb_carrierAI(), and UpdateAI().


The documentation for this struct was generated from the following file:
  • src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp