Adding buff infrastructure to handle legacy and modern buff semantics

This commit is contained in:
dannuic
2026-04-25 00:24:23 -06:00
parent c5d048ad5b
commit bcf65c141d
66 changed files with 641 additions and 291 deletions
+18
View File
@@ -17,6 +17,7 @@
*/
#pragma once
#include "IBuff.h"
#include "IMessage.h"
#include "common/struct_strategy.h"
@@ -73,3 +74,20 @@ protected:
} // namespace Message
namespace Buff {
class Titanium : public IBuff
{
public:
Titanium() = default;
~Titanium() override = default;
EQApplicationPacket* MakeLegacyBuffsPacket(Mob* mob, int32_t timer, bool for_target, bool clear_buffs) const override;
EQApplicationPacket* BuffDefinition(Mob* mob, const Buffs_Struct& buff, int slot, bool fade) const override;
EQApplicationPacket* RefreshBuffs(EmuOpcode opcode, Mob* mob, int32_t timer, bool remove, bool buff_timers_suspended, const std::vector<uint32_t>& slots) const override;
void SetRefreshType(EQApplicationPacket* packet, Mob* source, Client* target) const override;
};
} // namespace Buff