Fix changing stat falling through enum and throwing exception.
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
This commit is contained in:
parent
568232c7a5
commit
f9494d4c38
|
@ -7,8 +7,7 @@
|
|||
#include "Statistic.hpp"
|
||||
|
||||
namespace CreatureLib::Core {
|
||||
template <class T>
|
||||
class StatisticSet {
|
||||
template <class T> class StatisticSet {
|
||||
protected:
|
||||
T _health;
|
||||
T _physicalAttack;
|
||||
|
@ -39,8 +38,8 @@ namespace CreatureLib::Core {
|
|||
case MagicalAttack: return _magicalAttack;
|
||||
case MagicalDefense: return _magicalDefense;
|
||||
case Speed: return _speed;
|
||||
default: throw NotReachableException();
|
||||
}
|
||||
throw NotReachableException();
|
||||
}
|
||||
|
||||
inline void SetStat(Statistic stat, T value) {
|
||||
|
@ -51,8 +50,8 @@ namespace CreatureLib::Core {
|
|||
case MagicalAttack: _magicalAttack = value;
|
||||
case MagicalDefense: _magicalDefense = value;
|
||||
case Speed: _speed = value;
|
||||
default: throw NotReachableException();
|
||||
}
|
||||
throw NotReachableException();
|
||||
}
|
||||
|
||||
inline void IncreaseStatBy(Statistic stat, T amount) {
|
||||
|
@ -63,8 +62,8 @@ namespace CreatureLib::Core {
|
|||
case MagicalAttack: _magicalAttack += amount;
|
||||
case MagicalDefense: _magicalDefense += amount;
|
||||
case Speed: _speed += amount;
|
||||
default: throw NotReachableException();
|
||||
}
|
||||
throw NotReachableException();
|
||||
}
|
||||
inline void DecreaseStatBy(Statistic stat, T amount) {
|
||||
switch (stat) {
|
||||
|
@ -74,8 +73,8 @@ namespace CreatureLib::Core {
|
|||
case MagicalAttack: _magicalAttack -= amount;
|
||||
case MagicalDefense: _magicalDefense -= amount;
|
||||
case Speed: _speed -= amount;
|
||||
default: throw NotReachableException();
|
||||
}
|
||||
throw NotReachableException();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -38,4 +38,12 @@ TEST_CASE("Get creature nickname when unset", "[Library]") {
|
|||
delete creature;
|
||||
}
|
||||
|
||||
TEST_CASE("Increase creature stat boost", "[Library]") {
|
||||
auto library = TestLibrary::Get();
|
||||
auto creature = CreateCreature(library, "testSpecies1", 1).Create();
|
||||
creature->ChangeStatBoost(CreatureLib::Core::Statistic::PhysicalAttack, 6);
|
||||
REQUIRE(creature->GetStatBoost(CreatureLib::Core::Statistic::PhysicalAttack) == 6);
|
||||
delete creature;
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue