18#ifndef TRINITY_CREATUREAI_H
19#define TRINITY_CREATUREAI_H
39#define TIME_INTERVAL_LOOK 5000
40#define VISIBILITY_RANGE 10000
84 void MoveInLineOfSight_Safe(
Unit* who);
87 void TriggerAlert(
Unit const* who)
const;
151 virtual void JustAppeared();
162 static void DoZoneInCombat(
Creature* creature);
232 int32 VisualizeBoundary(
Seconds duration,
Unit* owner =
nullptr,
bool fill =
false)
const;
235 virtual bool CheckInRoom();
237 void SetBoundary(
CreatureBoundary const* boundary,
bool negativeBoundaries =
false);
240 bool IsInBoundary(
Position const* who =
nullptr)
const;
243 void EngagementStart(
Unit* who);
244 void EngagementOver();
245 virtual void MoveInLineOfSight(
Unit* );
253 void OnOwnerCombatInteraction(
Unit* target);
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 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 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)