CreatureLib/src/Battling/Models/LearnedAttack.cpp

39 lines
1.6 KiB
C++
Raw Normal View History

#include "LearnedAttack.hpp"
2020-05-26 16:31:06 +00:00
CreatureLib::Battling::LearnedAttack::LearnedAttack(
const ArbUt::BorrowedPtr<const CreatureLib::Library::AttackData>& attack, uint8_t maxUses,
AttackLearnMethod learnMethod)
2020-03-22 12:42:26 +00:00
: _attack(attack), _maxUses(maxUses), _remainingUses(maxUses), _learnMethod(learnMethod) {
}
2020-05-26 16:31:06 +00:00
CreatureLib::Battling::LearnedAttack::LearnedAttack(
const ArbUt::BorrowedPtr<const CreatureLib::Library::AttackData>& attack, AttackLearnMethod learnMethod)
2020-04-04 11:36:13 +00:00
: _attack(attack), _maxUses(attack->GetBaseUsages()), _remainingUses(_maxUses), _learnMethod(learnMethod) {
}
2020-05-26 16:31:06 +00:00
const ArbUt::BorrowedPtr<const CreatureLib::Library::AttackData>&
2020-05-24 18:57:22 +00:00
CreatureLib::Battling::LearnedAttack::GetAttack() const noexcept {
2020-04-04 11:36:13 +00:00
return _attack;
}
2020-04-04 11:36:13 +00:00
uint8_t CreatureLib::Battling::LearnedAttack::GetMaxUses() const noexcept { return _maxUses; }
2020-04-04 11:36:13 +00:00
uint8_t CreatureLib::Battling::LearnedAttack::GetRemainingUses() const noexcept { return _remainingUses; }
2020-04-04 11:36:13 +00:00
CreatureLib::Battling::AttackLearnMethod CreatureLib::Battling::LearnedAttack::GetLearnMethod() const noexcept {
return _learnMethod;
}
2020-04-04 11:36:13 +00:00
bool CreatureLib::Battling::LearnedAttack::TryUse(uint8_t uses) noexcept {
if (uses > _remainingUses)
return false;
_remainingUses -= uses;
return true;
}
2020-04-04 11:36:13 +00:00
void CreatureLib::Battling::LearnedAttack::DecreaseUses(uint8_t amount) noexcept { _remainingUses -= amount; }
2020-04-04 11:36:13 +00:00
void CreatureLib::Battling::LearnedAttack::RestoreUses(uint8_t amount) noexcept { _remainingUses += amount; }
2020-04-04 11:36:13 +00:00
void CreatureLib::Battling::LearnedAttack::RestoreAllUses() noexcept { _remainingUses = _maxUses; }