Defensive programming.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
f3721ad2a5
commit
cc92cf1491
|
@ -0,0 +1,34 @@
|
||||||
|
#include "../../src/Library/Species/PokemonForme.hpp"
|
||||||
|
#include "../../src/Library/Species/LearnableMoves.hpp"
|
||||||
|
#include "../Core.hpp"
|
||||||
|
using namespace PkmnLib::Library;
|
||||||
|
|
||||||
|
export PokemonForme* PkmnLib_PokemonForme_Construct(const char* name, float height, float weight,
|
||||||
|
uint32_t baseExperience, uint8_t types[], size_t typeLength,
|
||||||
|
uint16_t baseHealth, uint16_t baseAttack, uint16_t baseDefense,
|
||||||
|
uint16_t baseMagicalAttack, uint16_t baseMagicalDefense,
|
||||||
|
uint16_t baseSpeed, const char* talents[], size_t talentsLength,
|
||||||
|
const char* secretTalents[], size_t secretTalentsLength,
|
||||||
|
const LearnableMoves* attacks, const char* flags[],
|
||||||
|
size_t flagsCount) {
|
||||||
|
|
||||||
|
std::unordered_set<uint32_t> conversedFlags(flagsCount);
|
||||||
|
for (size_t i = 0; i < flagsCount; i++) {
|
||||||
|
conversedFlags.insert(ArbUt::StringView::CalculateHash(flags[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
auto talentsWrapped = ArbUt::List<ArbUt::StringView>(talentsLength);
|
||||||
|
for (size_t i = 0; i < talentsLength; i++) {
|
||||||
|
talentsWrapped.Append(ArbUt::StringView(talents[i]));
|
||||||
|
}
|
||||||
|
auto secretTalentsWrapped = ArbUt::List<ArbUt::StringView>(secretTalentsLength);
|
||||||
|
for (size_t i = 0; i < secretTalentsLength; i++) {
|
||||||
|
secretTalentsWrapped.Append(ArbUt::StringView(secretTalents[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PokemonForme(ArbUt::StringView(name), height, weight, baseExperience,
|
||||||
|
ArbUt::List<uint8_t>(types, types + typeLength),
|
||||||
|
CreatureLib::Library::StatisticSet<uint16_t>(
|
||||||
|
baseHealth, baseAttack, baseDefense, baseMagicalAttack, baseMagicalDefense, baseSpeed),
|
||||||
|
talentsWrapped, secretTalentsWrapped, attacks, conversedFlags);
|
||||||
|
}
|
|
@ -21,7 +21,11 @@ namespace PkmnLib::Battling {
|
||||||
|
|
||||||
void SetWeather(const ArbUt::StringView& name);
|
void SetWeather(const ArbUt::StringView& name);
|
||||||
void ClearWeather();
|
void ClearWeather();
|
||||||
const ArbUt::StringView& GetWeatherName() noexcept { return _weatherScript->GetName(); }
|
const ArbUt::StringView& GetWeatherName() noexcept {
|
||||||
|
if (_weatherScript == nullptr)
|
||||||
|
return ArbUt::StringView::EmptyString();
|
||||||
|
return _weatherScript->GetName();
|
||||||
|
}
|
||||||
|
|
||||||
size_t ScriptCount() const override { return CreatureLib::Battling::Battle::ScriptCount() + 1; }
|
size_t ScriptCount() const override { return CreatureLib::Battling::Battle::ScriptCount() + 1; }
|
||||||
void GetActiveScripts(ArbUt::List<CreatureLib::Battling::ScriptWrapper>& scripts) override {
|
void GetActiveScripts(ArbUt::List<CreatureLib::Battling::ScriptWrapper>& scripts) override {
|
||||||
|
|
|
@ -20,12 +20,15 @@ void PkmnLib::Battling::ExperienceLibrary::HandleExperienceGain(
|
||||||
const std::unordered_set<ArbUt::BorrowedPtr<CreatureLib::Battling::Creature>>& opponents) const {
|
const std::unordered_set<ArbUt::BorrowedPtr<CreatureLib::Battling::Creature>>& opponents) const {
|
||||||
|
|
||||||
auto fainted = dynamic_cast<Pokemon*>(faintedMon);
|
auto fainted = dynamic_cast<Pokemon*>(faintedMon);
|
||||||
auto expGain = fainted->GetForme()->GetBaseExperience();
|
AssertNotNull(fainted);
|
||||||
|
auto& forme = fainted->GetForme();
|
||||||
|
AssertNotNull(forme);
|
||||||
|
auto expGain = forme->GetBaseExperience();
|
||||||
auto level = fainted->GetLevel();
|
auto level = fainted->GetLevel();
|
||||||
|
|
||||||
float v1 = (expGain * level) / 5;
|
float v1 = (expGain * level) / 5;
|
||||||
|
|
||||||
for (auto op : opponents) {
|
for (const auto& op : opponents) {
|
||||||
if (!op->AllowedExperienceGain())
|
if (!op->AllowedExperienceGain())
|
||||||
continue;
|
continue;
|
||||||
auto experienceGain = CalculateDynamicExperience(level, v1, op, fainted);
|
auto experienceGain = CalculateDynamicExperience(level, v1, op, fainted);
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace PkmnLib::Battling {
|
||||||
_friendship(species->GetBaseHappiness()) {}
|
_friendship(species->GetBaseHappiness()) {}
|
||||||
|
|
||||||
const ArbUt::BorrowedPtr<const Library::PokemonForme> GetForme() const {
|
const ArbUt::BorrowedPtr<const Library::PokemonForme> GetForme() const {
|
||||||
return _variant.As<const Library::PokemonForme>();
|
return _variant.ForceAs<const Library::PokemonForme>();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool IsShiny() const noexcept { return _coloring == 1; }
|
inline bool IsShiny() const noexcept { return _coloring == 1; }
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#include "../Moves/MoveData.hpp"
|
#include "../Moves/MoveData.hpp"
|
||||||
|
|
||||||
namespace PkmnLib::Library {
|
namespace PkmnLib::Library {
|
||||||
class LearnableMoves : CreatureLib::Library::LearnableAttacks {
|
class LearnableMoves : public CreatureLib::Library::LearnableAttacks {
|
||||||
ArbUt::List<ArbUt::BorrowedPtr<const MoveData>> _eggMoves;
|
ArbUt::List<ArbUt::BorrowedPtr<const MoveData>> _eggMoves;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -5,7 +5,6 @@ PkmnLib::Library::PokemonForme::PokemonForme(const ArbUt::StringView& name, floa
|
||||||
CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
||||||
const ArbUt::List<ArbUt::StringView>& talents,
|
const ArbUt::List<ArbUt::StringView>& talents,
|
||||||
const ArbUt::List<ArbUt::StringView>& secretTalents,
|
const ArbUt::List<ArbUt::StringView>& secretTalents,
|
||||||
const CreatureLib::Library::LearnableAttacks* attacks,
|
const LearnableMoves* moves, std::unordered_set<uint32_t> flags)
|
||||||
std::unordered_set<uint32_t> flags)
|
: SpeciesVariant(name, height, weight, baseExperience, types, baseStats, talents, secretTalents, moves,
|
||||||
: SpeciesVariant(name, height, weight, baseExperience, types, baseStats, talents, secretTalents, attacks,
|
|
||||||
std::move(flags)) {}
|
std::move(flags)) {}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <CreatureLib/Library/CreatureData/SpeciesVariant.hpp>
|
#include <CreatureLib/Library/CreatureData/SpeciesVariant.hpp>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "LearnableMoves.hpp"
|
||||||
|
|
||||||
namespace PkmnLib::Library {
|
namespace PkmnLib::Library {
|
||||||
class PokemonForme : public CreatureLib::Library::SpeciesVariant {
|
class PokemonForme : public CreatureLib::Library::SpeciesVariant {
|
||||||
|
@ -10,7 +11,7 @@ namespace PkmnLib::Library {
|
||||||
PokemonForme(const ArbUt::StringView& name, float height, float weight, uint32_t baseExperience,
|
PokemonForme(const ArbUt::StringView& name, float height, float weight, uint32_t baseExperience,
|
||||||
const ArbUt::List<uint8_t>& types, CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
const ArbUt::List<uint8_t>& types, CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
||||||
const ArbUt::List<ArbUt::StringView>& talents, const ArbUt::List<ArbUt::StringView>& secretTalents,
|
const ArbUt::List<ArbUt::StringView>& talents, const ArbUt::List<ArbUt::StringView>& secretTalents,
|
||||||
const CreatureLib::Library::LearnableAttacks* attacks, std::unordered_set<uint32_t> flags = {});
|
const LearnableMoves* moves, std::unordered_set<uint32_t> flags = {});
|
||||||
|
|
||||||
private:
|
private:
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -16,7 +16,7 @@ TEST_CASE("Able to build, destroy and insert library", "library") {
|
||||||
new PkmnLib::Library::PokemonForme(
|
new PkmnLib::Library::PokemonForme(
|
||||||
"default"_cnc, 1.0f, 1.0f, 100, {0},
|
"default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
||||||
{"testHiddenAbility"_cnc}, new CreatureLib::Library::LearnableAttacks(100)),
|
{"testHiddenAbility"_cnc}, new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
||||||
delete lib;
|
delete lib;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ TEST_CASE("Able to insert and retrieve from library", "library") {
|
||||||
new PkmnLib::Library::PokemonForme(
|
new PkmnLib::Library::PokemonForme(
|
||||||
"default"_cnc, 1.0f, 1.0f, 100, {0},
|
"default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
||||||
{"testHiddenAbility"_cnc}, new CreatureLib::Library::LearnableAttacks(100)),
|
{"testHiddenAbility"_cnc}, new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
||||||
auto val = lib->Get("foo"_cnc);
|
auto val = lib->Get("foo"_cnc);
|
||||||
REQUIRE(val->GetName() == "foo");
|
REQUIRE(val->GetName() == "foo");
|
||||||
|
|
|
@ -8,7 +8,7 @@ TEST_CASE("Able to create and destroy species", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
delete species;
|
delete species;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ TEST_CASE("Able to get default forme", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
auto forme = species->GetDefaultForme();
|
auto forme = species->GetDefaultForme();
|
||||||
|
@ -34,7 +34,7 @@ TEST_CASE("Able to get default forme name", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
auto forme = species->GetDefaultForme();
|
auto forme = species->GetDefaultForme();
|
||||||
|
@ -50,7 +50,7 @@ TEST_CASE("Able to get species name", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
REQUIRE(species->GetName() == "foo");
|
REQUIRE(species->GetName() == "foo");
|
||||||
|
@ -64,7 +64,7 @@ TEST_CASE("Able to get species id", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
REQUIRE(species->GetId() == 1);
|
REQUIRE(species->GetId() == 1);
|
||||||
|
@ -78,7 +78,7 @@ TEST_CASE("Able to get species gender ratio", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
REQUIRE(species->GetGenderRate() == 0.5f);
|
REQUIRE(species->GetGenderRate() == 0.5f);
|
||||||
|
@ -92,7 +92,7 @@ TEST_CASE("Able to get species growth rate", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
REQUIRE(species->GetGrowthRate() == "testGrowthRate");
|
REQUIRE(species->GetGrowthRate() == "testGrowthRate");
|
||||||
|
@ -106,7 +106,7 @@ TEST_CASE("Able to get species capture rate", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
REQUIRE(species->GetCaptureRate() == 100);
|
REQUIRE(species->GetCaptureRate() == 100);
|
||||||
|
@ -120,7 +120,7 @@ TEST_CASE("Able to get species base happiness", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
REQUIRE(species->GetBaseHappiness() == 100);
|
REQUIRE(species->GetBaseHappiness() == 100);
|
||||||
|
@ -134,14 +134,14 @@ TEST_CASE("Able to set and get evolution", "library") {
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
auto species2 = new PkmnLib::Library::PokemonSpecies(
|
auto species2 = new PkmnLib::Library::PokemonSpecies(
|
||||||
2, "bar"_cnc,
|
2, "bar"_cnc,
|
||||||
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
new PkmnLib::Library::PokemonForme("default"_cnc, 1.0f, 1.0f, 100, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100),
|
||||||
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
{"testAbility"_cnc}, {"testHiddenAbility"_cnc},
|
||||||
new CreatureLib::Library::LearnableAttacks(100)),
|
new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc});
|
||||||
|
|
||||||
species->AddEvolution(PkmnLib::Library::EvolutionData::CreateLevelEvolution(16, species2));
|
species->AddEvolution(PkmnLib::Library::EvolutionData::CreateLevelEvolution(16, species2));
|
||||||
|
|
|
@ -10,7 +10,7 @@ PkmnLib::Library::SpeciesLibrary* TestLibrary::BuildSpeciesLibrary() {
|
||||||
new PkmnLib::Library::PokemonForme(
|
new PkmnLib::Library::PokemonForme(
|
||||||
"default"_cnc, 1.0f, 1.0f, 236, {0},
|
"default"_cnc, 1.0f, 1.0f, 236, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
||||||
{"testHiddenAbility"_cnc}, new CreatureLib::Library::LearnableAttacks(100)),
|
{"testHiddenAbility"_cnc}, new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
||||||
lib->Insert("testSpecies2"_cnc,
|
lib->Insert("testSpecies2"_cnc,
|
||||||
new PkmnLib::Library::PokemonSpecies(
|
new PkmnLib::Library::PokemonSpecies(
|
||||||
|
@ -18,7 +18,7 @@ PkmnLib::Library::SpeciesLibrary* TestLibrary::BuildSpeciesLibrary() {
|
||||||
new PkmnLib::Library::PokemonForme(
|
new PkmnLib::Library::PokemonForme(
|
||||||
"default"_cnc, 1.0f, 1.0f, 306, {0},
|
"default"_cnc, 1.0f, 1.0f, 306, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
||||||
{"testHiddenAbility"_cnc}, new CreatureLib::Library::LearnableAttacks(100)),
|
{"testHiddenAbility"_cnc}, new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
||||||
lib->Insert("statTestSpecies1"_cnc,
|
lib->Insert("statTestSpecies1"_cnc,
|
||||||
new PkmnLib::Library::PokemonSpecies(
|
new PkmnLib::Library::PokemonSpecies(
|
||||||
|
@ -26,7 +26,7 @@ PkmnLib::Library::SpeciesLibrary* TestLibrary::BuildSpeciesLibrary() {
|
||||||
new PkmnLib::Library::PokemonForme(
|
new PkmnLib::Library::PokemonForme(
|
||||||
"default"_cnc, 1.0f, 1.0f, 236, {0},
|
"default"_cnc, 1.0f, 1.0f, 236, {0},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
||||||
{"testHiddenAbility"_cnc}, new CreatureLib::Library::LearnableAttacks(100)),
|
{"testHiddenAbility"_cnc}, new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
||||||
lib->Insert("testSpecies3"_cnc,
|
lib->Insert("testSpecies3"_cnc,
|
||||||
new PkmnLib::Library::PokemonSpecies(
|
new PkmnLib::Library::PokemonSpecies(
|
||||||
|
@ -34,7 +34,7 @@ PkmnLib::Library::SpeciesLibrary* TestLibrary::BuildSpeciesLibrary() {
|
||||||
new PkmnLib::Library::PokemonForme(
|
new PkmnLib::Library::PokemonForme(
|
||||||
"default"_cnc, 1.0f, 1.0f, 236, {0, 4},
|
"default"_cnc, 1.0f, 1.0f, 236, {0, 4},
|
||||||
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
CreatureLib::Library::StatisticSet<uint16_t>(100, 100, 100, 100, 100, 100), {"testAbility"_cnc},
|
||||||
{"testHiddenAbility"_cnc}, new CreatureLib::Library::LearnableAttacks(100)),
|
{"testHiddenAbility"_cnc}, new PkmnLib::Library::LearnableMoves(100)),
|
||||||
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
0.5f, "testGrowthRate"_cnc, 100, 100, {"testEggGroup"_cnc}));
|
||||||
|
|
||||||
return lib;
|
return lib;
|
||||||
|
|
Loading…
Reference in New Issue