#include "LearnedAttack.hpp" CreatureLib::Battling::LearnedAttack::LearnedAttack( const ArbUt::BorrowedPtr& attack, uint8_t maxUses, AttackLearnMethod learnMethod) : _attack(attack), _maxUses(maxUses), _remainingUses(maxUses), _learnMethod(learnMethod) { } CreatureLib::Battling::LearnedAttack::LearnedAttack( const ArbUt::BorrowedPtr& attack, AttackLearnMethod learnMethod) : _attack(attack), _maxUses(attack->GetBaseUsages()), _remainingUses(_maxUses), _learnMethod(learnMethod) { } const ArbUt::BorrowedPtr& CreatureLib::Battling::LearnedAttack::GetAttack() const noexcept { return _attack; } uint8_t CreatureLib::Battling::LearnedAttack::GetMaxUses() const noexcept { return _maxUses; } uint8_t CreatureLib::Battling::LearnedAttack::GetRemainingUses() const noexcept { return _remainingUses; } CreatureLib::Battling::AttackLearnMethod CreatureLib::Battling::LearnedAttack::GetLearnMethod() const noexcept { return _learnMethod; } bool CreatureLib::Battling::LearnedAttack::TryUse(uint8_t uses) noexcept { if (uses > _remainingUses) return false; _remainingUses -= uses; return true; } void CreatureLib::Battling::LearnedAttack::DecreaseUses(uint8_t amount) noexcept { _remainingUses -= amount; } void CreatureLib::Battling::LearnedAttack::RestoreUses(uint8_t amount) noexcept { _remainingUses += amount; } void CreatureLib::Battling::LearnedAttack::RestoreAllUses() noexcept { _remainingUses = _maxUses; }