Test now can work the enemy AI to prototype behavior.

This commit is contained in:
Zed A. Shaw 2025-03-14 23:48:03 -04:00
parent db5a371766
commit 2815375836
6 changed files with 59 additions and 6 deletions

View file

@ -171,6 +171,32 @@ TEST_CASE("ai autowalker ai test", "[ai]") {
REQUIRE(ai::test(result, "no_more_enemies"));
}
TEST_CASE("Confirm EntityAI behaves as expected", "[ai]") {
// nothing yet
TEST_CASE("Confirm EntityAI behaves as expected", "[ai-enemy]") {
ai::reset();
ai::init("assets/ai.json");
auto ai_start = ai::load_state("Enemy::initial_state");
auto ai_goal = ai::load_state("Enemy::final_state");
ai::EntityAI enemy("Enemy::actions", ai_start, ai_goal);
enemy.set_state("detect_enemy", true);
enemy.update();
REQUIRE(enemy.wants_to("find_enemy"));
enemy.set_state("enemy_found", true);
enemy.update();
REQUIRE(enemy.wants_to("kill_enemy"));
enemy.set_state("in_combat", true);
enemy.set_state("health_good", false);
enemy.update();
enemy.dump();
REQUIRE(enemy.wants_to("run_away"));
enemy.set_state("have_item", true);
enemy.set_state("have_healing", true);
enemy.set_state("in_combat", false);
enemy.update();
enemy.dump();
REQUIRE(enemy.wants_to("use_healing"));
}