Test now can work the enemy AI to prototype behavior.
This commit is contained in:
parent
db5a371766
commit
2815375836
6 changed files with 59 additions and 6 deletions
30
tests/ai.cpp
30
tests/ai.cpp
|
@ -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"));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue