Пример #1
0
 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()
Пример #2
0
 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