AzeorthCore 3.3.5a
OpenSource WoW Emulator
No Matches
npc_scarlet_guard::npc_scarlet_guardAI Struct Reference
Inheritance diagram for npc_scarlet_guard::npc_scarlet_guardAI:
SmartAI CreatureAI UnitAI

Public Member Functions

 npc_scarlet_guardAI (Creature *creature)
void Reset () override
void MoveInLineOfSight (Unit *who) override
- Public Member Functions inherited from SmartAI
 ~SmartAI () override
 SmartAI (Creature *c)
bool IsAIControlled () const
void StartPath (bool run=false, uint32 path=0, bool repeat=false, Unit *invoker=nullptr)
bool LoadPath (uint32 entry)
void PausePath (uint32 delay, bool forced=false)
void StopPath (uint32 DespawnTime=0, uint32 quest=0, bool fail=false)
void EndPath (bool fail=false)
void ResumePath ()
WayPointGetNextWayPoint ()
void GenerateWayPointArray (Movement::PointsArray *points)
bool HasEscortState (uint32 uiEscortState)
void AddEscortState (uint32 uiEscortState)
bool IsEscorted () override
void RemoveEscortState (uint32 uiEscortState)
void SetAutoAttack (bool on)
void SetCombatMove (bool on)
bool CanCombatMove ()
void SetFollow (Unit *target, float dist=0.0f, float angle=0.0f, uint32 credit=0, uint32 end=0, uint32 creditType=0, bool aliveState=true)
void StopFollow (bool complete)
void SetScript9 (SmartScriptHolder &e, uint32 entry, Unit *invoker)
SmartScriptGetScript ()
bool IsEscortInvokerInRange ()
void JustRespawned () override
void JustReachedHome () override
void EnterCombat (Unit *enemy) override
void EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER) override
void JustDied (Unit *killer) override
void KilledUnit (Unit *victim) override
void JustSummoned (Creature *creature) override
void SummonedCreatureDies (Creature *summon, Unit *killer) override
void AttackStart (Unit *who) override
void MoveInLineOfSight (Unit *who) override
void SpellHit (Unit *unit, SpellInfo const *spellInfo) override
void SpellHitTarget (Unit *target, SpellInfo const *spellInfo) override
void DamageTaken (Unit *done_by, uint32 &damage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask) override
void HealReceived (Unit *doneBy, uint32 &addhealth) override
void UpdateAI (uint32 diff) override
void ReceiveEmote (Player *player, uint32 textEmote) override
void MovementInform (uint32 MovementType, uint32 Data) override
void IsSummonedBy (Unit *summoner) override
void DamageDealt (Unit *doneTo, uint32 &damage, DamageEffectType damagetyp) override
void SummonedCreatureDespawn (Creature *unit) override
void CorpseRemoved (uint32 &respawnDelay) override
 == Triggered Actions Requested ================== More...
void PassengerBoarded (Unit *who, int8 seatId, bool apply) override
 == Fields ======================================= More...
void InitializeAI () override
void OnCharmed (bool apply) override
bool CanAIAttack (Unit const *who) const override
void DoAction (int32 param=0) override
uint32 GetData (uint32 id=0) const override
void SetData (uint32 id, uint32 value) override
void SetGUID (ObjectGuid guid, int32 id=0) override
ObjectGuid GetGUID (int32 id=0) const override
void MovepointReached (uint32 id)
void SetRun (bool run=true)
void SetFly (bool fly=true)
void SetSwim (bool swim=true)
void SetEvadeDisabled (bool disable=true)
void SetInvincibilityHpLevel (uint32 level)
void sGossipHello (Player *player) override
void sGossipSelect (Player *player, uint32 sender, uint32 action) override
void sGossipSelectCode (Player *player, uint32 sender, uint32 action, const char *code) override
void sQuestAccept (Player *player, Quest const *quest) override
void sQuestReward (Player *player, Quest const *quest, uint32 opt) override
void sOnGameEvent (bool start, uint16 eventId) override
void SetDespawnTime (uint32 t)
void StartDespawn ()
void OnSpellClick (Unit *clicker, bool &result) override
void SetWPPauseTimer (uint32 time)
void SetForcedCombatMove (float dist)
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 CreatureAI (Creature *creature)
 ~CreatureAI () override
