66 lines
2.6 KiB
C++
66 lines
2.6 KiB
C++
#ifdef TESTS_BUILD
|
|
#include "../../extern/catch.hpp"
|
|
#include "../../src/Battling/Library/BattleLibrary.hpp"
|
|
|
|
using namespace CreatureLib::Core;
|
|
using namespace CreatureLib::Library;
|
|
using namespace CreatureLib::Battling;
|
|
static BattleLibrary* __library = nullptr;
|
|
|
|
static SpeciesLibrary* BuildSpeciesLibrary() {
|
|
auto l = new SpeciesLibrary();
|
|
l->LoadSpecies("testSpecies1",
|
|
new CreatureSpecies(
|
|
0, "testSpecies1",
|
|
new SpeciesVariant("default", 1, 1, 10, {0, 1}, StatisticSet<uint16_t>(10, 10, 10, 10, 10, 10),
|
|
{"testTalent"}, {"testSecretTalent"}, new LearnableAttacks(100)),
|
|
0.5f, "testGrowthRate", 5, 100));
|
|
return l;
|
|
}
|
|
|
|
static AttackLibrary* BuildAttackLibrary() {
|
|
auto l = new AttackLibrary();
|
|
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, {}));
|
|
return l;
|
|
}
|
|
|
|
static ItemLibrary* BuildItemLibrary() {
|
|
auto l = new ItemLibrary();
|
|
return l;
|
|
}
|
|
|
|
static GrowthRateLibrary* BuildGrowthRateLibrary() {
|
|
auto l = new GrowthRateLibrary();
|
|
return l;
|
|
}
|
|
|
|
static TypeLibrary* BuildTypeLibrary() {
|
|
auto l = new TypeLibrary();
|
|
l->RegisterType("testType1");
|
|
l->RegisterType("testType2");
|
|
l->RegisterType("testType3");
|
|
return l;
|
|
}
|
|
|
|
static BattleLibrary* BuildLibrary() {
|
|
auto l = new DataLibrary(LibrarySettings(100, 4), BuildSpeciesLibrary(), BuildAttackLibrary(), BuildItemLibrary(),
|
|
BuildGrowthRateLibrary(), BuildTypeLibrary());
|
|
auto battleLib = new BattleLibrary(l, new BattleStatCalculator(), new DamageLibrary(), new CriticalLibrary(),
|
|
new ScriptResolver());
|
|
return battleLib;
|
|
}
|
|
|
|
[[maybe_unused]] static BattleLibrary* GetLibrary() {
|
|
if (__library == nullptr) {
|
|
__library = BuildLibrary();
|
|
}
|
|
return __library;
|
|
}
|
|
#endif |