diff --git a/mrpg/core/game.py b/mrpg/core/game.py index 8f2fe0e..548eb6d 100644 --- a/mrpg/core/game.py +++ b/mrpg/core/game.py @@ -99,7 +99,9 @@ def battle_menu_choice(self, choice): self.progress() def progress(self): - if self.adventure and not self.battle: + if not self.adventure and self.state == State.BATTLE: + self.set_state(State.GAME_MENU) + elif self.adventure and not self.battle: self.progress_adventure() elif self.battle.is_over(): self.end_battle() @@ -129,11 +131,6 @@ def end_battle(self): single_newline(out) self.put_output(out) - if self.adventure: - self.progress() - else: - self.set_state(State.GAME_MENU) - def new_battle(self): enemy = self.adventure.next_monster() self.put_output("A wild {} appeared".format(enemy.name)) diff --git a/mrpg/gui/controller.py b/mrpg/gui/controller.py index 379e1fb..2884180 100644 --- a/mrpg/gui/controller.py +++ b/mrpg/gui/controller.py @@ -53,7 +53,8 @@ def update_text(self): if not self.gui.has_output(): self.gui.display.text = self.game.player.string_long() elif state == State.BATTLE: - self.gui.display.text = self.game.battle.stats() + if self.game.battle: + self.gui.display.text = self.game.battle.stats() else: raise AssertionError @@ -79,6 +80,11 @@ def progress_to_output(self): output = self.resolve_to_output() if output: return output + if self.game.adventure and not self.game.battle: + self.game.progress() + output = self.resolve_to_output() + if output: + return output return None def update_choices(self):