#ifndef CREATURELIB_DAMAGELIBRARY_HPP #define CREATURELIB_DAMAGELIBRARY_HPP #include "../Models/Creature.hpp" #include "../Models/ExecutingAttack.hpp" namespace CreatureLib::Battling { class DamageLibrary { public: virtual ~DamageLibrary() = default; virtual uint32_t GetDamage(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const; virtual uint8_t GetBasePower(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const; virtual float GetStatModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const; virtual float GetDamageModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const; }; } #endif // CREATURELIB_DAMAGELIBRARY_HPP