Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
UnitEvents.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 SF_UNITEVENTS
7#define SF_UNITEVENTS
8
9#include "Common.h"
10
11class ThreatContainer;
12class ThreatManager;
14
15//==============================================================
16//==============================================================
17
19{
20 // Player/Pet changed on/offline status
22
23 // Threat for Player/Pet changed
25
26 // Player/Pet will be removed from list (dead) [for internal use]
28
29 // Player/Pet entered/left water or some other place where it is/was not accessible for the creature
31
32 // Threat list is going to be sorted (if dirty flag is set)
34
35 // New target should be fetched, could tbe the current target as well
37
38 // A new victim (target) was set. Could be NULL
40
41 // Future use
42 //UEV_UNIT_KILLED = 1<<7,
43
44 //Future use
45 //UEV_UNIT_HEALTH_CHANGE = 1<<8,
46};
47
48#define UEV_THREAT_REF_EVENT_MASK (UEV_THREAT_REF_ONLINE_STATUS | UEV_THREAT_REF_THREAT_CHANGE | UEV_THREAT_REF_REMOVE_FROM_LIST | UEV_THREAT_REF_ASSECCIBLE_STATUS)
49#define UEV_THREAT_MANAGER_EVENT_MASK (UEV_THREAT_SORT_LIST | UEV_THREAT_SET_NEXT_TARGET | UEV_THREAT_VICTIM_CHANGED)
50#define UEV_ALL_EVENT_MASK (0xffffffff)
51
52// Future use
53//#define UEV_UNIT_EVENT_MASK (UEV_UNIT_KILLED | UEV_UNIT_HEALTH_CHANGE)
54
55//==============================================================
56
58{
59private:
61public:
62 UnitBaseEvent(uint32 pType) { iType = pType; }
63 uint32 getType() const { return iType; }
64 bool matchesTypeMask(uint32 pMask) const { return iType & pMask; }
65
66 void setType(uint32 pType) { iType = pType; }
67};
68
69//==============================================================
70
72{
73private:
76 float iFValue;
77
78public:
81
83 UnitBaseEvent(pType), iThreatManager(NULL), iHostileReference(pHostileReference), iFValue(0.0f) { }
84
85 ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, float pValue) :
86 UnitBaseEvent(pType), iThreatManager(NULL), iHostileReference(pHostileReference), iFValue(pValue) { }
87
88 float getFValue() const { return iFValue; }
89
91
92 void setThreatManager(ThreatManager* pThreatManager) { iThreatManager = pThreatManager; }
93
95};
96
97//==============================================================
98
100{
101private:
103public:
105 ThreatManagerEvent(uint32 pType, HostileReference* pHostileReference) : ThreatRefStatusChangeEvent(pType, pHostileReference), iThreatContainer(NULL) { }
106
107 void setThreatContainer(ThreatContainer* pThreatContainer) { iThreatContainer = pThreatContainer; }
108
110};
111
112//==============================================================
113#endif
std::uint32_t uint32
Definition Define.h:77
UNIT_EVENT_TYPE
Definition UnitEvents.h:19
@ UEV_THREAT_REF_THREAT_CHANGE
Definition UnitEvents.h:24
@ UEV_THREAT_SORT_LIST
Definition UnitEvents.h:33
@ UEV_THREAT_REF_ONLINE_STATUS
Definition UnitEvents.h:21
@ UEV_THREAT_REF_REMOVE_FROM_LIST
Definition UnitEvents.h:27
@ UEV_THREAT_REF_ASSECCIBLE_STATUS
Definition UnitEvents.h:30
@ UEV_THREAT_SET_NEXT_TARGET
Definition UnitEvents.h:36
@ UEV_THREAT_VICTIM_CHANGED
Definition UnitEvents.h:39
void setThreatContainer(ThreatContainer *pThreatContainer)
Definition UnitEvents.h:107
ThreatManagerEvent(uint32 pType, HostileReference *pHostileReference)
Definition UnitEvents.h:105
ThreatContainer * iThreatContainer
Definition UnitEvents.h:102
ThreatContainer * getThreatContainer() const
Definition UnitEvents.h:109
ThreatManagerEvent(uint32 pType)
Definition UnitEvents.h:104
void setThreatManager(ThreatManager *pThreatManager)
Definition UnitEvents.h:92
ThreatRefStatusChangeEvent(uint32 pType, HostileReference *pHostileReference)
Definition UnitEvents.h:82
ThreatRefStatusChangeEvent(uint32 pType)
Definition UnitEvents.h:79
HostileReference * iHostileReference
Definition UnitEvents.h:74
ThreatRefStatusChangeEvent(uint32 pType, HostileReference *pHostileReference, float pValue)
Definition UnitEvents.h:85
ThreatManager * iThreatManager
Definition UnitEvents.h:75
HostileReference * getReference() const
Definition UnitEvents.h:90
ThreatManager * getThreatManager() const
Definition UnitEvents.h:94
bool matchesTypeMask(uint32 pMask) const
Definition UnitEvents.h:64
void setType(uint32 pType)
Definition UnitEvents.h:66
UnitBaseEvent(uint32 pType)
Definition UnitEvents.h:62
uint32 getType() const
Definition UnitEvents.h:63