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