Files
PkmnLib/src/Library/Natures/Nature.hpp
Deukhoofd c5df576dde
Some checks failed
continuous-integration/drone/push Build is failing
Inline nature functions.
2020-04-17 18:45:00 +02:00

41 lines
1.7 KiB
C++

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