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)
def getI18ArenaById(arenaId): return makeString('#arenas:%s/name' % getArenaGeomentryName(arenaId))
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)