CreatureLib/src/Battling/Models/LearnedAttack.hpp

33 lines
1022 B
C++
Raw Normal View History

2019-10-23 16:57:50 +00:00
#ifndef CREATURELIB_LEARNEDATTACK_HPP
#define CREATURELIB_LEARNEDATTACK_HPP
#include "../../Library/Attacks/AttackData.hpp"
2019-10-24 09:04:19 +00:00
#include "AttackLearnMethod.hpp"
2019-10-23 16:57:50 +00:00
namespace CreatureLib::Battling {
2019-10-23 16:57:50 +00:00
class LearnedAttack {
const Library::AttackData* _attack;
uint8_t _maxUses;
uint8_t _remainingUses;
2019-10-24 09:04:19 +00:00
AttackLearnMethod _learnMethod;
2019-10-23 16:57:50 +00:00
public:
LearnedAttack(Library::AttackData* attack, uint8_t maxUses, AttackLearnMethod learnMethod);
LearnedAttack(const Library::AttackData* attack, AttackLearnMethod learnMethod);
virtual ~LearnedAttack() = default;
const Library::AttackData* GetAttack() const;
uint8_t GetMaxUses() const;
uint8_t GetRemainingUses() const;
2019-10-24 09:04:19 +00:00
AttackLearnMethod GetLearnMethod() const;
virtual bool TryUse(uint8_t uses);
virtual void DecreaseUses(uint8_t amount);
virtual void RestoreUses(uint8_t amount);
virtual void RestoreUses();
2019-10-23 16:57:50 +00:00
};
}
#endif // CREATURELIB_LEARNEDATTACK_HPP