Files
PkmnLib/src/Library/Natures/Nature.hpp
Deukhoofd 61e9c9ba1f
All checks were successful
continuous-integration/drone/push Build is passing
Update CreatureLib headers, move header files to PkmnLib subdirectory.
2020-02-08 19:22:29 +01:00

40 lines
1.6 KiB
C++

#ifndef PKMNLIB_NATURE_HPP
#define PKMNLIB_NATURE_HPP
#include <CreatureLib/Core/Statistic.hpp>
namespace PkmnLib::Library {
class Nature {
private:
CreatureLib::Core::Statistic _increaseStat;
CreatureLib::Core::Statistic _decreaseStat;
float _increaseModifier;
float _decreaseModifier;
public:
Nature()
: _increaseStat(CreatureLib::Core::Statistic::Health), _decreaseStat(CreatureLib::Core::Statistic::Health),
_increaseModifier(1.0f), _decreaseModifier(1.0f) {}
Nature(CreatureLib::Core::Statistic increasedStat, CreatureLib::Core::Statistic decreasedStat,
float increasedModifier = 1.1f, float decreasedModifier = 0.9f)
: _increaseStat(increasedStat), _decreaseStat(decreasedStat), _increaseModifier(increasedModifier),
_decreaseModifier(decreasedModifier) {}
[[nodiscard]] float GetIncreaseModifier() const { return _increaseModifier; }
[[nodiscard]] float GetDecreaseModifier() const { return _decreaseModifier; }
[[nodiscard]] CreatureLib::Core::Statistic GetIncreasedStat() const { return _increaseStat; }
[[nodiscard]] CreatureLib::Core::Statistic GetDecreasedStat() const { return _decreaseStat; }
[[nodiscard]] float GetStatModifier(CreatureLib::Core::Statistic stat) const {
if (stat == _increaseStat)
return _increaseModifier;
else if (stat == _decreaseStat)
return _decreaseModifier;
return 1;
}
};
}
#endif // PKMNLIB_NATURE_HPP