CreatureLib/tests/TestLibrary/TestLibrary.cpp

67 lines
2.5 KiB
C++
Raw Normal View History

2019-10-06 11:50:52 +00:00
#ifdef TESTS_BUILD
#include "../../extern/catch.hpp"
#include "../../src/Battling/Library/BattleLibrary.hpp"
2019-10-06 11:50:52 +00:00
using namespace CreatureLib::Core;
using namespace CreatureLib::Library;
using namespace CreatureLib::Battling;
static BattleLibrary* __library = nullptr;
2019-10-06 11:50:52 +00:00
static SpeciesLibrary* BuildSpeciesLibrary(){
auto l = new SpeciesLibrary();
l->LoadSpecies("testSpecies1", new CreatureSpecies(0, "testSpecies1",
2019-11-05 07:06:12 +00:00
new SpeciesVariant("default", 1,1, 10, {0, 1},
2019-10-17 12:33:25 +00:00
StatisticSet<uint16_t >(10,10,10,10,10,10),
2019-10-24 09:04:19 +00:00
{"testTalent"}, {"testSecretTalent"},
new LearnableAttacks(100)),
2019-10-06 11:50:52 +00:00
0.5f, "testGrowthRate", 5, 100));
return l;
}
static AttackLibrary* BuildAttackLibrary(){
auto l = new AttackLibrary();
2019-10-31 12:03:41 +00:00
l->LoadAttack("standard", new AttackData("standard", "normal", AttackCategory::Physical,
20, 100, 30, AttackTarget::AdjacentOpponent,0, {}));
l->LoadAttack("highPriority", new AttackData("highPriority", "normal", AttackCategory::Physical,
20, 100, 30, AttackTarget::AdjacentOpponent,1, {}));
l->LoadAttack("higherPriority", new AttackData("higherPriority", "normal", AttackCategory::Physical,
20, 100, 30, AttackTarget::AdjacentOpponent,2, {}));
l->LoadAttack("lowPriority", new AttackData("lowPriority", "normal", AttackCategory::Physical,
20, 100, 30, AttackTarget::AdjacentOpponent,-1, {}));
2019-10-06 11:50:52 +00:00
return l;
}
static ItemLibrary* BuildItemLibrary(){
auto l = new ItemLibrary();
return l;
}
static GrowthRateLibrary* BuildGrowthRateLibrary(){
auto l = new GrowthRateLibrary();
return l;
}
2019-11-04 16:58:26 +00:00
static TypeLibrary* BuildTypeLibrary(){
auto l = new TypeLibrary();
l->RegisterType("testType1");
l->RegisterType("testType2");
l->RegisterType("testType3");
return l;
}
2019-10-06 11:50:52 +00:00
static BattleLibrary* BuildLibrary(){
2019-10-24 09:04:19 +00:00
auto l = new DataLibrary(LibrarySettings(100, 4), BuildSpeciesLibrary(), BuildAttackLibrary(),
2019-11-04 16:58:26 +00:00
BuildItemLibrary(), BuildGrowthRateLibrary(), BuildTypeLibrary());
auto battleLib = new BattleLibrary(l, new BattleStatCalculator(), new DamageLibrary(),
new CriticalLibrary());
return battleLib;
2019-10-06 11:50:52 +00:00
}
[[maybe_unused]]
static BattleLibrary* GetLibrary(){
2019-10-06 11:50:52 +00:00
if (__library == nullptr){
__library = BuildLibrary();
}
return __library;
}
#endif