def mPlayerStats(self, *args, **kw): wasPaused = False if not self.game.pause: self.game.doPause() wasPaused = True mode = kw.get("mode", 101) demo = 0 gameid = None while mode > 0: if mode > 1000: demo = not demo mode = mode % 1000 # d = Struct(status=-1, button=-1) if demo: player = None else: player = self.app.opt.player n = self.game.gameinfo.name # translation keywords transkw = { 'app': TITLE, 'player': player, 'game': n, 'tops': TOP_SIZE } # if mode == 100: d = Status_StatsDialog(self.top, game=self.game) elif mode == 101: header = (_("%(app)s Demo Statistics for %(game)s") if demo else _("Statistics for %(game)s")) % transkw d = SingleGame_StatsDialog(self.top, header, self.app, player, gameid=self.game.id) gameid = d.selected_game elif mode == 102: header = (_("%(app)s Demo Statistics") if demo else _("Statistics for %(player)s")) % transkw d = AllGames_StatsDialog(self.top, header, self.app, player) gameid = d.selected_game elif mode == 103: header = (_("%(app)s Demo Full log") if demo else _("Full log for %(player)s")) % transkw d = FullLog_StatsDialog(self.top, header, self.app, player) elif mode == 104: header = (_("%(app)s Demo Session log") if demo else _("Session log for %(player)s")) % transkw d = SessionLog_StatsDialog(self.top, header, self.app, player) elif mode == 105: # TRANSLATORS: eg. top 10 or top 5 results for a certain game header = (_("%(app)s Demo Top %(tops)d for %(game)s") if demo else _("Top %(tops)d for %(game)s")) % transkw d = Top_StatsDialog(self.top, header, self.app, player, gameid=self.game.id) elif mode == 106: header = _("Game Info") d = GameInfoDialog(self.top, header, self.app) elif mode == 107: header = _("Statistics progression") d = ProgressionDialog(self.top, header, self.app, player, gameid=self.game.id) elif mode == 202: # print stats to file write_method = FileStatsFormatter.writeStats self._mStatsSave(player, "stats", write_method) elif mode == 203: # print full log to file write_method = FileStatsFormatter.writeFullLog self._mStatsSave(player, "log", write_method) elif mode == 204: # print session log to file write_method = FileStatsFormatter.writeSessionLog self._mStatsSave(player, "log", write_method) elif mode == 301: # reset all player stats if self.game.areYouSure( _("Reset all statistics"), _("Reset ALL statistics and logs for player\n" + "%(player)s?") % transkw, confirm=1, default=1): self.app.stats.resetStats(player, 0) self.game.updateStatus(stats=self.app.stats.getStats( self.app.opt.player, self.game.id)) elif mode == 302: # reset player stats for current game if self.game.areYouSure( _("Reset game statistics"), _('Reset statistics and logs for player\n%(player)s\n' 'and game\n%(game)s?') % transkw, confirm=1, default=1): self.app.stats.resetStats(player, self.game.id) self.game.updateStatus(stats=self.app.stats.getStats( self.app.opt.player, self.game.id)) elif mode == 401: # start a new game with a gameid if gameid and gameid != self.game.id: self.game.endGame() self.game.quitGame(gameid) elif mode == 402: # start a new game with a gameid / gamenumber # TODO pass else: print_err("stats problem: %s %s %s" % (mode, demo, player)) pass if d.status != 0: break mode = d.button if self.game.pause: if wasPaused: self.game.doPause()
def mPlayerStats(self, *args, **kw): mode = kw.get("mode", 101) demo = 0 gameid = None while mode > 0: if mode > 1000: demo = not demo mode = mode % 1000 # d = Struct(status=-1, button=-1) if demo: player = None p0, p1, p2 = TITLE + _(" Demo"), TITLE + _(" Demo "), "" else: player = self.app.opt.player p0, p1, p2 = player, "", _(" for ") + player n = self.game.gameinfo.name # if mode == 100: d = Status_StatsDialog(self.top, game=self.game) elif mode == 101: header = p1 + _("Statistics for ") + n d = SingleGame_StatsDialog(self.top, header, self.app, player, gameid=self.game.id) gameid = d.selected_game elif mode == 102: header = p1 + _("Statistics") + p2 d = AllGames_StatsDialog(self.top, header, self.app, player) gameid = d.selected_game elif mode == 103: header = p1 + _("Full log") + p2 d = FullLog_StatsDialog(self.top, header, self.app, player) elif mode == 104: header = p1 + _("Session log") + p2 d = SessionLog_StatsDialog(self.top, header, self.app, player) elif mode == 105: header = p1 + TOP_TITLE + _(" for ") + n d = Top_StatsDialog(self.top, header, self.app, player, gameid=self.game.id) elif mode == 106: header = _("Game Info") d = GameInfoDialog(self.top, header, self.app) elif mode == 107: header = _("Statistics progression") d = ProgressionDialog(self.top, header, self.app, player, gameid=self.game.id) elif mode == 202: # print stats to file write_method = FileStatsFormatter.writeStats self._mStatsSave(player, "stats", write_method) elif mode == 203: # print full log to file write_method = FileStatsFormatter.writeFullLog self._mStatsSave(player, "log", write_method) elif mode == 204: # print session log to file write_method = FileStatsFormatter.writeSessionLog self._mStatsSave(player, "log", write_method) elif mode == 301: # reset all player stats if self.game.areYouSure( _("Reset all statistics"), _("Reset ALL statistics and logs for player\n%s ?") % p0, confirm=1, default=1): self.app.stats.resetStats(player, 0) self.game.updateStatus(stats=self.app.stats.getStats( self.app.opt.player, self.game.id)) elif mode == 302: # reset player stats for current game if self.game.areYouSure(_("Reset game statistics"), _('Reset statistics and logs ' + 'for player\n%s\nand game\n%s ?') % (p0, n), confirm=1, default=1): self.app.stats.resetStats(player, self.game.id) self.game.updateStatus(stats=self.app.stats.getStats( self.app.opt.player, self.game.id)) elif mode == 401: # start a new game with a gameid if gameid and gameid != self.game.id: self.game.endGame() self.game.quitGame(gameid) elif mode == 402: # start a new game with a gameid / gamenumber # TODO pass else: print_err("stats problem: %s %s %s" % (mode, demo, player)) pass if d.status != 0: break mode = d.button