Further fixes for setting pokemon held items from angelscript.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-08-24 20:43:01 +02:00
parent 249584bfc8
commit dfcdfd8343
2 changed files with 25 additions and 1 deletions

View File

@@ -25,6 +25,7 @@ class testScript1 : PkmnScript {
void testHeal(Pokemon@ p, uint32 amount){ p.Heal(amount); }
bool testMove(Pokemon@ p, uint index, LearnedMove@ move){ return p.GetMoves()[index] is move; }
bool testHasHeldItem(Pokemon@ p, const constString &in item){ return p.HasHeldItem(item); }
void testSetHeldItem(Pokemon@ p, const constString &in item){ p.SetHeldItem(item); }
}}
)"}};
@@ -333,4 +334,24 @@ TEST_CASE("Validate Pokemon HasHeldItem in Script") {
delete mon;
}
TEST_CASE("Test Pokemon SetHeldItem in Script") {
auto mainLib = TestLibrary::GetLibrary();
auto mon = PkmnLib::Battling::CreatePokemon(mainLib, "testSpecies3"_cnc, 30)
.WithForme("default"_cnc)
.Build();
auto data = GetScript(mainLib, "testSetHeldItem"_cnc);
data.Context->SetArgObject(0, const_cast<PkmnLib::Battling::Pokemon*>(mon));
ArbUt::StringView item = "testItem"_cnc;
data.Context->SetArgAddress(1, &item);
REQUIRE(data.Context->Execute() == asEXECUTION_FINISHED);
REQUIRE((bool)data.Context->GetReturnDWord());
REQUIRE(mon->HasHeldItem("testItem"_cnc));
delete mon;
}
#endif