Exemplo n.º 1
0
 def _populate(self):
     super(CyberSportRespawnView, self)._populate()
     self.startUnitListening()
     extra = self.unitFunctional.getExtra()
     if extra is not None:
         geometryName = getArenaGeomentryName(extra.mapID)
         self.as_setMapBGS(self.MAP_BG_SOURCE % geometryName)
         self.__swapTeamsInMinimap(extra.isBaseDefence)
     else:
         LOG_ERROR('No extra data was give for club unit: ',
                   self.unitFunctional.getUnit())
 def _populate(self):
     super(CyberSportRespawnView, self)._populate()
     self.startUnitListening()
     extra = self.unitFunctional.getExtra()
     if extra is not None:
         geometryName = getArenaGeomentryName(extra.mapID)
         self.as_setMapBGS(self.MAP_BG_SOURCE % geometryName)
         self.__swapTeamsInMinimap(extra.isBaseDefence)
     else:
         LOG_ERROR('No extra data was give for club unit: ', self.unitFunctional.getUnit())
     return
def onBattleLoaded(statistic):
    if LOG_BATTLES:
        player = BigWorld.player()
        araneInfo = None
        g_replayCtrl = BattleReplay.g_replayCtrl
        if g_replayCtrl.isPlaying or g_replayCtrl.isRecording:
            arenaInfo = g_replayCtrl._BattleReplay__replayCtrl.getArenaInfoStr()
            if arenaInfo and isinstance(arenaInfo, str):
                try:
                    arenaInfo = json.loads(arenaInfo)
                except:
                    pass
        if arenaInfo:
            dateTime = arenaInfo.get('dateTime','')
            serverName = arenaInfo.get('serverName','')
        else:
            now = datetime.now()
            dateTime = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day, now.month, now.year, now.hour, now.minute, now.second)
            serverName = g_replayCtrl.connectionMgr.serverUserName
        vType = statistic.base[player.playerVehicleID]
        battleInfo = ('%s' % player.arenaUniqueID,
                      dateTime,
                      '"%s"' % serverName,
                      '%s' % vType['accountDBID'],
                      '"%s"' % vType['userName'],
                      '"%s"' % tankTypeAbb(vType['type']['tag']),
                      '"%s"' % vType['name'],
                      '%d' % vType['level'],
                      '"%d(%s)"' % (player.arenaGuiType, ARENA_GUI_TYPE_LABEL.LABELS.get(player.arenaGuiType)),
                      '"%d(%s)"' % (player.arenaTypeID, getArenaGeomentryName(player.arenaTypeID)),
                      '"%d(%s)"' % (player.arenaBonusType, BONUS_TYPE_NAMES.get(player.arenaBonusType)),
                      '"%d(%s)"' % (player.arenaExtraData['arenaKind'], SeasonTypeNames[SeasonType.fromArenaKind(player.arenaExtraData['arenaKind'])]),
                      '%d' % player.arenaExtraData['battleLevel'],
                      #--------------
                      '%d' % statistic.allyTanksCount,
                      '%d' % statistic.enemyTanksCount,
                      '%d' % statistic.allyTeamHP,
                      '%d' % statistic.enemyTeamHP,
                      ('%.3f' % (sum([value['level'] for value in statistic.base.itervalues() if not value['isEnemy']]) / float(statistic.allyTanksCount))).replace('.',','),
                      ('%.3f' % (sum([value['level'] for value in statistic.base.itervalues() if value['isEnemy']]) / float(statistic.enemyTanksCount))).replace('.',','))
        printStrings(LOG_BATTLES_FILENAME, battleInfo)
Exemplo n.º 4
0
def getI18ArenaById(arenaId):
    return makeString('#arenas:%s/name' % getArenaGeomentryName(arenaId))
Exemplo n.º 5
0
def getI18ArenaById(arenaId):
    return makeString('#arenas:%s/name' % getArenaGeomentryName(arenaId))
Exemplo n.º 6
0
def _getLevelParams(i18nFunc, battlesCountGetter, winsEfficiencyGetter, eloRatingGetter, placeGetter, favArenaNameGetter, ratingOutdated):
    battlesCount = formatField(getter=battlesCountGetter, formatter=BigWorld.wg_getIntegralFormat)
    winsEfficiency = formatField(getter=winsEfficiencyGetter, formatter=lambda x: PUtils.formatFloatPercent(x))
    eloRating = formatField(getter=eloRatingGetter, formatter=BigWorld.wg_getIntegralFormat)
    place = formatField(getter=placeGetter, formatter=BigWorld.wg_getIntegralFormat)
    favArenaName = formatField(getter=favArenaNameGetter, formatter=lambda x: getI18ArenaById(getArenaGeomentryName(x)))
    return [_getDataObject('battles', i18nFunc, battlesCount),
     _getDataObject('wins', i18nFunc, winsEfficiency),
     _getDataObject('eloRating', i18nFunc, eloRating),
     _getDataObject('place', i18nFunc, place, ratingOutdated),
     _getDataObjectTruncatedValue('favoriteMap', i18nFunc, favArenaName)]
