Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
CombatAI.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_COMBATAI_H
7
#define SKYFIRE_COMBATAI_H
8
9
#include "
ConditionMgr.h
"
10
#include "
CreatureAI.h
"
11
#include "
CreatureAIImpl.h
"
12
13
class
Creature
;
14
15
class
AggressorAI
:
public
CreatureAI
16
{
17
public
:
18
explicit
AggressorAI
(
Creature
* c) :
CreatureAI
(c) { }
19
20
void
UpdateAI
(
uint32
)
OVERRIDE
;
21
static
int
Permissible
(
const
Creature
*);
22
};
23
24
typedef
std::vector<uint32>
SpellVct
;
25
26
class
CombatAI
:
public
CreatureAI
27
{
28
public
:
29
explicit
CombatAI
(
Creature
* c) :
CreatureAI
(c) { }
30
31
void
InitializeAI
()
OVERRIDE
;
32
void
Reset
()
OVERRIDE
;
33
void
EnterCombat
(
Unit
* who)
OVERRIDE
;
34
void
JustDied
(
Unit
* killer)
OVERRIDE
;
35
void
UpdateAI
(
uint32
diff)
OVERRIDE
;
36
void
SpellInterrupted
(
uint32
spellId,
uint32
unTimeMs)
OVERRIDE
;
37
static
int
Permissible
(const
Creature
*);
38
protected:
39
EventMap
events
;
40
SpellVct
spells
;
41
};
42
43
class
CasterAI
: public
CombatAI
44
{
45
public
:
46
explicit
CasterAI
(
Creature
* c) :
CombatAI
(c) {
m_attackDist
=
MELEE_RANGE
; }
47
void
InitializeAI
()
OVERRIDE
;
48
void
AttackStart
(
Unit
* victim)
OVERRIDE
{
AttackStartCaster
(victim,
m_attackDist
); }
49
void
UpdateAI
(
uint32
diff)
OVERRIDE
;
50
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
;
51
private
:
52
float
m_attackDist
;
53
};
54
55
struct
ArcherAI
:
public
CreatureAI
56
{
57
public
:
58
explicit
ArcherAI
(
Creature
* c);
59
void
AttackStart
(
Unit
* who)
OVERRIDE
;
60
void
UpdateAI
(
uint32
diff)
OVERRIDE
;
61
62
static
int
Permissible
(
const
Creature
*);
63
protected
:
64
float
m_minRange
;
65
};
66
67
struct
TurretAI
:
public
CreatureAI
68
{
69
public
:
70
explicit
TurretAI
(
Creature
* c);
71
bool
CanAIAttack
(
const
Unit
* who)
const
;
72
void
AttackStart
(
Unit
* who)
OVERRIDE
;
73
void
UpdateAI
(
uint32
diff)
OVERRIDE
;
74
75
static
int
Permissible
(
const
Creature
*);
76
protected
:
77
float
m_minRange
;
78
};
79
80
#define VEHICLE_CONDITION_CHECK_TIME 1000
81
#define VEHICLE_DISMISS_TIME 5000
82
struct
VehicleAI
:
public
CreatureAI
83
{
84
public
:
85
explicit
VehicleAI
(
Creature
* c);
86
87
void
UpdateAI
(
uint32
diff)
OVERRIDE
;
88
static
int
Permissible
(
const
Creature
*);
89
void
Reset
()
OVERRIDE
;
90
void
MoveInLineOfSight
(
Unit
*)
OVERRIDE
{ }
91
void
AttackStart
(
Unit
*)
OVERRIDE
{ }
92
void
OnCharmed(
bool
apply)
OVERRIDE
;
93
94
private
:
95
bool
m_IsVehicleInUse
;
96
void
LoadConditions
();
97
void
CheckConditions
(
const
uint32
diff);
98
ConditionList
conditions
;
99
uint32
m_ConditionsTimer
;
100
bool
m_DoDismiss
;
101
uint32
m_DismissTimer
;
102
};
103
104
#endif
SpellVct
std::vector< uint32 > SpellVct
Definition
CombatAI.h:24
ConditionMgr.h
ConditionList
std::list< Condition * > ConditionList
Definition
ConditionMgr.h:205
CreatureAI.h
CreatureAIImpl.h
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
MELEE_RANGE
#define MELEE_RANGE
Definition
Object.h:33
AggressorAI::Permissible
static int Permissible(const Creature *)
Definition
CombatAI.cpp:13
AggressorAI::AggressorAI
AggressorAI(Creature *c)
Definition
CombatAI.h:18
AggressorAI::UpdateAI
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
Definition
CombatAI.cpp:22
CasterAI::AttackStart
void AttackStart(Unit *victim) OVERRIDE
Definition
CombatAI.h:48
CasterAI::m_attackDist
float m_attackDist
Definition
CombatAI.h:52
CasterAI::CasterAI
CasterAI(Creature *c)
Definition
CombatAI.h:46
CombatAI::JustDied
void JustDied(Unit *killer) OVERRIDE
Definition
CombatAI.cpp:65
CombatAI::CombatAI
CombatAI(Creature *c)
Definition
CombatAI.h:29
CombatAI::EnterCombat
void EnterCombat(Unit *who) OVERRIDE
Definition
CombatAI.cpp:72
CombatAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
CombatAI.cpp:83
CombatAI::SpellInterrupted
void SpellInterrupted(uint32 spellId, uint32 unTimeMs) OVERRIDE
Definition
CombatAI.cpp:102
CombatAI::InitializeAI
void InitializeAI() OVERRIDE
Definition
CombatAI.cpp:51
CombatAI::Reset
void Reset() OVERRIDE
Definition
CombatAI.cpp:60
CombatAI::spells
SpellVct spells
Definition
CombatAI.h:40
CombatAI::events
EventMap events
Definition
CombatAI.h:39
CreatureAI::CreatureAI
CreatureAI(Creature *creature)
Definition
CreatureAI.h:69
Creature
Definition
Creature.h:427
EventMap
Definition
CreatureAIImpl.h:304
Permissible
Definition
FactoryHolder.h:43
UnitAI::AttackStartCaster
void AttackStartCaster(Unit *victim, float dist)
Definition
UnitAI.cpp:22
Unit
Definition
Unit.h:1367
ArcherAI::ArcherAI
ArcherAI(Creature *c)
Definition
CombatAI.cpp:175
ArcherAI::AttackStart
void AttackStart(Unit *who) OVERRIDE
Definition
CombatAI.cpp:189
ArcherAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
CombatAI.cpp:209
ArcherAI::m_minRange
float m_minRange
Definition
CombatAI.h:64
ArcherAI::Permissible
static int Permissible(const Creature *)
Definition
CombatAI.cpp:36
TurretAI::TurretAI
TurretAI(Creature *c)
Definition
CombatAI.cpp:224
TurretAI::m_minRange
float m_minRange
Definition
CombatAI.h:77
TurretAI::AttackStart
void AttackStart(Unit *who) OVERRIDE
Definition
CombatAI.cpp:244
TurretAI::CanAIAttack
bool CanAIAttack(const Unit *who) const
Definition
CombatAI.cpp:235
TurretAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
CombatAI.cpp:250
TurretAI::Permissible
static int Permissible(const Creature *)
Definition
CombatAI.cpp:41
VehicleAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
CombatAI.cpp:270
VehicleAI::LoadConditions
void LoadConditions()
Definition
CombatAI.cpp:307
VehicleAI::m_DismissTimer
uint32 m_DismissTimer
Definition
CombatAI.h:101
VehicleAI::m_IsVehicleInUse
bool m_IsVehicleInUse
Definition
CombatAI.h:95
VehicleAI::m_ConditionsTimer
uint32 m_ConditionsTimer
Definition
CombatAI.h:99
VehicleAI::CheckConditions
void CheckConditions(const uint32 diff)
Definition
CombatAI.cpp:314
VehicleAI::VehicleAI
VehicleAI(Creature *c)
Definition
CombatAI.cpp:262
VehicleAI::Permissible
static int Permissible(const Creature *)
Definition
CombatAI.cpp:46
VehicleAI::m_DoDismiss
bool m_DoDismiss
Definition
CombatAI.h:100
VehicleAI::Reset
void Reset() OVERRIDE
Definition
CombatAI.cpp:287
VehicleAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
CombatAI.h:91
VehicleAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *) OVERRIDE
Definition
CombatAI.h:90
VehicleAI::conditions
ConditionList conditions
Definition
CombatAI.h:98
src
server
game
AI
CoreAI
CombatAI.h
Generated on
for Project SkyFire Core by
1.17.0