diff --git a/src/bot.py b/src/bot.py index f54e40a..c938ba9 100644 --- a/src/bot.py +++ b/src/bot.py @@ -94,11 +94,16 @@ class Bot: def toggle_pause(self): self._pausing = not self._pausing - Logger.info(f"Pause at next state change...") if self._pausing else Logger.info(f"Resume") + if self._pausing: + Logger.info(f"Pause at next state change...") + else: + Logger.info(f"Resume") + self._game_stats.resume_timer() def trigger_or_stop(self, name: str): if self._pausing: Logger.info(f"{self._config.general['name']} is now pausing") + self._game_stats.pause_timer() while self._pausing: time.sleep(0.2) if not self._stopping: diff --git a/src/game_stats.py b/src/game_stats.py index 3ef34ca..7b16fff 100644 --- a/src/game_stats.py +++ b/src/game_stats.py @@ -12,6 +12,8 @@ class GameStats: self._picked_up_items = [] self._start_time = time.time() self._timer = None + self._timepaused = None + self._paused = False self._game_counter = 0 self._chicken_counter = 0 self._death_counter = 0 @@ -58,10 +60,26 @@ class GameStats: def log_failed_run(self): self._runs_failed += 1 - def get_current_game_length(self): + def pause_timer(self): + if self._timer is None or self._paused: + return + self._timepaused = time.time() + self._paused = True + + def resume_timer(self): + if self._timer is None or not self._paused: + return + pausetime = time.time() - self._timepaused + self._timer = self._timer + pausetime + self._paused = False + + def get_current_game_length(self): if self._timer is None: return 0 - return time.time() - self._timer + if self._paused: + return self._timepaused - self._timer + else: + return time.time() - self._timer def _create_msg(self): elapsed_time = time.time() - self._start_time