2019-10-06 11:50:52 +00:00
|
|
|
#ifdef TESTS_BUILD
|
|
|
|
#include "../../extern/catch.hpp"
|
2019-10-24 11:37:55 +00:00
|
|
|
#include "../../src/Battling/Library/BattleLibrary.hpp"
|
2019-10-06 11:50:52 +00:00
|
|
|
|
|
|
|
using namespace CreatureLib::Core;
|
|
|
|
using namespace CreatureLib::Library;
|
2019-10-24 11:37:55 +00:00
|
|
|
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
|
|
|
|
2019-10-24 11:37:55 +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());
|
2019-11-05 16:42:45 +00:00
|
|
|
auto battleLib = new BattleLibrary(l, new BattleStatCalculator(), new DamageLibrary(),
|
|
|
|
new CriticalLibrary());
|
2019-10-24 11:37:55 +00:00
|
|
|
return battleLib;
|
2019-10-06 11:50:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[[maybe_unused]]
|
2019-10-24 11:37:55 +00:00
|
|
|
static BattleLibrary* GetLibrary(){
|
2019-10-06 11:50:52 +00:00
|
|
|
if (__library == nullptr){
|
|
|
|
__library = BuildLibrary();
|
|
|
|
}
|
|
|
|
return __library;
|
|
|
|
}
|
|
|
|
#endif
|