def __makeVisualTipVO(self, arenaDP, arena, tip = None): setting = g_settingsCore.options.getSetting(settings_constants.GAME.BATTLE_LOADING_INFO) settingID = setting.getSettingID(isInSandbox=arena_info.isInSandboxBattle(arena), isFallout=arena_info.isFalloutBattle()) return {'settingID': settingID, 'tipIcon': tip.icon if tip is not None else None, 'arenaTypeID': arena_info.getArenaTypeID(), 'minimapTeam': arenaDP.getNumberOfTeam()}
def __addArenaExtraData(self, arenaDP): arena = getClientArena() if arena: extraData = arena.extraData or {} descExtra = getPrebattleFullDescription(extraData) arenaTypeID = getArenaTypeID() arenaSubType = getArenaSubTypeName(arenaTypeID) team = arenaDP.getNumberOfTeam() enemy = arenaDP.getNumberOfTeam(True) hasBase = isBaseExists(arenaTypeID, team) opponents = extraData.get('opponents', {}) team1 = opponents.get(str(team), {}).get('name', '#menu:loading/team1') team2 = opponents.get(str(enemy), {}).get('name', '#menu:loading/team2') self.as_setTeamsS(team1, team2) if arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES: self.as_setWinTextS(i18n.makeString('#arenas:type/fallout/description')) else: self.as_setWinTextS(getBattleSubTypeWinText(arenaTypeID, 1 if hasBase else 2)) if descExtra: self.as_setBattleTypeNameS(descExtra) self.as_setBattleTypeFrameNumS(arena.guiType + 1) elif arena.guiType in [constants.ARENA_GUI_TYPE.RANDOM, constants.ARENA_GUI_TYPE.TRAINING]: self.as_setBattleTypeNameS('#arenas:type/%s/name' % arenaSubType) self.as_setBattleTypeFrameNameS(getNecessaryArenaFrameName(arenaSubType, hasBase)) if arena.guiType == constants.ARENA_GUI_TYPE.TRAINING and self.__logArenaUniID == False: self.__logArenaUniID = True from time import strftime, localtime from debug_utils import LOG_NOTE LOG_NOTE('arenaUniqueID: %d | timestamp: %s' % (arena.arenaUniqueID, strftime('%d.%m.%Y %H:%M:%S', localtime()))) else: self.as_setBattleTypeNameS('#menu:loading/battleTypes/%d' % arena.guiType) if arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS: self.as_setBattleTypeFrameNameS(constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType]) else: self.as_setBattleTypeFrameNumS(arena.guiType + 1)
def _addArenaExtraData(self, arenaDP): arena = getClientArena() if arena: arenaType = arena.arenaType extraData = arena.extraData or {} descExtra = getPrebattleFullDescription(extraData) arenaTypeID = getArenaTypeID() arenaSubType = getArenaSubTypeName(arenaTypeID) team = arenaDP.getNumberOfTeam() enemy = arenaDP.getNumberOfTeam(True) hasBase = isBaseExists(arenaTypeID, team) allyTeamName, enemyTeamName = self._battleCtx.getTeamName( team), self._battleCtx.getTeamName(enemy) if arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES: winText = i18n.makeString('#arenas:type/%s/description' % arenaSubType) else: winText = getBattleSubTypeWinText(arenaTypeID, 1 if hasBase else 2) if descExtra: battleTypeLocaleStr = descExtra if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS: battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[ arena.guiType] else: battleTypeFrameLabel = 'neutral' elif arena.guiType in [ constants.ARENA_GUI_TYPE.RANDOM, constants.ARENA_GUI_TYPE.TRAINING ]: battleTypeLocaleStr = '#arenas:type/%s/name' % arenaSubType battleTypeFrameLabel = getNecessaryArenaFrameName( arenaSubType, hasBase) elif arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES and hasResourcePoints( ): battleTypeFrameLabel = 'resourcePoints' battleTypeLocaleStr = MENU.LOADING_BATTLETYPES_RESOURCEPOINTS else: battleTypeLocaleStr = '#menu:loading/battleTypes/%d' % arena.guiType if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS: battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[ arena.guiType] else: battleTypeFrameLabel = 'neutral' arenaInfoData = { 'mapName': arenaType.name, 'winText': winText, 'battleTypeLocaleStr': battleTypeLocaleStr, 'battleTypeFrameLabel': battleTypeFrameLabel, 'allyTeamName': allyTeamName, 'enemyTeamName': enemyTeamName } self._setArenaInfo(arenaInfoData)
def setUI(self, ui): if not ui: return self.__ui = weakref.proxy(ui) typeID = arena_info.getArenaTypeID() if typeID and getArenaSubTypeName(typeID) not in _ENEMY_OFFSET_DISABLED_BY_GAMEPLAY: self.__ui.setOffsetForEnemyPoints() playerTeam = self.__battleCtx.getArenaDP().getNumberOfTeam() for clientID, (points, stopped) in self.__points.iteritems(): if clientID in self.__captured: self.__ui.addCapturedTeamBase(clientID, playerTeam) elif points: self.__ui.addCapturingTeamBase(clientID, playerTeam, points, self._getProgressRate(), stopped)
def setUI(self, ui): if not ui: return self.__ui = weakref.proxy(ui) typeID = arena_info.getArenaTypeID() if typeID and getArenaSubTypeName(typeID) not in _ENEMY_OFFSET_DISABLED_BY_GAMEPLAY: self.__ui.setOffsetForEnemyPoints() playerTeam = self.__battleCtx.getArenaDP().getNumberOfTeam() for clientID, (points, stopped) in self.__points.iteritems(): if clientID in self.__captured: self.__ui.addCapturedTeamBase(clientID, playerTeam) elif points: self.__ui.addCapturingTeamBase(clientID, playerTeam, points, self._getProgressRate(), stopped)
def getSettingItem(clientID, ownTeam, avatar = None): arenaTypeID = arena_info.getArenaTypeID(avatar) baseTeam, baseID = arena_info.parseClientTeamBaseID(clientID) item = None key = baseTeam ^ ownTeam if isControlPointExists(arenaTypeID): if key in _SETTINGS_TO_CONTROL_POINT: item = _SETTINGS_TO_CONTROL_POINT[key] elif key in _SETTINGS_TO_TEAM: item = _SETTINGS_TO_TEAM[key] if item is None: item = _TeamBaseSettingItem(0, 'green', '%s', '%s') item.setup(arenaTypeID, baseID, baseTeam) return item
def updatePowerBar(): if Statistics.okCw() and Statistics.myConf['powerbar_enable']: win_chance = Statistics.getWinChance() if win_chance: arenaTypeID = getArenaTypeID() color = '#ff0000' if win_chance < 49: color = '#ff0000' elif win_chance >= 49 and win_chance <= 51: color = '#ffff00' elif win_chance > 51: color = '#00ff00' color = '\\c' + re.sub('[^A-Za-z0-9]+', '', color) + 'FF;' PowerBar.updateWinRate(win_chance*1.0/100,color+str(win_chance)+'%',Statistics.myConf)
def getSettingItem(clientID, ownTeam, avatar=None): arenaTypeID = arena_info.getArenaTypeID(avatar) baseTeam, baseID = arena_info.parseClientTeamBaseID(clientID) item = None key = baseTeam ^ ownTeam if isControlPointExists(arenaTypeID): if key in _SETTINGS_TO_CONTROL_POINT: item = _SETTINGS_TO_CONTROL_POINT[key] elif key in _SETTINGS_TO_TEAM: item = _SETTINGS_TO_TEAM[key] if item is None: item = _TeamBaseSettingItem(0, 'green', '%s', '%s') item.setup(arenaTypeID, baseID, baseTeam) return item
def updatePowerBar(): if Statistics.okCw() and Statistics.myConf['powerbar_enable']: win_chance = Statistics.getWinChance() if win_chance: arenaTypeID = getArenaTypeID() color = '#ff0000' if win_chance < 49: color = '#ff0000' elif win_chance >= 49 and win_chance <= 51: color = '#ffff00' elif win_chance > 51: color = '#00ff00' color = '\\c' + re.sub('[^A-Za-z0-9]+', '', color) + 'FF;' PowerBar.updateWinRate(win_chance * 1.0 / 100, color + str(win_chance) + '%', Statistics.myConf)
def setViewComponents(self, panel): """ Sets view component. :param panel: instance of view component. """ if not panel: return self.__ui = panel typeID = arena_info.getArenaTypeID() if typeID and getArenaSubTypeName(typeID) not in _ENEMY_OFFSET_DISABLED_BY_GAMEPLAY: self.__ui.setOffsetForEnemyPoints() playerTeam = self.__battleCtx.getArenaDP().getNumberOfTeam() for clientID, (points, timeLeft, invadersCnt, stopped) in self.__points.iteritems(): if clientID in self.__captured: self.__ui.addCapturedTeamBase(clientID, playerTeam, timeLeft, invadersCnt) elif points: self.__ui.addCapturingTeamBase(clientID, playerTeam, points, self._getProgressRate(), timeLeft, invadersCnt, stopped)
def new_addArenaExtraData(self, arenaDP): old_addArenaExtraData(self, arenaDP) if not Statistics.myConf['win_chance_enable'] or not Statistics.okCw(): return win_chance = Statistics.getWinChance() if win_chance: arenaTypeID = getArenaTypeID() colour = '#ff0000' if win_chance < 49: colour = '#ff0000' elif win_chance >= 49 and win_chance <= 51: colour = '#ffff00' elif win_chance > 51: colour = '#00ff00' formatz = {'win_chance':win_chance,'color':colour} text = Statistics.myConf['win_chance_text'].format(**formatz) self.as_setWinTextS(getBattleSubTypeWinText(arenaTypeID, 2) + text)
def _addArenaExtraData(self, arenaDP): arena = getClientArena() if arena: arenaType = arena.arenaType extraData = arena.extraData or {} descExtra = getPrebattleFullDescription(extraData) arenaTypeID = getArenaTypeID() arenaSubType = getArenaSubTypeName(arenaTypeID) team = arenaDP.getNumberOfTeam() enemy = arenaDP.getNumberOfTeam(True) hasBase = isBaseExists(arenaTypeID, team) allyTeamName, enemyTeamName = self._battleCtx.getTeamName(team), self._battleCtx.getTeamName(enemy) if arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES: winText = i18n.makeString('#arenas:type/%s/description' % arenaSubType) else: winText = getBattleSubTypeWinText(arenaTypeID, 1 if hasBase else 2) if descExtra: battleTypeLocaleStr = descExtra if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS: battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType] else: battleTypeFrameLabel = 'neutral' elif arena.guiType in [constants.ARENA_GUI_TYPE.RANDOM, constants.ARENA_GUI_TYPE.TRAINING]: battleTypeLocaleStr = '#arenas:type/%s/name' % arenaSubType battleTypeFrameLabel = getNecessaryArenaFrameName(arenaSubType, hasBase) elif arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES and hasResourcePoints(): battleTypeFrameLabel = 'resourcePoints' battleTypeLocaleStr = MENU.LOADING_BATTLETYPES_RESOURCEPOINTS else: battleTypeLocaleStr = '#menu:loading/battleTypes/%d' % arena.guiType if arena.guiType != constants.ARENA_GUI_TYPE.UNKNOWN and arena.guiType in constants.ARENA_GUI_TYPE_LABEL.LABELS: battleTypeFrameLabel = constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType] else: battleTypeFrameLabel = 'neutral' arenaInfoData = {'mapName': arenaType.name, 'winText': winText, 'battleTypeLocaleStr': battleTypeLocaleStr, 'battleTypeFrameLabel': battleTypeFrameLabel, 'allyTeamName': allyTeamName, 'enemyTeamName': enemyTeamName} self._setArenaInfo(arenaInfoData)
def setViewComponents(self, panel): """ Sets view component. :param panel: instance of view component. """ if not panel: return self.__ui = panel typeID = arena_info.getArenaTypeID() if typeID and getArenaSubTypeName( typeID) not in _ENEMY_OFFSET_DISABLED_BY_GAMEPLAY: self.__ui.setOffsetForEnemyPoints() playerTeam = self.__battleCtx.getArenaDP().getNumberOfTeam() for clientID, (points, timeLeft, invadersCnt, stopped) in self.__points.iteritems(): if clientID in self.__captured: self.__ui.addCapturedTeamBase(clientID, playerTeam, timeLeft, invadersCnt) elif points: self.__ui.addCapturingTeamBase(clientID, playerTeam, points, self._getProgressRate(), timeLeft, invadersCnt, stopped)
def new_setTipsInfo(self): DEFAULT_BATTLES_COUNT = 100 arena = getClientArena() isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES arenaDP = self._battleCtx.getArenaDP() if hasResourcePoints(): bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT elif hasFlags(): bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT else: bgUrl = '' if isFallout: self.as_setEventInfoPanelDataS({'bgUrl': bgUrl, 'items': getHelpTextAsDicts(arena.arenaType)}) if not self._BattleLoading__isTipInited: battlesCount = DEFAULT_BATTLES_COUNT if g_lobbyContext.getBattlesCount() is not None: battlesCount = g_lobbyContext.getBattlesCount() vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo() tipsIterator = tips.getTipsIterator(arena.guiType, battlesCount, vType, nation, vLvl) statusStr, tipStr = ('', '') if tipsIterator is not None: statusStr, tipStr = next(tipsIterator) else: LOG_ERROR('No required tips found') self.as_setTipTitleS(text_styles.highTitle(statusStr)) #------win chance---- content = text_styles.playerOnline(tipStr) if Statistics.myConf['win_chance_enable'] and Statistics.okCw(): win_chance = Statistics.getWinChance() if win_chance: arenaTypeID = getArenaTypeID() colour = '#ff0000' if win_chance < 49: colour = '#ff0000' elif win_chance >= 49 and win_chance <= 51: colour = '#ffff00' elif win_chance > 51: colour = '#00ff00' formatz = {'win_chance':win_chance,'color':colour} content += Statistics.myConf['win_chance_text'].format(**formatz) self.as_setTipS(content) #--------------------- #----- table ---------- if Statistics.myConf['table_enable'] and Statistics.okCw(): x, y = GUI.screenResolution() Statistics.table = BattleLoadingBarTable(Statistics.myConf['table_texture']) Statistics.table.setWidthMode('PIXEL') Statistics.table.setHeightMode('PIXEL') Statistics.table.setVerticalPositionMode('PIXEL') Statistics.table.setHorizontalPositionMode('PIXEL') Statistics.table.setHorizontalAnchor('LEFT') Statistics.table.setVerticalAnchor('TOP') Statistics.table.setWidth(Statistics.myConf['table_width'])#400 Statistics.table.setHeight(Statistics.myConf['table_height'])#5 Statistics.table.setPosition(eval(Statistics.myConf['table_position'])) Statistics.table.setMaterialFx(Statistics.myConf['table_materialFX']) Statistics.table.setColor(eval(Statistics.myConf['table_color'])) Statistics.table.setVisible(True) Statistics.table.add() config = {} config['texture'] = Statistics.myConf['table_bars_texture'] config['width'] = Statistics.myConf['table_bars_width'] config['height'] = Statistics.myConf['table_bars_height'] config['position'] = eval(Statistics.myConf['table_bars_position']) config['delta'] = Statistics.myConf['table_bars_delta'] config['font'] = Statistics.myConf['table_bars_font'] config['materialFX'] = Statistics.myConf['table_bars_materialFX'] config['color'] = (eval(Statistics.myConf['table_bars_color'][0]),eval(Statistics.myConf['table_bars_color'][1])) config[VEHICLE_CLASS_NAME.LIGHT_TANK] = Statistics.myConf[VEHICLE_CLASS_NAME.LIGHT_TANK] config[VEHICLE_CLASS_NAME.MEDIUM_TANK] = Statistics.myConf[VEHICLE_CLASS_NAME.MEDIUM_TANK] config[VEHICLE_CLASS_NAME.HEAVY_TANK] = Statistics.myConf[VEHICLE_CLASS_NAME.HEAVY_TANK] config[VEHICLE_CLASS_NAME.SPG] = Statistics.myConf[VEHICLE_CLASS_NAME.SPG] config[VEHICLE_CLASS_NAME.AT_SPG] = Statistics.myConf[VEHICLE_CLASS_NAME.AT_SPG] config['table_bars_label'] = Statistics.myConf['table_bars_label'] config['table_bars_odd_pos'] = Statistics.myConf['table_bars_label_pos'] config['show_label'] = Statistics.myConf['table_bars_tankType_show'] config['show_perc'] = Statistics.myConf['table_bars_label_show'] config['align'] = Statistics.myConf['table_bars_align'] Statistics.table.addBars(config) #--------------------- self._BattleLoading__isTipInited = True return
def new_setTipsInfo(self): DEFAULT_BATTLES_COUNT = 100 arena = getClientArena() isFallout = arena.guiType == constants.ARENA_GUI_TYPE.EVENT_BATTLES arenaDP = self._battleCtx.getArenaDP() if hasResourcePoints(): bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTRESOURCEPOINTSEVENT elif hasFlags(): bgUrl = RES_ICONS.MAPS_ICONS_EVENTINFOPANEL_FALLOUTFLAGSEVENT else: bgUrl = '' if isFallout: self.as_setEventInfoPanelDataS({ 'bgUrl': bgUrl, 'items': getHelpTextAsDicts(arena.arenaType) }) if not self._BattleLoading__isTipInited: battlesCount = DEFAULT_BATTLES_COUNT if g_lobbyContext.getBattlesCount() is not None: battlesCount = g_lobbyContext.getBattlesCount() vType, vLvl, nation = arenaDP.getVehicleInfo().getTypeInfo() tipsIterator = tips.getTipsIterator(arena.guiType, battlesCount, vType, nation, vLvl) statusStr, tipStr = ('', '') if tipsIterator is not None: statusStr, tipStr = next(tipsIterator) else: LOG_ERROR('No required tips found') self.as_setTipTitleS(text_styles.highTitle(statusStr)) #------win chance---- content = text_styles.playerOnline(tipStr) if Statistics.myConf['win_chance_enable'] and Statistics.okCw(): win_chance = Statistics.getWinChance() if win_chance: arenaTypeID = getArenaTypeID() colour = '#ff0000' if win_chance < 49: colour = '#ff0000' elif win_chance >= 49 and win_chance <= 51: colour = '#ffff00' elif win_chance > 51: colour = '#00ff00' formatz = {'win_chance': win_chance, 'color': colour} content += Statistics.myConf['win_chance_text'].format( **formatz) self.as_setTipS(content) #--------------------- #----- table ---------- if Statistics.myConf['table_enable'] and Statistics.okCw(): x, y = GUI.screenResolution() Statistics.table = BattleLoadingBarTable( Statistics.myConf['table_texture']) Statistics.table.setWidthMode('PIXEL') Statistics.table.setHeightMode('PIXEL') Statistics.table.setVerticalPositionMode('PIXEL') Statistics.table.setHorizontalPositionMode('PIXEL') Statistics.table.setHorizontalAnchor('LEFT') Statistics.table.setVerticalAnchor('TOP') Statistics.table.setWidth( Statistics.myConf['table_width']) #400 Statistics.table.setHeight( Statistics.myConf['table_height']) #5 Statistics.table.setPosition( eval(Statistics.myConf['table_position'])) Statistics.table.setMaterialFx( Statistics.myConf['table_materialFX']) Statistics.table.setColor( eval(Statistics.myConf['table_color'])) Statistics.table.setVisible(True) Statistics.table.add() config = {} config['texture'] = Statistics.myConf['table_bars_texture'] config['width'] = Statistics.myConf['table_bars_width'] config['height'] = Statistics.myConf['table_bars_height'] config['position'] = eval( Statistics.myConf['table_bars_position']) config['delta'] = Statistics.myConf['table_bars_delta'] config['font'] = Statistics.myConf['table_bars_font'] config['materialFX'] = Statistics.myConf[ 'table_bars_materialFX'] config['color'] = ( eval(Statistics.myConf['table_bars_color'][0]), eval(Statistics.myConf['table_bars_color'][1])) config[VEHICLE_CLASS_NAME.LIGHT_TANK] = Statistics.myConf[ VEHICLE_CLASS_NAME.LIGHT_TANK] config[VEHICLE_CLASS_NAME.MEDIUM_TANK] = Statistics.myConf[ VEHICLE_CLASS_NAME.MEDIUM_TANK] config[VEHICLE_CLASS_NAME.HEAVY_TANK] = Statistics.myConf[ VEHICLE_CLASS_NAME.HEAVY_TANK] config[VEHICLE_CLASS_NAME.SPG] = Statistics.myConf[ VEHICLE_CLASS_NAME.SPG] config[VEHICLE_CLASS_NAME.AT_SPG] = Statistics.myConf[ VEHICLE_CLASS_NAME.AT_SPG] config['table_bars_label'] = Statistics.myConf[ 'table_bars_label'] config['table_bars_odd_pos'] = Statistics.myConf[ 'table_bars_label_pos'] config['show_label'] = Statistics.myConf[ 'table_bars_tankType_show'] config['show_perc'] = Statistics.myConf[ 'table_bars_label_show'] config['align'] = Statistics.myConf['table_bars_align'] Statistics.table.addBars(config) #--------------------- self._BattleLoading__isTipInited = True return