18#ifndef TRINITY_CREATUREAI_H
19#define TRINITY_CREATUREAI_H
38#define TIME_INTERVAL_LOOK 5000
39#define VISIBILITY_RANGE 10000
112 void MoveInLineOfSight_Safe(
Unit* who);
115 void TriggerAlert(
Unit const* who)
const;
118 virtual void EnterEvadeMode(EvadeReason why = EVADE_REASON_OTHER);
170 virtual void JustAppeared();
180 void DoZoneInCombat(
Creature* creature =
nullptr);
250 int32 VisualizeBoundary(
Seconds duration,
Unit* owner =
nullptr,
bool fill =
false)
const;
253 virtual bool CheckInRoom();
255 void SetBoundary(
CreatureBoundary const* boundary,
bool negativeBoundaries =
false);
258 bool IsInBoundary(
Position const* who =
nullptr)
const;
261 void EngagementStart(
Unit* who);
262 void EngagementOver();
263 virtual void MoveInLineOfSight(
Unit* );
265 bool _EnterEvadeMode(EvadeReason why = EVADE_REASON_OTHER);
271 void OnOwnerCombatInteraction(
Unit* target);
@ SELECT_TARGET_ANY_FRIEND
@ SELECT_TARGET_AOE_FRIEND
@ SELECT_TARGET_ANY_ENEMY
@ SELECT_TARGET_SINGLE_FRIEND
@ SELECT_TARGET_SINGLE_ENEMY
@ SELECT_TARGET_AOE_ENEMY
std::vector< AreaBoundary const * > CreatureBoundary
@ PERMIT_BASE_FACTION_SPECIFIC
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
std::optional< T > Optional
Optional helper class to wrap optional values within.
virtual bool OnGossipHello(Player *)
virtual void OnQuestReward(Player *, Quest const *, uint32)
virtual bool CanSeeAlways(WorldObject const *)
virtual void WaypointPathEnded(uint32, uint32)
virtual void WaypointReached(uint32, uint32)
virtual void JustEngagedWith(Unit *)
virtual void OnChannelFinished(SpellInfo const *)
virtual void JustSummoned(Creature *)
CreatureBoundary const * _boundary
virtual PlayerAI * GetAIForCharmedPlayer(Player *)
virtual void OnAuraApplied(AuraApplication const *)
virtual void OnAuraRemoved(AuraApplication const *)
virtual void OwnerAttacked(Unit *target)
@ EVADE_REASON_NO_HOSTILES
@ EVADE_REASON_SEQUENCE_BREAK
CreatureBoundary const * GetBoundary() const
virtual void OnSpellClick(Unit *, bool)
virtual void OnSpellStart(SpellInfo const *)
virtual bool OnGossipSelectCode(Player *, uint32, uint32, char const *)
virtual void JustStartedThreateningMe(Unit *who)
virtual void SpellHitTarget(WorldObject *, SpellInfo const *)
virtual void JustReachedHome()
virtual bool IsEscorted() const
virtual void JustDied(Unit *)
virtual void SpellHit(WorldObject *, SpellInfo const *)
virtual void OnSpellFailed(SpellInfo const *)
virtual void OnSpellCast(SpellInfo const *)
virtual void SummonedCreatureDies(Creature *, Unit *)
virtual void MovementInform(uint32, uint32)
virtual void OwnerAttackedBy(Unit *attacker)
virtual void KilledUnit(Unit *)
virtual bool OnGossipSelect(Player *, uint32, uint32)
virtual void WaypointStarted(uint32, uint32)
== Waypoints system =============================
virtual void ReceiveEmote(Player *, uint32)
virtual Optional< QuestGiverStatus > GetDialogStatus(Player *)
== Gossip system ================================
virtual void PassengerBoarded(Unit *, int8, bool)
== Fields =======================================
virtual void SummonedCreatureDespawn(Creature *)
virtual void CorpseRemoved(uint32 &)
== Triggered Actions Requested ==================
virtual void OnQuestAccept(Player *, Quest const *)
virtual void IsSummonedBy(WorldObject *)
virtual void JustEnteredCombat(Unit *)
virtual void OnCharmed(bool isNew)