ArcdpsExtension
 
Loading...
Searching...
No Matches
CombatEventHandler.h
Go to the documentation of this file.
1#pragma once
2
4#include "EventSequencer.h"
5
6#include <cstdint>
7#include <format>
8
9namespace ArcdpsExtension {
17 public:
19 : mSequencer([this](cbtevent* ev, ag* src, ag* dst, const char* skillname, uint64_t id, uint64_t revision) -> uintptr_t { EventInternal(ev, src, dst, skillname, id, revision); return 0; }) {
20 }
22 Shutdown();
23 }
24
25 void Event(cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId, uint64_t pRevision = 1);
26
27 bool EventsPending();
28
33 void Reset() {
34 mSequencer.Reset();
35 }
36
37 void Shutdown() {
38 mSequencer.Shutdown();
39 }
40
41 protected:
47 virtual void EventInternal(cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId, uint64_t pRevision);
48
61 virtual void AgentAdded(const std::string& pAccountName, const std::string& pCharacterName, uintptr_t pId, uintptr_t pInstanceId, Prof pProfession, uint32_t pElite, bool pSelf, uint16_t pTeam, uint8_t pSubgroup) {
62 Log("AgentAdded");
63 }
64
72 virtual void AgentRemoved(const std::string& pAccountName, const std::string& pCharacterName, uintptr_t pId, bool pSelf) {
73 Log("AgentRemoved");
74 }
75
80 virtual void TargetChange(uintptr_t pId) {
81 Log("TargetChange");
82 }
83
90 virtual void EnterCombat(uint64_t pTime, uintptr_t pAgentId, uint8_t pSubgroup, const ag& pAgent) {
91 Log("EnterCombat");
92 }
93
100 virtual void ExitCombat(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
101 Log("ExitCombat");
102 }
103
110 virtual void ChangeUp(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
111 Log("ChangeUp");
112 }
113
120 virtual void ChangeDead(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
121 Log("ChangeDead");
122 }
123
130 virtual void ChangeDown(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
131 Log("ChangeDown");
132 }
133
140 virtual void LogStart(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId) {
141 Log("LogStart");
142 }
143
150 virtual void LogEnd(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId) {
151 Log("LogEnd");
152 }
153
160 virtual void LogNpcUpdate(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId) {
161 Log("LogNpcUpdate");
162 }
163
170 virtual void WeaponSwap(uint64_t pTime, uintptr_t pAgentId, WeaponSet pWeaponSet, const ag& pAgent) {
171 Log("WeaponSwap");
172 }
173
181 virtual void Reward(uint64_t pTime, uintptr_t pSelfId, uintptr_t pRewardId, int32_t pRewardType) {
182 Log("Reward");
183 }
184
191 virtual void TeamChange(uint64_t pTime, uintptr_t pAgentId, uintptr_t pNewTeam, const ag& pAgent) {
192 Log("TeamChange");
193 }
194
201 virtual void StackActive(uint64_t pTime, uintptr_t pAgentId, uintptr_t pStackId, const ag& pAgent) {
202 Log("StackActive");
203 }
204
213 virtual void StackReset(uint64_t pTime, uintptr_t pAgentId, uintptr_t pDuration, uint32_t pStackId, const ag& pAgent) {
214 Log(std::format("StackReset|agentName {}|duration {}|stackId {}", pAgent.name, pDuration, pStackId));
215 }
216
221 virtual void StatReset(uint64_t pTime) {
222 Log("StatReset");
223 }
224
229 virtual void Extension(uint64_t pTime, cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId) {
230 Log("Extension");
231 }
232
239 virtual void Delayed(uint64_t pTime, cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId) {
240 Log("Delayed");
241 }
242
248 virtual void InstanceStart(uint64_t pTime, uintptr_t pStartTime) {
249 Log("InstanceStart");
250 }
251
257 virtual void Tickrate(uint64_t pTime, uintptr_t pData) {
258 Log("Tickrate");
259 }
260
266 virtual void Last90BeforeDown(uint64_t pTime, uintptr_t pEnemyAgent, uintptr_t pSinceTime) {
267 Log("Last90BeforeDown");
268 }
269
275 virtual void Activation(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId) {
276 Log("Activation");
277 }
278
285 virtual void BuffRemove(uint64_t pTime, const cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId, uint32_t pStackId) {
286 Log("BuffRemove");
287 }
288
295 virtual void BuffDamage(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId) {
296 Log("BuffDamage");
297 }
298
305 virtual void BuffApply(uint64_t pTime, const cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId, uint32_t pStackId) {
306 Log("BuffApply");
307 }
308
315 virtual void Strike(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId) {
316 Log("Strike");
317 }
318
319 virtual void BuffInitial(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId, uint32_t pStackId) {
320 Log("BuffInitial");
321 }
322
323 virtual void Log(const std::string& pText) {}
324
328 uint64_t mLastEventTime = 0;
329
330 private:
331 EventSequencer mSequencer;
332
333 void BuffEvent(cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId);
334 };
335} // namespace ArcdpsExtension
Prof
Definition arcdps_structs_slim.h:177
WeaponSet
Definition arcdps_structs_slim.h:266
Definition CombatEventHandler.h:16
virtual void WeaponSwap(uint64_t pTime, uintptr_t pAgentId, WeaponSet pWeaponSet, const ag &pAgent)
Definition CombatEventHandler.h:170
virtual void StackActive(uint64_t pTime, uintptr_t pAgentId, uintptr_t pStackId, const ag &pAgent)
Definition CombatEventHandler.h:201
virtual void BuffRemove(uint64_t pTime, const cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId, uint32_t pStackId)
Definition CombatEventHandler.h:285
virtual void BuffApply(uint64_t pTime, const cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId, uint32_t pStackId)
Definition CombatEventHandler.h:305
void Reset()
Definition CombatEventHandler.h:33
virtual void EnterCombat(uint64_t pTime, uintptr_t pAgentId, uint8_t pSubgroup, const ag &pAgent)
Definition CombatEventHandler.h:90
virtual void ChangeDown(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:130
virtual void StackReset(uint64_t pTime, uintptr_t pAgentId, uintptr_t pDuration, uint32_t pStackId, const ag &pAgent)
Definition CombatEventHandler.h:213
virtual void TeamChange(uint64_t pTime, uintptr_t pAgentId, uintptr_t pNewTeam, const ag &pAgent)
Definition CombatEventHandler.h:191
virtual void BuffDamage(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:295
virtual void Extension(uint64_t pTime, cbtevent *pEvent, ag *pSrc, ag *pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:229
virtual void AgentRemoved(const std::string &pAccountName, const std::string &pCharacterName, uintptr_t pId, bool pSelf)
Definition CombatEventHandler.h:72
virtual void StatReset(uint64_t pTime)
Definition CombatEventHandler.h:221
virtual void BuffInitial(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId, uint32_t pStackId)
Definition CombatEventHandler.h:319
virtual void ChangeUp(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:110
virtual void Strike(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:315
virtual void LogEnd(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId)
Definition CombatEventHandler.h:150
virtual void Last90BeforeDown(uint64_t pTime, uintptr_t pEnemyAgent, uintptr_t pSinceTime)
Definition CombatEventHandler.h:266
CombatEventHandler()
Definition CombatEventHandler.h:18
virtual void Reward(uint64_t pTime, uintptr_t pSelfId, uintptr_t pRewardId, int32_t pRewardType)
Definition CombatEventHandler.h:181
virtual void Log(const std::string &pText)
Definition CombatEventHandler.h:323
virtual ~CombatEventHandler()
Definition CombatEventHandler.h:21
virtual void AgentAdded(const std::string &pAccountName, const std::string &pCharacterName, uintptr_t pId, uintptr_t pInstanceId, Prof pProfession, uint32_t pElite, bool pSelf, uint16_t pTeam, uint8_t pSubgroup)
Definition CombatEventHandler.h:61
virtual void TargetChange(uintptr_t pId)
Definition CombatEventHandler.h:80
void Shutdown()
Definition CombatEventHandler.h:37
virtual void LogNpcUpdate(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId)
Definition CombatEventHandler.h:160
virtual void Activation(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:275
virtual void Tickrate(uint64_t pTime, uintptr_t pData)
Definition CombatEventHandler.h:257
virtual void ChangeDead(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:120
virtual void ExitCombat(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:100
virtual void Delayed(uint64_t pTime, cbtevent *pEvent, ag *pSrc, ag *pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:239
virtual void InstanceStart(uint64_t pTime, uintptr_t pStartTime)
Definition CombatEventHandler.h:248
virtual void EventInternal(cbtevent *pEvent, ag *pSrc, ag *pDst, const char *pSkillname, uint64_t pId, uint64_t pRevision)
Definition CombatEventHandler.cpp:13
virtual void LogStart(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId)
Definition CombatEventHandler.h:140
Definition EventSequencer.h:12
Definition ArcdpsExtension.h:10
void Shutdown()
Definition ArcdpsExtension.cpp:41
Definition arcdps_structs_slim.h:320
const char * name
Definition arcdps_structs_slim.h:321
Definition arcdps_structs_slim.h:289