More tests for Pokemon class in AngelScript.
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#ifdef TESTS_BUILD
|
||||
#include "../../../../extern/catch.hpp"
|
||||
#include "../../../../src/ScriptResolving/AngelScript/AngelScripResolver.hpp"
|
||||
#include "../../../../src/Battling/Pokemon/CreatePokemon.hpp"
|
||||
#include "../../../../src/ScriptResolving/AngelScript/AngelScripResolver.hpp"
|
||||
#include "../../../TestLibrary/TestLibrary.hpp"
|
||||
|
||||
static std::unordered_map<const char*, const char*> _scripts =
|
||||
@@ -19,6 +19,10 @@ class testScript1 {
|
||||
bool testActiveAbility(Pokemon@ p, const string &in ability){ return p.ActiveAbility == ability; }
|
||||
bool testIsFainted(Pokemon@ p, bool b){ return p.IsFainted == b; }
|
||||
bool testType(Pokemon@ p, uint index, uint8 type){ return p.GetTypes()[index] == type; }
|
||||
bool testHasType(Pokemon@ p, uint8 type){ return p.HasType(type); }
|
||||
void testDamage(Pokemon@ p, uint32 damage, DamageSource source){ p.Damage(damage, source); }
|
||||
bool testMove(Pokemon@ p, uint index, LearnedMove@ move){ return p.GetMoves()[index] is move; }
|
||||
|
||||
}
|
||||
)"}};
|
||||
|
||||
@@ -232,10 +236,10 @@ TEST_CASE("Validate Pokemon GetTypes in Script") {
|
||||
auto mainLib = TestLibrary::GetLibrary();
|
||||
|
||||
auto mon = PkmnLib::Battling::CreatePokemon(mainLib, "testSpecies3", 30)
|
||||
.WithForme("default")
|
||||
->WithGender(CreatureLib::Library::Gender::Male)
|
||||
->Build();
|
||||
for (size_t i = 0; i < mon->GetTypes().size(); i++){
|
||||
.WithForme("default")
|
||||
->WithGender(CreatureLib::Library::Gender::Male)
|
||||
->Build();
|
||||
for (size_t i = 0; i < mon->GetTypes().size(); i++) {
|
||||
auto data = GetScript(mainLib, "testType");
|
||||
|
||||
data.Context->SetArgObject(0, const_cast<PkmnLib::Battling::Pokemon*>(mon));
|
||||
@@ -244,12 +248,71 @@ TEST_CASE("Validate Pokemon GetTypes in Script") {
|
||||
|
||||
REQUIRE(data.Context->Execute() == asEXECUTION_FINISHED);
|
||||
REQUIRE((bool)data.Context->GetReturnWord());
|
||||
|
||||
}
|
||||
delete mon;
|
||||
}
|
||||
|
||||
TEST_CASE("Validate Pokemon HasType in Script") {
|
||||
auto mainLib = TestLibrary::GetLibrary();
|
||||
|
||||
auto mon = PkmnLib::Battling::CreatePokemon(mainLib, "testSpecies3", 30)
|
||||
.WithForme("default")
|
||||
->WithGender(CreatureLib::Library::Gender::Male)
|
||||
->Build();
|
||||
for (size_t i = 0; i < mon->GetTypes().size(); i++) {
|
||||
auto data = GetScript(mainLib, "testHasType");
|
||||
|
||||
data.Context->SetArgObject(0, const_cast<PkmnLib::Battling::Pokemon*>(mon));
|
||||
data.Context->SetArgByte(1, mon->GetTypes()[i]);
|
||||
|
||||
REQUIRE(data.Context->Execute() == asEXECUTION_FINISHED);
|
||||
REQUIRE((bool)data.Context->GetReturnWord());
|
||||
}
|
||||
delete mon;
|
||||
}
|
||||
|
||||
TEST_CASE("Validate Pokemon Damage in Script") {
|
||||
auto mainLib = TestLibrary::GetLibrary();
|
||||
|
||||
auto mon = PkmnLib::Battling::CreatePokemon(mainLib, "testSpecies3", 30)
|
||||
.WithForme("default")
|
||||
->WithGender(CreatureLib::Library::Gender::Male)
|
||||
->Build();
|
||||
auto data = GetScript(mainLib, "testDamage");
|
||||
|
||||
data.Context->SetArgObject(0, const_cast<PkmnLib::Battling::Pokemon*>(mon));
|
||||
data.Context->SetArgDWord(1, 30);
|
||||
data.Context->SetArgDWord(2, (asDWORD)CreatureLib::Battling::DamageSource::AttackDamage);
|
||||
|
||||
REQUIRE(data.Context->Execute() == asEXECUTION_FINISHED);
|
||||
REQUIRE(mon->GetCurrentHealth() == mon->GetBoostedStat(PkmnLib::Library::Statistic::HealthPoints) - 30);
|
||||
|
||||
delete mon;
|
||||
}
|
||||
|
||||
TEST_CASE("Validate Pokemon GetMoves in Script") {
|
||||
auto mainLib = TestLibrary::GetLibrary();
|
||||
|
||||
auto mon = PkmnLib::Battling::CreatePokemon(mainLib, "testSpecies3", 30)
|
||||
.WithForme("default")
|
||||
->LearnMove("testMove", CreatureLib::Battling::AttackLearnMethod::Level)
|
||||
->LearnMove("testMove2", CreatureLib::Battling::AttackLearnMethod::Unknown)
|
||||
->Build();
|
||||
|
||||
for (size_t i = 0; i < mon->GetMoves().size(); i++) {
|
||||
auto data = GetScript(mainLib, "testMove");
|
||||
|
||||
data.Context->SetArgObject(0, const_cast<PkmnLib::Battling::Pokemon*>(mon));
|
||||
data.Context->SetArgDWord(1, i);
|
||||
data.Context->SetArgObject(2, (void*)mon->GetMoves()[i]);
|
||||
|
||||
REQUIRE(data.Context->Execute() == asEXECUTION_FINISHED);
|
||||
REQUIRE((bool)data.Context->GetReturnWord());
|
||||
}
|
||||
|
||||
delete mon;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -43,6 +43,9 @@ PkmnLib::Library::MoveLibrary* TestLibrary::BuildMoveLibrary() {
|
||||
lib->LoadMove("testMove",
|
||||
new PkmnLib::Library::MoveData("testMove", 0, PkmnLib::Library::MoveCategory::Physical, 50, 100, 20,
|
||||
CreatureLib::Library::AttackTarget::Adjacent, 0, {}));
|
||||
lib->LoadMove("testMove2",
|
||||
new PkmnLib::Library::MoveData("testMove2", 0, PkmnLib::Library::MoveCategory::Special, 30, 100, 10,
|
||||
CreatureLib::Library::AttackTarget::Adjacent, 0, {}));
|
||||
return lib;
|
||||
}
|
||||
PkmnLib::Library::ItemLibrary* TestLibrary::BuildItemLibrary() {
|
||||
|
||||
Reference in New Issue
Block a user