18#ifndef TRINITY_CREATUREAI_H
19#define TRINITY_CREATUREAI_H
41#define TIME_INTERVAL_LOOK 5000
42#define VISIBILITY_RANGE 10000
86 void MoveInLineOfSight_Safe(
Unit* who);
89 void TriggerAlert(
Unit const* who)
const;
159 virtual void JustAppeared();
170 static void DoZoneInCombat(
Creature* creature);
240 int32 VisualizeBoundary(
Seconds duration,
Unit* owner =
nullptr,
bool fill =
false)
const;
243 virtual bool CheckInRoom();
245 void SetBoundary(
CreatureBoundary const* boundary,
bool negativeBoundaries =
false);
248 bool IsInBoundary(
Position const* who =
nullptr)
const;
251 void EngagementStart(
Unit* who);
252 void EngagementOver();
253 virtual void MoveInLineOfSight(
Unit* );
261 void OnOwnerCombatInteraction(
Unit* target);
std::vector< AreaBoundary const * > CreatureBoundary
@ PERMIT_BASE_FACTION_SPECIFIC
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
std::chrono::seconds Seconds
Seconds shorthand typedef.
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
std::optional< T > Optional
Optional helper class to wrap optional values within.
virtual void JustUnregisteredDynObject(DynamicObject *)
virtual bool OnGossipHello(Player *)
virtual void OnHealthDepleted(Unit *, bool)
virtual bool CanSeeAlways(WorldObject const *)
virtual void WaypointPathEnded(uint32, uint32)
virtual void WaypointReached(uint32, uint32)
virtual void JustEngagedWith(Unit *)
virtual void JustSummonedGameobject(GameObject *)
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)
CreatureBoundary const * GetBoundary() const
virtual void OnSpellClick(Unit *, bool)
virtual void OnSpellStart(SpellInfo const *)
virtual bool OnGossipSelectCode(Player *, uint32, uint32, char const *)
virtual void SummonedGameobjectDespawn(GameObject *)
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 OnQuestReward(Player *, Quest const *, LootItemType, uint32)
virtual void OnSpellFailed(SpellInfo const *)
virtual void OnSpellCast(SpellInfo const *)
virtual void JustUnregisteredAreaTrigger(AreaTrigger *)
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 void PassengerBoarded(Unit *, int8, bool)
== Fields =======================================
virtual void JustRegisteredAreaTrigger(AreaTrigger *)
virtual void SummonedCreatureDespawn(Creature *)
virtual void CorpseRemoved(uint32 &)
== State checks =================================
virtual void OnQuestAccept(Player *, Quest const *)
virtual void IsSummonedBy(WorldObject *)
virtual void JustRegisteredDynObject(DynamicObject *)
virtual void JustEnteredCombat(Unit *)
virtual void AttackStart(Unit *victim)
virtual void OnCharmed(bool isNew)