Test suite now accurately runs the GameEngine FSM for multiple rounds.

This commit is contained in:
Zed A. Shaw 2024-09-15 03:23:09 -04:00
parent 07a212d9d7
commit 07553400f5
6 changed files with 50 additions and 18 deletions

View file

@ -25,10 +25,8 @@ int GameEngine::determine_damage(string &type) {
}
void GameEngine::reset() {
rounds = 0;
streak = 0;
hit_points = starting_hp;
hits_taken = 0;
}
bool GameEngine::hit(string &type) {
@ -83,8 +81,15 @@ void GameEngine::in_round(GameEvent ev, string &hit_type) {
}
void GameEngine::dead(GameEvent ev) {
reset();
state(GameState::IDLE);
if(ev == GameEvent::BUILD_DONE) {
reset();
state(GameState::FAILURE);
failure(ev);
} else if(ev == GameEvent::HIT) {
++hits_taken;
} else {
state(GameState::DEAD);
}
}
void GameEngine::success(GameEvent ev) {