Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
PetAI.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRE_PETAI_H
7#define SKYFIRE_PETAI_H
8
9#include "CreatureAI.h"
10#include "Timer.h"
11
12class Creature;
13class Spell;
14
15class PetAI : public CreatureAI
16{
17public:
18 explicit PetAI(Creature* c);
19
21 static int Permissible(const Creature*);
22
23 void KilledUnit(Unit* /*victim*/) OVERRIDE;
24 void AttackStart(Unit* target) OVERRIDE;
25 void MovementInform(uint32 moveType, uint32 data) OVERRIDE;
26 void OwnerAttackedBy(Unit* attacker) OVERRIDE;
27 void OwnerAttacked(Unit* target) OVERRIDE;
28 void AttackedBy(Unit* attacker) OVERRIDE;
29 void ReceiveEmote(Player* player, uint32 textEmote) OVERRIDE;
30
31 // The following aren't used by the PetAI but need to be defined to override
32 // default CreatureAI functions which interfere with the PetAI
33 //
34 void MoveInLineOfSight(Unit* /*who*/) OVERRIDE { } // CreatureAI interferes with returning pets
35 void MoveInLineOfSight_Safe(Unit* /*who*/) { } // CreatureAI interferes with returning pets
36 void EnterEvadeMode() OVERRIDE { } // For fleeing, pets don't use this type of Evade mechanic
37
38private:
39 //bool _isVisible(Unit*) const;
40 bool _needToStop(void);
41 void _stopAttack(void);
42
43 void UpdateAllies();
44
47 std::set<uint64> m_AllySet;
49
50 Unit* SelectNextTarget(bool allowAutoSelect) const;
52 void DoAttack(Unit* target, bool chase);
53 bool CanAttack(Unit* target);
55};
56#endif
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
CreatureAI(Creature *creature)
Definition CreatureAI.h:69
void OwnerAttacked(Unit *target) OVERRIDE
Definition PetAI.cpp:341
bool _needToStop(void)
Definition PetAI.cpp:33
bool CanAttack(Unit *target)
Definition PetAI.cpp:507
static int Permissible(const Creature *)
Definition PetAI.cpp:20
void UpdateAllies()
Definition PetAI.cpp:247
void AttackedBy(Unit *attacker) OVERRIDE
Definition PetAI.cpp:603
bool inCombat
Definition PetAI.h:46
void KilledUnit(Unit *) OVERRIDE
Definition PetAI.cpp:287
void DoAttack(Unit *target, bool chase)
Definition PetAI.cpp:441
PetAI(Creature *c)
Definition PetAI.cpp:28
void MovementInform(uint32 moveType, uint32 data) OVERRIDE
Definition PetAI.cpp:473
TimeTracker i_tracker
Definition PetAI.h:45
void OwnerAttackedBy(Unit *attacker) OVERRIDE
Definition PetAI.cpp:321
void ClearCharmInfoFlags()
Definition PetAI.cpp:587
void EnterEvadeMode() OVERRIDE
Definition PetAI.h:36
uint32 m_updateAlliesTimer
Definition PetAI.h:48
void MoveInLineOfSight(Unit *) OVERRIDE
Definition PetAI.h:34
void AttackStart(Unit *target) OVERRIDE
Definition PetAI.cpp:309
void _stopAttack(void)
Definition PetAI.cpp:42
Unit * SelectNextTarget(bool allowAutoSelect) const
Definition PetAI.cpp:362
void MoveInLineOfSight_Safe(Unit *)
Definition PetAI.h:35
void ReceiveEmote(Player *player, uint32 textEmote) OVERRIDE
Definition PetAI.cpp:563
void HandleReturnMovement()
Definition PetAI.cpp:406
std::set< uint64 > m_AllySet
Definition PetAI.h:47
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
Definition PetAI.cpp:63
Definition Spell.h:289
Definition Unit.h:1367