def onBattleLoaded(statistic):
    global LOG_BATTLES_FILENAME, LOG_PLAYERS_FILENAME, LOG_EVENTS_FILENAME
    if UNIQUE_SUBDIR:
        logName = 'temp'
        replayFileName = g_replayCtrl.getAutoStartFileName()
        if replayFileName is not None and replayFileName != '':
            logName, _ = os.path.splitext(os.path.basename(replayFileName))
        logPath = getLogPath(LOG_DIR + '/' + logName + '_' +
                             datetime.now().strftime('%d%m%y%H%M%S%f')[:15])
    else:
        logPath = getLogPath(LOG_DIR)
    LOG_BATTLES_FILENAME = logPath + 'sl_battles_ver_%s.csv' % CSV_VERSION
    LOG_PLAYERS_FILENAME = logPath + 'sl_players_ver_%s.csv' % CSV_VERSION
    LOG_EVENTS_FILENAME = logPath + 'sl_events_ver_%s.csv' % CSV_VERSION
    if LOG_BATTLES and not os.path.exists(LOG_BATTLES_FILENAME):
        printStrings(LOG_BATTLES_FILENAME, BATTLES_HEADER)
    if LOG_PLAYERS and not os.path.exists(LOG_PLAYERS_FILENAME):
        printStrings(LOG_PLAYERS_FILENAME, PLAYERS_HEADER)
    if LOG_EVENTS and not os.path.exists(LOG_EVENTS_FILENAME):
        printStrings(LOG_EVENTS_FILENAME, EVENTS_HEADER)
    #--------------
    if LOG_BATTLES:
        player = BigWorld.player()
        araneInfo = None
        if g_replayCtrl.isPlaying or g_replayCtrl.isRecording:
            arenaInfo = g_replayCtrl._BattleReplay__replayCtrl.getArenaInfoStr(
            )
            if arenaInfo and isinstance(arenaInfo, str):
                try:
                    arenaInfo = json.loads(arenaInfo)
                except:
                    pass
        if arenaInfo:
            dateTime = arenaInfo.get('dateTime', '')
            serverName = arenaInfo.get('serverName', '')
        else:
            now = datetime.now()
            dateTime = '%02d.%02d.%04d %02d:%02d:%02d' % (
                now.day, now.month, now.year, now.hour, now.minute, now.second)
            serverName = g_replayCtrl.connectionMgr.serverUserName
        vType = statistic.base[player.playerVehicleID]
        battleInfo = (
            '%s' % player.arenaUniqueID,
            dateTime,
            '"%s"' % serverName,
            '%s' % vType.get('accountDBID', '-'),
            '"%s"' % vType['userName'],
            '"%s"' % tankTypeAbb(vType['type']['tag']),
            '"%s"' % vType['name'],
            '%d' % vType['level'],
            '"%s(%d)"' % (ARENA_GUI_TYPE_LABEL.LABELS.get(
                player.arenaGuiType), player.arenaGuiType),
            '"%s(%d)"' %
            (getArenaGeomentryName(player.arenaTypeID), player.arenaTypeID),
            '"%s(%d)"' % (BONUS_TYPE_NAMES.get(
                player.arenaBonusType), player.arenaBonusType),
            '"%s(%d)"' % (SeasonTypeNames[SeasonType.fromArenaKind(
                player.arenaExtraData['arenaKind'])],
                          player.arenaExtraData['arenaKind']),
            ('%d' % player.arenaExtraData['battleLevel'])
            if 'battleLevel' in player.arenaExtraData else '-',
            #--------------
            '%d' % statistic.allyTanksCount,
            '%d' % statistic.enemyTanksCount,
            '%d' % statistic.allyTeamHP,
            '%d' % statistic.enemyTeamHP,
            ('%.3f' % (sum([
                value['level'] for value in statistic.base.itervalues()
                if not value['isEnemy']
            ]) / float(statistic.allyTanksCount))).replace('.', ','),
            ('%.3f' % (sum([
                value['level']
                for value in statistic.base.itervalues() if value['isEnemy']
            ]) / float(statistic.enemyTanksCount))).replace('.', ','))
        printStrings(LOG_BATTLES_FILENAME, battleInfo)