Game engine now handles damage types but Ineed to refine the state machines so some of them can take additional data.

This commit is contained in:
Zed A. Shaw 2024-09-12 01:25:23 -04:00
parent 9e6c05eccd
commit 4b2ed2951e
3 changed files with 35 additions and 17 deletions

View file

@ -61,21 +61,24 @@ void GameEngine::idle(GameEvent ev) {
}
}
void GameEngine::in_round(GameEvent ev) {
if(ev == GameEvent::HIT) {
string er_type = "error";
hit(er_type); // FIXME: bring back error type
if(is_dead()) {
state(GameState::DEAD);
} else {
void GameEngine::in_round(GameEvent ev, string &hit_type) {
switch(ev) {
case GameEvent::HIT:
hit(hit_type); // FIXME: bring back error type
if(is_dead()) {
state(GameState::DEAD);
} else {
state(GameState::IN_ROUND);
}
break;
case GameEvent::BUILD_SUCCESS:
state(GameState::SUCCESS);
break;
case GameEvent::BUILD_FAILED:
state(GameState::FAILURE);
break;
default:
state(GameState::IN_ROUND);
}
} else if(ev == GameEvent::BUILD_SUCCESS) {
state(GameState::SUCCESS);
} else if(ev == GameEvent::BUILD_FAILED) {
state(GameState::FAILURE);
} else {
state(GameState::IN_ROUND);
}
}