void MoveCircleChecks ()
void MoveBackwardsChecks ()
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At ================================= More...
void TriggerAlert (Unit const *who) const
virtual bool CanRespawn ()
virtual void EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
virtual void EnterCombat (Unit *)
virtual void JustDied (Unit *)
virtual void KilledUnit (Unit *)
virtual void JustSummoned (Creature *)
virtual void IsSummonedBy (Unit *)
virtual void SummonedCreatureDespawn (Creature *)
virtual void SummonedCreatureDies (Creature *, Unit *)
virtual void SummonedCreatureDespawnAll ()
virtual void SpellHit (Unit *, SpellInfo const *)
virtual void SpellHitTarget (Unit *, SpellInfo const *)
virtual void AttackedBy (Unit *)
virtual bool IsEscorted ()
virtual void JustRespawned ()
virtual void MovementInform (uint32, uint32)
virtual void PathEndReached (uint32)
void OnCharmed (bool apply) override
virtual void JustReachedHome ()
void DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
virtual void ReceiveEmote (Player *, uint32)
virtual void OwnerAttackedBy (Unit *)
virtual void OwnerAttacked (Unit *)
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ================== More...
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields ======================================= More...
virtual bool BeforeSpellClick (Unit *)
virtual void OnSpellClick (Unit *, bool &)
virtual bool CanSeeAlways (WorldObject const *)
virtual bool CanBeSeen (Player const *)
virtual bool CanAlwaysBeDetectable (WorldObject const *)
virtual void PetStopAttack ()
virtual bool CheckInRoom ()
CreatureBoundary const * GetBoundary () const
void SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false)
bool IsInBoundary (Position const *who=nullptr) const
virtual void CalculateThreat (Unit *, float &, SpellInfo const *)
virtual bool OnTeleportUnreacheablePlayer (Player *)
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
virtual ~UnitAI ()
virtual bool CanAIAttack (Unit const *) const
virtual void AttackStart (Unit *)
virtual void UpdateAI (uint32)=0
virtual void InitializeAI ()
virtual void Reset ()
virtual void OnCharmed (bool apply)=0
virtual void DoAction (int32)
virtual uint32 GetData (uint32) const
virtual void SetData (uint32, uint32)
virtual void SetGUID (ObjectGuid, int32=0)
virtual ObjectGuid GetGUID (int32=0) const
UnitSelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
template<class PREDICATE >
UnitSelectTarget (SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, float dist=0.0f, bool playerOnly=false, int32 aura=0)
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, PREDICATE const &predicate, uint32 maxTargets, SelectTargetMethod targetType)
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
virtual void HealReceived (Unit *, uint32 &)
virtual void HealDone (Unit *, uint32 &)
void AttackStartCaster (Unit *victim, float dist)
SpellCastResult DoAddAuraToAllHostilePlayers (uint32 spellid)
SpellCastResult DoCast (uint32 spellId)
SpellCastResult DoCast (Unit *victim, uint32 spellId, bool triggered=false)
SpellCastResult DoCastSelf (uint32 spellId, bool triggered=false)
SpellCastResult DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false)
SpellCastResult DoCastVictim (uint32 spellId, bool triggered=false)
SpellCastResult DoCastAOE (uint32 spellId, bool triggered=false)
SpellCastResult DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
float DoGetSpellMaxRange (uint32 spellId, bool positive=false)
void DoMeleeAttackIfReady ()
bool DoSpellAttackIfReady (uint32 spell)
void DoSpellAttackToRandomTargetIfReady (uint32 spell, uint32 threatTablePosition=0, float dist=0.f, bool playerOnly=true)
virtual void SummonMovementInform (Creature *, uint32, uint32)
virtual void sGossipHello (Player *)
virtual void sGossipSelect (Player *, uint32, uint32)
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
virtual void sQuestAccept (Player *, Quest const *)
virtual void sQuestSelect (Player *, Quest const *)
virtual void sQuestComplete (Player *, Quest const *)
virtual void sQuestReward (Player *, Quest const *, uint32)
virtual void sOnGameEvent (bool, uint16)
virtual std::string GetDebugInfo () const

