#ifndef PKMNLIB_DAMAGELIBRARY_HPP #define PKMNLIB_DAMAGELIBRARY_HPP #include namespace PkmnLib::Battling { class DamageLibrary final : public CreatureLib::Battling::DamageLibrary { bool _hasRandomness; public: explicit DamageLibrary(bool hasRandomness = true) : _hasRandomness(hasRandomness) {} uint32_t GetDamage(CreatureLib::Battling::ExecutingAttack* non_null attack, CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex, const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override; uint8_t GetBasePower(CreatureLib::Battling::ExecutingAttack* non_null attack, CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex, const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override; float GetStatModifier(CreatureLib::Battling::ExecutingAttack* non_null attack, CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex, const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override; float GetDamageModifier(CreatureLib::Battling::ExecutingAttack* non_null attack, CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex, const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override; }; } #endif // PKMNLIB_DAMAGELIBRARY_HPP