Rework clearing battle from creatures.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
@@ -334,4 +334,43 @@ TEST_CASE("Flee Battle") {
|
||||
REQUIRE_FALSE(result.IsConclusiveResult());
|
||||
}
|
||||
|
||||
TEST_CASE("Heal creature after battle") {
|
||||
auto library = TestLibrary::Get();
|
||||
auto c1 =
|
||||
CreateCreature(library, "testSpecies1"_cnc, 50).WithAttack("standard"_cnc, AttackLearnMethod::Unknown).Create();
|
||||
CreatureParty party1{c1};
|
||||
auto battleParty1 = new BattleParty(&party1, {CreatureIndex(0, 0)});
|
||||
auto c2 =
|
||||
CreateCreature(library, "testSpecies1"_cnc, 50).WithAttack("standard"_cnc, AttackLearnMethod::Unknown).Create();
|
||||
CreatureParty party2{c2};
|
||||
auto battleParty2 = new BattleParty(&party2, {CreatureIndex(1, 0)});
|
||||
|
||||
auto battle = new Battle(library, {battleParty1, battleParty2});
|
||||
std::vector<const EventData*> events;
|
||||
battle->RegisterEventListener([&](const EventData* evt) mutable -> void { events.push_back(evt); });
|
||||
|
||||
REQUIRE_FALSE(battle->HasEnded());
|
||||
|
||||
battle->SwitchCreature(0, 0, c1);
|
||||
battle->SwitchCreature(1, 0, c2);
|
||||
|
||||
REQUIRE_FALSE(battle->HasEnded());
|
||||
REQUIRE(battle->TrySetChoice(new AttackTurnChoice(c1, c1->GetAttacks()[0].GetValue(), CreatureIndex(1, 0))));
|
||||
REQUIRE(battle->TrySetChoice(new PassTurnChoice(c2)));
|
||||
|
||||
REQUIRE_FALSE(battle->HasEnded());
|
||||
|
||||
REQUIRE(c2->GetCurrentHealth() < c2->GetBoostedStat(Statistic::Health));
|
||||
|
||||
c2->Damage(c2->GetCurrentHealth(), DamageSource::AttackDamage);
|
||||
|
||||
REQUIRE(battle->HasEnded());
|
||||
auto result = battle->GetResult();
|
||||
REQUIRE(result.IsConclusiveResult());
|
||||
REQUIRE(result.GetWinningSide() == 0);
|
||||
delete battle;
|
||||
c2->Heal(1000, true);
|
||||
REQUIRE(c2->GetCurrentHealth() == c2->GetMaxHealth());
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user