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#include <string>
9
10namespace ArcdpsExtension {
18 public:
20 : 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; }) {
21 }
23 Shutdown();
24 }
25
26 void Event(cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId, uint64_t pRevision = 1);
27
28 bool EventsPending();
29
34 void Reset() {
35 mSequencer.Reset();
36 }
37
38 void Shutdown() {
39 mSequencer.Shutdown();
40 }
41
42 protected:
48 virtual void EventInternal(cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId, uint64_t pRevision);
49
62 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) {
63 Log("AgentAdded");
64 }
65
73 virtual void AgentRemoved(const std::string& pAccountName, const std::string& pCharacterName, uintptr_t pId, bool pSelf) {
74 Log("AgentRemoved");
75 }
76
81 virtual void TargetChange(uintptr_t pId) {
82 Log("TargetChange");
83 }
84
91 virtual void EnterCombat(uint64_t pTime, uintptr_t pAgentId, uint8_t pSubgroup, const ag& pAgent) {
92 Log("EnterCombat");
93 }
94
101 virtual void ExitCombat(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
102 Log("ExitCombat");
103 }
104
111 virtual void ChangeUp(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
112 Log("ChangeUp");
113 }
114
121 virtual void ChangeDead(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
122 Log("ChangeDead");
123 }
124
131 virtual void ChangeDown(uint64_t pTime, uintptr_t pAgentId, const ag& pAgent) {
132 Log("ChangeDown");
133 }
134
141 virtual void LogStart(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId) {
142 Log("LogStart");
143 }
144
151 virtual void LogEnd(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId) {
152 Log("LogEnd");
153 }
154
161 virtual void LogNpcUpdate(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId) {
162 Log("LogNpcUpdate");
163 }
164
171 virtual void WeaponSwap(uint64_t pTime, uintptr_t pAgentId, WeaponSet pWeaponSet, const ag& pAgent) {
172 Log("WeaponSwap");
173 }
174
182 virtual void Reward(uint64_t pTime, uintptr_t pSelfId, uintptr_t pRewardId, int32_t pRewardType) {
183 Log("Reward");
184 }
185
192 virtual void TeamChange(uint64_t pTime, uintptr_t pAgentId, uintptr_t pNewTeam, const ag& pAgent) {
193 Log("TeamChange");
194 }
195
202 virtual void StackActive(uint64_t pTime, uintptr_t pAgentId, uintptr_t pStackId, const ag& pAgent) {
203 Log("StackActive");
204 }
205
214 virtual void StackReset(uint64_t pTime, uintptr_t pAgentId, uintptr_t pDuration, uint32_t pStackId, const ag& pAgent) {
215 Log(std::format("StackReset|agentName {}|duration {}|stackId {}", pAgent.name, pDuration, pStackId));
216 }
217
222 virtual void StatReset(uint64_t pTime) {
223 Log("StatReset");
224 }
225
230 virtual void Extension(uint64_t pTime, cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId) {
231 Log("Extension");
232 }
233
240 virtual void Delayed(uint64_t pTime, cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId) {
241 Log("Delayed");
242 }
243
249 virtual void InstanceStart(uint64_t pTime, uintptr_t pStartTime) {
250 Log("InstanceStart");
251 }
252
258 virtual void Tickrate(uint64_t pTime, uintptr_t pData) {
259 Log("Tickrate");
260 }
261
267 virtual void Last90BeforeDown(uint64_t pTime, uintptr_t pEnemyAgent, uintptr_t pSinceTime) {
268 Log("Last90BeforeDown");
269 }
270
276 virtual void Activation(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId) {
277 Log("Activation");
278 }
279
286 virtual void BuffRemove(uint64_t pTime, const cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId, uint32_t pStackId) {
287 Log("BuffRemove");
288 }
289
296 virtual void BuffDamage(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId) {
297 Log("BuffDamage");
298 }
299
306 virtual void BuffApply(uint64_t pTime, const cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId, uint32_t pStackId) {
307 Log("BuffApply");
308 }
309
316 virtual void Strike(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId) {
317 Log("Strike");
318 }
319
320 virtual void BuffInitial(uint64_t pTime, cbtevent* pEvent, const ag& pSrc, const ag& pDst, const char* pSkillname, uint64_t pId, uint32_t pStackId) {
321 Log("BuffInitial");
322 }
323
324 virtual void Log(const std::string& pText) {}
325
329 uint64_t mLastEventTime = 0;
330
331 private:
332 EventSequencer mSequencer;
333
334 void BuffEvent(cbtevent* pEvent, ag* pSrc, ag* pDst, const char* pSkillname, uint64_t pId);
335 };
336} // namespace ArcdpsExtension
Prof
Definition arcdps_structs_slim.h:178
WeaponSet
Definition arcdps_structs_slim.h:276
Definition CombatEventHandler.h:17
virtual void WeaponSwap(uint64_t pTime, uintptr_t pAgentId, WeaponSet pWeaponSet, const ag &pAgent)
Definition CombatEventHandler.h:171
virtual void StackActive(uint64_t pTime, uintptr_t pAgentId, uintptr_t pStackId, const ag &pAgent)
Definition CombatEventHandler.h:202
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:286
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:306
void Reset()
Definition CombatEventHandler.h:34
virtual void EnterCombat(uint64_t pTime, uintptr_t pAgentId, uint8_t pSubgroup, const ag &pAgent)
Definition CombatEventHandler.h:91
virtual void ChangeDown(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:131
virtual void StackReset(uint64_t pTime, uintptr_t pAgentId, uintptr_t pDuration, uint32_t pStackId, const ag &pAgent)
Definition CombatEventHandler.h:214
virtual void TeamChange(uint64_t pTime, uintptr_t pAgentId, uintptr_t pNewTeam, const ag &pAgent)
Definition CombatEventHandler.h:192
virtual void BuffDamage(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:296
virtual void Extension(uint64_t pTime, cbtevent *pEvent, ag *pSrc, ag *pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:230
virtual void AgentRemoved(const std::string &pAccountName, const std::string &pCharacterName, uintptr_t pId, bool pSelf)
Definition CombatEventHandler.h:73
virtual void StatReset(uint64_t pTime)
Definition CombatEventHandler.h:222
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:320
virtual void ChangeUp(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:111
virtual void Strike(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:316
virtual void LogEnd(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId)
Definition CombatEventHandler.h:151
virtual void Last90BeforeDown(uint64_t pTime, uintptr_t pEnemyAgent, uintptr_t pSinceTime)
Definition CombatEventHandler.h:267
CombatEventHandler()
Definition CombatEventHandler.h:19
virtual void Reward(uint64_t pTime, uintptr_t pSelfId, uintptr_t pRewardId, int32_t pRewardType)
Definition CombatEventHandler.h:182
virtual void Log(const std::string &pText)
Definition CombatEventHandler.h:324
virtual ~CombatEventHandler()
Definition CombatEventHandler.h:22
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:62
virtual void TargetChange(uintptr_t pId)
Definition CombatEventHandler.h:81
void Shutdown()
Definition CombatEventHandler.h:38
virtual void LogNpcUpdate(uint64_t pTime, uint32_t pServerTime, uint32_t pLocalTime, uintptr_t pSpeciesId)
Definition CombatEventHandler.h:161
virtual void Activation(uint64_t pTime, cbtevent *pEvent, const ag &pSrc, const ag &pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:276
virtual void Tickrate(uint64_t pTime, uintptr_t pData)
Definition CombatEventHandler.h:258
virtual void ChangeDead(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:121
virtual void ExitCombat(uint64_t pTime, uintptr_t pAgentId, const ag &pAgent)
Definition CombatEventHandler.h:101
virtual void Delayed(uint64_t pTime, cbtevent *pEvent, ag *pSrc, ag *pDst, const char *pSkillname, uint64_t pId)
Definition CombatEventHandler.h:240
virtual void InstanceStart(uint64_t pTime, uintptr_t pStartTime)
Definition CombatEventHandler.h:249
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:141
Definition EventSequencer.h:15
Definition ArcdpsExtension.h:10
void Shutdown()
Definition ArcdpsExtension.cpp:44
Definition arcdps_structs_slim.h:330
const char * name
Definition arcdps_structs_slim.h:331
Definition arcdps_structs_slim.h:299