Private Attributes

bool SayAshbringer = false

Additional Inherited Members

- Public Types inherited from CreatureAI
enum  EvadeReason {
- Static Public Member Functions inherited from SmartAI
static int32 Permissible (Creature const *)
- Static Public Member Functions inherited from CreatureAI
static bool IsInBounds (CreatureBoundary const &boundary, Position const *who)
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
- Public Attributes inherited from SmartAI
uint32 mEscortQuestID
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
bool UpdateVictimWithGaze ()
void SetGazeOn (Unit *target)
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
virtual void MoveInLineOfSight (Unit *)
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
- Protected Attributes inherited from CreatureAI
Creature *const me
EventMap events
CreatureBoundary const * _boundary
bool _negateBoundary
- Protected Attributes inherited from UnitAI
Unit *const me

Detailed Description

Constructor & Destructor Documentation

◆ npc_scarlet_guardAI()

npc_scarlet_guard::npc_scarlet_guardAI::npc_scarlet_guardAI ( Creature creature)
205: SmartAI(creature) { }
Definition: SmartAI.h:45

Member Function Documentation

◆ MoveInLineOfSight()

void npc_scarlet_guard::npc_scarlet_guardAI::MoveInLineOfSight ( Unit who)

Reimplemented from SmartAI.

213 {
214 if (who && who->GetDistance2d(me) < 12.0f)
215 {
216 if (Player* player = who->ToPlayer())
217 {
218 if (player->HasAura(AURA_ASHBRINGER) && !SayAshbringer)
219 {
223 me->SetFacingToObject(player);
227 SayAshbringer = true;
228 }
229 }
230 }
233 }
Definition: Unit.h:61
Definition: Unit.h:126
Definition: SpellAuraDefines.h:89
Definition: instance_scarlet_monastery.cpp:190
Definition: instance_scarlet_monastery.cpp:189
Definition: boss_fathomlord_karathress.cpp:23
Definition: SharedDefines.h:173
Creature *const me
Definition: CreatureAI.h:72
void MoveInLineOfSight(Unit *who) override
Definition: SmartAI.cpp:691
Player * ToPlayer()
Definition: Object.h:195
float GetDistance2d(WorldObject const *obj) const
Definition: Object.cpp:1265
Definition: Player.h:1046
void SetFaction(uint32 faction)
Definition: Unit.cpp:10873
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:19751
void SetFacingToObject(WorldObject *object)
Definition: Unit.cpp:21485
virtual void SetSheath(SheathState sheathed)
Definition: Unit.h:1490
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1428
void SetStandState(uint8 state)
Definition: Unit.cpp:17668
bool SayAshbringer
Definition: instance_scarlet_monastery.cpp:235

References Unit::AddAura(), AURA_ASHBRINGER, Unit::CastSpell(), FACTION_FRIENDLY, WorldObject::GetDistance2d(), CreatureAI::me, SmartAI::MoveInLineOfSight(), SAY_WELCOME, SayAshbringer, Unit::SetFacingToObject(), Unit::SetFaction(), Unit::SetSheath(), Unit::SetStandState(), SHEATH_STATE_UNARMED, SPELL_AURA_MOD_ROOT, Object::ToPlayer(), and UNIT_STAND_STATE_KNEEL.

◆ Reset()

void npc_scarlet_guard::npc_scarlet_guardAI::Reset ( )

Reimplemented from UnitAI.

208 {
209 SayAshbringer = false;
210 }

References SayAshbringer.

Member Data Documentation

◆ SayAshbringer

bool npc_scarlet_guard::npc_scarlet_guardAI::SayAshbringer = false

Referenced by MoveInLineOfSight(), and Reset().