def _populate(self):
     super(CyberSportUnitsListView, self)._populate()
     self.addListener(CSVehicleSelectEvent.VEHICLE_SELECTED, self.__onVehiclesSelectedTeams)
     self.updateSelectedVehicles()
     unit_ext.initListReq(self._selectedVehicles).start(self.__onUnitsListUpdated)
     g_clientUpdateManager.addCallbacks({'inventory.1': self.__onVehiclesChanged})
     self.as_setSearchResultTextS(i18n.makeString(CYBERSPORT.WINDOW_UNITLISTVIEW_FOUNDTEAMS))
     settings = self.unitFunctional.getRosterSettings()
     self._updateVehiclesLabel(int2roman(settings.getMinLevel()), int2roman(settings.getMaxLevel()))
 def __makeData(self):
     self.__makeMainVO()
     self.__setReadyStatus()
     self.__setTimerDelta()
     self.__updateDirections()
     self.__updateHeaderTeamSection()
     self.__requestMineClanEmblem()
     self.__requestEnemyClanEmblem()
     self._updateVehiclesLabel(int2roman(1), int2roman(self.__battle.additionalData.division))
 def _populate(self):
     super(StaticFormationUnitView, self)._populate()
     self.startClubListening(self.__clubDBID)
     settings = self.unitFunctional.getRosterSettings()
     self._updateVehiclesLabel(int2roman(settings.getMinLevel()), int2roman(settings.getMaxLevel()))
     self.__updateHeader()
     _, unit = self.unitFunctional.getUnit()
     self.as_setLegionnairesCountS(False, _ms(CYBERSPORT.STATICFORMATION_UNITVIEW_LEGIONNAIRESTOTAL, cur=unit.getLegionaryCount(), max=unit.getLegionaryMaxCount()))
     self._updateVehiclesLabel(int2roman(settings.getMinLevel()), int2roman(settings.getMaxLevel()))
 def _populate(self):
     super(CyberSportRespawnForm, self)._populate()
     self.startMyClubListening()
     self.__updateHeader()
     self.__updateTimer()
     self.__updateWarning()
     self.__updateTotal()
     settings = self.unitFunctional.getRosterSettings()
     self._updateVehiclesLabel(int2roman(settings.getMinLevel()), int2roman(settings.getMaxLevel()))
 def _populate(self):
     super(StaticFormationUnitView, self)._populate()
     self.startClubListening(self.__clubDBID)
     settings = self.unitFunctional.getRosterSettings()
     self._updateVehiclesLabel(int2roman(settings.getMinLevel()), int2roman(settings.getMaxLevel()))
     self.__updateHeader()
     _, unit = self.unitFunctional.getUnit()
     self.as_setLegionnairesCountS(False, self.__makeLegionnairesCountString(unit))
     self._updateVehiclesLabel(int2roman(settings.getMinLevel()), int2roman(settings.getMaxLevel()))
     self.clubsCtrl.getAvailabilityCtrl().onStatusChanged += self.onStatusChanged
Example #6
0
 def _initialize(self, *args, **kwargs):
     super(BuyVehicleView, self)._initialize()
     self._blur = GUI.WGUIBackgroundBlur()
     self._blur.enable = True
     self.__addListeners()
     isElite = self.__vehicle.isElite
     vehType = self.__vehicle.type.replace('-', '_')
     isRestoreAvailable = self.__vehicle.isRestoreAvailable()
     with self.viewModel.transaction() as model:
         model.setTankType(
             '{}_elite'.format(vehType) if isElite else vehType)
         vehicleTooltip = i18n.makeString(
             getTypeUserName(self.__vehicle.type, isElite))
         noCrewLabelPath = R.strings.store.buyVehicleWindow.checkBox
         model.setVehicleNameTooltip(vehicleTooltip)
         model.setNation(nations.NAMES[self.__vehicle.nationID])
         model.setNoCrewCheckboxLabel(
             noCrewLabelPath.restore.withoutCrew
             if isRestoreAvailable else noCrewLabelPath.buy.withoutCrew)
         model.setTankLvl(int2roman(self.__vehicle.level))
         model.setTankName(self.__vehicle.shortUserName)
         model.setCountCrew(len(self.__vehicle.crew))
         model.setBuyVehicleIntCD(self.__vehicle.intCD)
         model.setIsToggleBtnVisible(self.__isTradeIn()
                                     and self.__vehicle.hasRentPackages)
         model.setIsElite(isElite)
         model.setIsRentVisible(self.__isRentVisible)
         model.setIsInBootcamp(self.__isBootcampBuyVehicle())
         model.setIsMovingTextEnabled(constants.IS_CHINA
                                      and GUI_SETTINGS.movingText.show)
         if self.__vehicle.hasCrew:
             model.setWithoutCommanderAltText(
                 R.strings.store.buyVehicleWindow.crewInVehicle)
         equipmentBlock = model.equipmentBlock
         equipmentBlock.setIsRentVisible(self.__isRentVisible)
         equipmentBlock.setTradeInIsEnabled(self.__isTradeIn())
         emtySlotAvailable = self.itemsCache.items.inventory.getFreeSlots(
             self.__stats.vehicleSlots) > 0
         equipmentBlock.setEmtySlotAvailable(emtySlotAvailable)
         equipmentBlock.setIsRestore(isRestoreAvailable)
         if self.__vehicle.hasRentPackages and not isRestoreAvailable:
             self.__selectedRentIdx = 0
             self.__selectedRentTerm = self.__vehicle.rentPackages[
                 self.__selectedRentIdx]['days']
         tankPriceArray = model.tankPrice.getItems()
         self.__addVMsInActionPriceList(tankPriceArray,
                                        self.__vehicle.buyPrices.itemPrice)
         self.__updateTankPrice()
         self.__updateCommanderCards()
         self.__updateSlotPrice()
         self.__updateAmmoPrice()
         self.__updateTradeInInfo()
         self.__updateRentInfo()
         self.__updateBuyBtnLabel()
         totalPriceArray = equipmentBlock.totalPrice.getItems()
         self.__addVMsInActionPriceList(
             totalPriceArray,
             ItemPrice(price=Money(credits=0, gold=0),
                       defPrice=Money(credits=0, gold=0)))
         self.__updateTotalPrice()
Example #7
0
 def onPlayerStateChanged(self, entity, roster, playerInfo):
     team, assigned = decodeRoster(roster)
     data = {'dbID': playerInfo.dbID,
      'state': playerInfo.state,
      'igrType': playerInfo.igrType,
      'icon': '',
      'vShortName': '',
      'vLevel': '',
      'vType': '',
      'isCurrentPayer': playerInfo.isCurrentPlayer()}
     if playerInfo.isVehicleSpecified():
         moduleName = ''
         vehicle = playerInfo.getVehicle()
         badgeVisibility = playerInfo.getEnhancementVisibility()
         if badgeVisibility:
             moduleName = MODULE_NAME_SEPARATOR.join([ self.__craftmacineConrtoller.getModuleName(module) for module in playerInfo.getEnhancementModules() ])
         data.update({'icon': vehicle.iconContour,
          'vShortName': vehicle.shortUserName,
          'vLevel': int2roman(vehicle.level),
          'vType': vehicle.type,
          'isExperimentalModule': bool(badgeVisibility),
          'experimentalModuleName': moduleName})
     self.as_setPlayerStateS(team, assigned, data)
     if playerInfo.isCurrentPlayer():
         self.as_toggleReadyBtnS(not playerInfo.isReady())
     else:
         chat = self.chat
         if chat:
             chat.as_addMessageS(messages.getPlayerStateChangedMessage(self.__prbName, playerInfo))
Example #8
0
 def __packMainBlock(self):
     header = backport.text(
         R.strings.tooltips.battleTypes.battleRoyale.header())
     body = backport.text(
         R.strings.tooltips.battleTypes.battleRoyale.body2())
     currentSeason = self._battleController.getCurrentSeason()
     if currentSeason:
         cycleNumber = self._battleController.getCurrentOrNextActiveCycleNumber(
             currentSeason)
         seasonResID = R.strings.battle_royale.season.num(
             currentSeason.getSeasonID())
         seasonName = backport.text(
             seasonResID.name()) if seasonResID else None
         scheduleStr = backport.text(
             R.strings.menu.headerButtons.battle.types.battleRoyale.extra.
             currentCycle(),
             season=seasonName,
             cycle=int2roman(cycleNumber))
         body = '{}\n\n\n{}'.format(
             scheduleStr,
             backport.text(
                 R.strings.tooltips.battleTypes.battleRoyale.body2()))
     background = backport.image(R.images.gui.maps.icons.battleRoyale.
                                 backgrounds.widget_tooltip_background())
     return formatters.packImageTextBlockData(
         title=text_styles.middleTitle(header),
         txtPadding=formatters.packPadding(top=16, left=20),
         desc=text_styles.main(body),
         descPadding=formatters.packPadding(top=16, left=20),
         txtOffset=1,
         txtGap=-1,
         img=background)
Example #9
0
def packEpicBattleInfoBlock(epicController=None):
    descLvl = text_styles.stats(
        backport.text(
            R.strings.epic_battle.selectorTooltip.epicBattle.bodyVehicleLevel(
            ),
            level=toRomanRangeString(epicController.getValidVehicleLevels())))
    season = epicController.getCurrentSeason()
    cycle = None
    cycleNumber = None
    if season is not None and not season.isSingleCycleSeason():
        hasActiveCycle = season.hasActiveCycle(
            time_utils.getCurrentLocalServerTimestamp())
        if epicController.isEnabled() and hasActiveCycle:
            cycle = season.getCycleInfo()
        else:
            cycle = season.getNextByTimeCycle(
                time_utils.getCurrentLocalServerTimestamp())
    if cycle is not None:
        cycleNumber = cycle.getEpicCycleNumber()
    if cycleNumber:
        titleStr = R.strings.epic_battle.tooltips.common.titleWithCycle()
    else:
        titleStr = R.strings.epic_battle.tooltips.common.title()
    return formatters.packTitleDescBlock(
        title=text_styles.middleTitle(
            backport.text(titleStr, season=int2roman(cycleNumber))),
        desc=text_styles.main(
            backport.text(
                R.strings.epic_battle.selectorTooltip.epicBattle.body(),
                bodyVehicleLevel=descLvl)),
        padding=formatters.packPadding(top=20, left=20, right=20),
        descPadding=formatters.packPadding(right=30))
def getChainVehTypeAndLevelRestrictions(operation, chainID):
    _eventsCache = dependency.instance(IEventsCache)
    pmCache = _eventsCache.getPersonalMissions()
    minLevel, maxLevel = pmCache.getVehicleLevelRestrictions(operation.getID())
    vehType = _ms(
        QUESTS.getAddBottomVehType(
            operation.getChainClassifier(chainID).classificationAttr))
    if operation.getBranch() == PM_BRANCH.PERSONAL_MISSION_2:
        nations = getNationsForChain(operation, chainID)
        nationsText = []
        for nation in GUI_NATIONS:
            if nation in nations:
                nationsText.append(getNationText(nation))

        vehType = _ms(vehType, nations=', '.join(nationsText))
    return (vehType, int2roman(minLevel), int2roman(maxLevel))
def _getDisabledFunRandomTooltip(tooltipStr, funRandomCtrl=None):
    availableLevels = funRandomCtrl.getModeSettings().levels
    minLevel, maxLevel = min(availableLevels), max(availableLevels)
    levels = int2roman(
        minLevel) if minLevel == maxLevel else toRomanRangeString(
            availableLevels)
    return backport.text(tooltipStr, levels=levels)
Example #12
0
 def __getAlertStatusText(self, timeLeft, hasAvailableServers):
     rAlertMsgBlock = R.strings.epic_battle.widgetAlertMessageBlock
     alertStr = ''
     if hasAvailableServers:
         alertStr = backport.text(rAlertMsgBlock.somePeripheriesHalt(), serverName=self.__connectionMgr.serverUserNameShort)
     else:
         currSeason = self.__eventProgression.getCurrentSeason()
         currTime = time_utils.getCurrentLocalServerTimestamp()
         primeTime = self.__eventProgression.getPrimeTimes().get(self.__connectionMgr.peripheryID)
         isCycleNow = currSeason and currSeason.hasActiveCycle(currTime) and primeTime and primeTime.getPeriodsBetween(currTime, currSeason.getCycleEndDate())
         if isCycleNow:
             if self.__connectionMgr.isStandalone():
                 key = rAlertMsgBlock.singleModeHalt
             else:
                 key = rAlertMsgBlock.allPeripheriesHalt
             timeLeftStr = time_utils.getTillTimeString(timeLeft, EPIC_BATTLE.STATUS_TIMELEFT, removeLeadingZeros=True)
             alertStr = backport.text(key(), time=timeLeftStr)
         else:
             nextSeason = currSeason or self.__eventProgression.getNextSeason()
             if nextSeason is not None:
                 nextCycle = nextSeason.getNextByTimeCycle(currTime)
                 if nextCycle is not None:
                     cycleNumber = nextCycle.getEpicCycleNumber()
                     timeLeftStr = time_utils.getTillTimeString(nextCycle.startDate - currTime, EPIC_BATTLE.STATUS_TIMELEFT, removeLeadingZeros=True)
                     alertStr = backport.text(rAlertMsgBlock.startIn(), cycle=int2roman(cycleNumber), time=timeLeftStr)
             if not alertStr:
                 prevSeason = currSeason or self.__eventProgression.getPreviousSeason()
                 if prevSeason is not None:
                     prevCycle = prevSeason.getLastActiveCycleInfo(currTime)
                     if prevCycle is not None:
                         cycleNumber = prevCycle.getEpicCycleNumber()
                         alertStr = backport.text(rAlertMsgBlock.noCycleMessage(), cycle=int2roman(cycleNumber))
     return text_styles.vehicleStatusCriticalText(alertStr)
Example #13
0
 def __onChanged(self, changedData):
     """
     gui.game_control.VehComparisonBasket.onChange event handler
     :param changedData: instance of gui.game_control.veh_comparison_basket._ChangedData
     """
     comparisonBasket = getVehicleComparisonBasketCtrl()
     if changedData.addedCDs:
         cMgr = self.__getContainerManager()
         if not cMgr.isViewAvailable(
                 ViewTypes.LOBBY_SUB,
             {POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.VEHICLE_COMPARE}):
             if comparisonBasket.getVehiclesCount() == 1:
                 self.__view.as_openVehicleCompareCartPopoverS(True)
             else:
                 vehicle = g_itemsCache.items.getItemByCD(
                     changedData.addedCDs[-1])
                 vehName = '  '.join(
                     [int2roman(vehicle.level), vehicle.shortUserName])
                 vehTypeIcon = RES_ICONS.maps_icons_vehicletypes_gold(
                     vehicle.type + '.png')
                 self.__view.as_showAddVehicleCompareAnimS({
                     'vehName':
                     vehName,
                     'vehType':
                     vehTypeIcon
                 })
     if changedData.addedCDs or changedData.removedCDs:
         self.__updateBtnVisibility(comparisonBasket)
Example #14
0
 def onPlayerStateChanged(self, entity, roster, accountInfo):
     stateString = formatters.getPlayerStateString(accountInfo.state)
     vContourIcon = ''
     vShortName = ''
     vLevel = ''
     if accountInfo.isVehicleSpecified():
         vehicle = accountInfo.getVehicle()
         vContourIcon = vehicle.iconContour
         vShortName = vehicle.shortUserName
         vLevel = int2roman(vehicle.level)
     if roster == PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1:
         self.as_setPlayerStateInTeam1S(accountInfo.dbID, stateString,
                                        vContourIcon, vShortName, vLevel,
                                        accountInfo.igrType)
     elif roster == PREBATTLE_ROSTER.ASSIGNED_IN_TEAM2:
         self.as_setPlayerStateInTeam2S(accountInfo.dbID, stateString,
                                        vContourIcon, vShortName, vLevel,
                                        accountInfo.igrType)
     else:
         self.as_setPlayerStateInOtherS(accountInfo.dbID, stateString,
                                        vContourIcon, vShortName, vLevel,
                                        accountInfo.igrType)
     creator = self.__getCreatorFromRosters()
     if accountInfo.dbID == creator.dbID:
         self.__showSettings(entity)
     self.__updateStartButton(entity)
Example #15
0
def showMarathonReward(vehicleCD, videoShownKey):
    from gui.impl.lobby.marathon.marathon_reward_view import MarathonRewardViewWindow
    uiLoader = dependency.instance(IGuiLoader)
    itemsCache = dependency.instance(IItemsCache)
    vehicle = itemsCache.items.getItemByCD(vehicleCD)
    if vehicle is not None:
        vehicleType = formatEliteVehicle(vehicle.isElite, vehicle.type)
        congratsSourceId = str(vehicle.intCD)
        sourceName = Vehicle.getIconResourceName(getVehicleStrID(vehicle.name))
        if sourceName and congratsSourceId is not None:
            specialRewardData = SpecialRewardData(
                sourceName=sourceName,
                congratsSourceId=congratsSourceId,
                vehicleName=vehicle.userName,
                vehicleIsElite=vehicle.isElite,
                vehicleLvl=int2roman(vehicle.level),
                vehicleType=vehicleType,
                goToVehicleBtn=vehicle.isInInventory,
                videoShownKey=videoShownKey)
            viewID = R.views.lobby.marathon.marathon_reward_view.MarathonRewardView(
            )
            if uiLoader.windowsManager.findViews(loadedViewPredicate(viewID)):
                return
            window = MarathonRewardViewWindow(specialRewardData)
            window.load()
    return
 def _constructHeader(self, block, skillID, level):
     skillLevel = self._epicMetaGameCtrl.getSkillInformation(
     )[skillID].levels[level]
     title = skillLevel.name
     icon = skillLevel.icon
     romanLvl = int2roman(level)
     desc = i18n.makeString(EPIC_BATTLE.METAABILITYSCREEN_ABILITY_LEVEL,
                            lvl=romanLvl)
     imgPaddingLeft = 20
     imgPaddingTop = 0
     txtOffset = 85
     highlightPath = None
     overlayPath = None
     padding = formatters.packPadding(
         top=SLOT_HIGHLIGHT_TYPES.EQUIPMENT_PLUS_PADDING_TOP,
         left=SLOT_HIGHLIGHT_TYPES.EQUIPMENT_PLUS_PADDING_LEFT)
     block.append(
         formatters.packItemTitleDescBlockData(
             title=text_styles.highTitle(title),
             desc=text_styles.standard(desc),
             img=RES_ICONS.getEpicBattlesSkillIcon('43x43', icon),
             imgPadding=formatters.packPadding(left=imgPaddingLeft,
                                               top=imgPaddingTop),
             txtGap=-3,
             txtOffset=txtOffset,
             padding=formatters.packPadding(top=0, bottom=0),
             overlayPath=overlayPath,
             overlayPadding=padding,
             highlightPath=highlightPath,
             highlightPadding=padding))
     block.append(
         formatters.packTextBlockData(
             text_styles.standard(skillLevel.shortDescr),
             padding=formatters.packPadding(left=txtOffset, top=0)))
     return
 def getTooltip(self):
     eventType = self._event.getType()
     limits = self._event.getLimits()
     if eventType == _et.NATION:
         nationsList = limits.getNations()
         full = set(NationNames) == set(nationsList)
         nations = ', \n'.join([
             getNationText(value) for value in GUI_NATIONS
             if value in nationsList
         ])
         result = TOOLTIPS.elen_task_eventtype_full(
             eventType) if full else _ms(
                 TOOLTIPS.elen_task_eventtype_notfull(eventType),
                 nations=nations)
     elif eventType == _et.CLASS:
         typeList = limits.getVehiclesClasses()
         full = set(VEHICLE_CLASS_NAME.ALL()) == set(typeList)
         types = ', \n'.join([vehicleTypeText(value) for value in typeList])
         result = TOOLTIPS.elen_task_eventtype_full(
             eventType) if full else _ms(
                 TOOLTIPS.elen_task_eventtype_notfull(eventType),
                 classes=types)
     elif eventType == _et.LEVEL:
         levelList = limits.getVehiclesLevels()
         full = set(LEVELS_RANGE) == set(limits.getVehiclesLevels())
         levels = ', '.join([int2roman(value) for value in levelList])
         result = TOOLTIPS.elen_task_eventtype_full(
             eventType) if full else _ms(
                 TOOLTIPS.elen_task_eventtype_notfull(eventType),
                 levels=levels)
     else:
         result = _ms(TOOLTIPS.elen_task_eventtype_notfull(eventType))
     return makeTooltip(body=result)
def _vehicleHeaderCreator(vehicleCDStr):
    itemsCache = dependency.instance(IItemsCache)
    vehicle = itemsCache.items.getItemByCD(int(vehicleCDStr))
    title = vehicle.shortUserName
    iconPath = getTypeBigIconPath(vehicle.type, vehicle.isPremium)
    txtLevel = int2roman(vehicle.level)
    return (title, iconPath, txtLevel)
Example #19
0
 def __makeSeasonTimeText(self, timeStamp, seasonNum):
     day, month = self.__getDayMonth(timeStamp)
     return backport.text(_rBattlePass.progression.seasonText(),
                          seasonNum=int2roman(seasonNum),
                          endDay=str(day),
                          endMonth=backport.text(
                              R.strings.menu.dateTime.months.num(month)()))
Example #20
0
 def __updateOffSeason(self):
     prevSeasonStats = self.__battlePassController.getLastFinishedSeasonStats(
     )
     if prevSeasonStats is None:
         self.__showDummy()
         _logger.warning('There is not previous season stats')
         return
     else:
         prevOtherStats = prevSeasonStats.otherStats
         prevSeasonHistory = getSeasonHistory(prevSeasonStats.seasonID)
         if prevSeasonHistory is None:
             self.__showDummy()
             _logger.warning('There is not previous season %r history',
                             prevSeasonStats.seasonID)
             return
         sumPoints = sum(prevSeasonStats.vehPoints)
         seasonName = backport.text(_rBattlePass.offSeason.title(),
                                    season=int2roman(
                                        prevSeasonHistory.seasonNum))
         state, currentLevel = getLevelFromStats(prevOtherStats,
                                                 prevSeasonHistory)
         with self.viewModel.transaction() as tx:
             tx.setShowOffSeason(True)
             offSeason = tx.offSeason
             offSeason.setLevel(currentLevel + 1)
             offSeason.setSeasonName(seasonName)
             offSeason.setHasBattlePass(
                 self.__battlePassController.isBought(
                     prevSeasonStats.seasonID))
             offSeason.setIsPostProgression(state != BattlePassState.BASE)
             offSeason.setIsPostProgressionCompleted(
                 state == BattlePassState.COMPLETED)
             offSeason.setIsEnabled(sumPoints > 0)
         return
Example #21
0
    def __makeAccountsData(self, accounts):
        result = []
        isPlayerSpeaking = self.app.voiceChatManager.isPlayerSpeaking
        accounts = sorted(accounts, cmp=getPlayersComparator())
        getUser = self.usersStorage.getUser
        for account in accounts:
            vContourIcon = ''
            vShortName = ''
            vLevel = ''
            dbID = account.dbID
            user = getUser(dbID)
            if account.isVehicleSpecified():
                vehicle = account.getVehicle()
                vContourIcon = vehicle.iconContour
                vShortName = vehicle.shortUserName
                vLevel = int2roman(vehicle.level)
            result.append({'accID': account.accID,
             'uid': account.dbID,
             'userName': account.name,
             'fullName': account.getFullName(),
             'himself': account.isCurrentPlayer(),
             'stateString': formatters.getPlayerStateString(account.state),
             'icon': vContourIcon,
             'vShortName': vShortName,
             'vLevel': vLevel,
             'chatRoster': user.getRoster() if user else 0,
             'isPlayerSpeaking': bool(isPlayerSpeaking(account.dbID))})

        return result
Example #22
0
 def __showCongratulations(self):
     if self.viewStatus != ViewStatus.LOADED:
         _logger.warning(
             'Can not show congratulations! The view is not loaded anymore.'
         )
         return
     else:
         self.viewModel.setIsContentHidden(True)
         with self.viewModel.congradulationAnim.transaction() as model:
             vehicleType = '{}_elite'.format(
                 self.__vehicle.type
             ) if self.__vehicle.isElite else self.__vehicle.type
             image = self.__vehicle.getShopIcon(
                 size=STORE_CONSTANTS.ICON_SIZE_LARGE)
             defaultImage = RES_SHOP.getVehicleIcon(
                 STORE_CONSTANTS.ICON_SIZE_LARGE, 'empty_tank')
             model.setIsElite(self.__vehicle.isElite)
             model.setVehicleType(vehicleType)
             model.setLvl(int2roman(self.__vehicle.level))
             model.setVName(self.__vehicle.userName)
             model.setImage(image if image is not None else defaultImage)
             model.setImageAlt(defaultImage)
             model.setTitle(R.strings.store.congradulationAnim.titleLabel)
             model.setBtnLbl(
                 R.strings.store.congradulationAnim.showPreviewBtn)
         return
Example #23
0
def _vehicleHeaderCreator(vehicleCDStr):
    vehicleCD = int(vehicleCDStr)
    vehicle = getVehicleType(vehicleCD)
    title = vehicle.shortUserString
    iconPath = 'premium' if bool('premium' in vehicle.tags) else 'simple'
    txtLevel = int2roman(vehicle.level)
    return (title, iconPath, txtLevel)
Example #24
0
 def _update(self, onlyMoneyUpdate=False):
     if g_currentVehicle.isPresent():
         hangarMessage = g_currentVehicle.getHangarMessage()
         if onlyMoneyUpdate and self.__hangarMessage == hangarMessage:
             return
         vehicle = g_currentVehicle.item
         self.__hangarMessage = hangarMessage
         statusId, msg, msgLvl = hangarMessage
         rentAvailable = False
         if statusId in (Vehicle.VEHICLE_STATE.RENTAL_IS_OVER, Vehicle.VEHICLE_STATE.RENTABLE_AGAIN):
             canBuyOrRent, _ = vehicle.mayObtainForMoney(self.itemsCache.items.stats.money)
             rentAvailable = vehicle.isRentable and canBuyOrRent
         if msgLvl == Vehicle.VEHICLE_STATE_LEVEL.RENTABLE:
             msgLvl = Vehicle.VEHICLE_STATE_LEVEL.INFO
         msg, msgLvl = self.__applyGamemodeOverrides(statusId, i18n.makeString(msg), msgLvl)
         msgString = ''
         if statusId != Vehicle.VEHICLE_STATE.UNDAMAGED or msgLvl == Vehicle.VEHICLE_STATE_LEVEL.ACTIONS_GROUP:
             msgString = makeHtmlString('html_templates:vehicleStatus', msgLvl, {'message': msg})
         roleID = ROLE_TYPE.NOT_DEFINED
         if msgLvl == Vehicle.VEHICLE_STATE_LEVEL.ACTIONS_GROUP:
             roleID = vehicle.role
         self.__applyCustomizationNewCounter(vehicle)
         self.__updateDevices(vehicle)
         self.as_updateVehicleStatusS({'message': msgString,
          'rentAvailable': rentAvailable,
          'isElite': vehicle.isElite,
          'tankType': '{}_elite'.format(vehicle.type) if vehicle.isElite else vehicle.type,
          'vehicleLevel': '{}'.format(int2roman(vehicle.level)),
          'vehicleName': '{}'.format(vehicle.shortUserName),
          'actionGroupId': roleID})
Example #25
0
 def _showOwnDeathInfo(self):
     if self._deathAlreadySet:
         self.as_showDeadReasonS()
     else:
         deathInfo = self.getDeathInfo()
         if deathInfo:
             killerVehID = deathInfo['killerVehicle']
             battleCtx = self.sessionProvider.getCtx()
             if killerVehID and not battleCtx.isCurrentPlayer(killerVehID) and battleCtx.getArenaDP().getVehicleInfo(killerVehID).vehicleType.compactDescr:
                 showVehicle = True
                 vInfoVO = battleCtx.getArenaDP().getVehicleInfo(killerVehID)
                 vTypeInfoVO = vInfoVO.vehicleType
                 vehLvl = int2roman(vTypeInfoVO.level)
                 vehImg = _VEHICLE_SMALL_ICON_RES_PATH.format(vTypeInfoVO.iconName)
                 vehClass = Vehicle.getTypeBigIconPath(vTypeInfoVO.classTag, False)
                 vehName = vTypeInfoVO.shortNameWithPrefix
             else:
                 showVehicle = False
                 vehLvl = vehImg = vehClass = vehName = None
             reason = self.__makeReasonInfo(deathInfo)
             self.as_setDeadReasonInfoS(reason, showVehicle, vehLvl, vehImg, vehClass, vehName)
             self._deathAlreadySet = True
         else:
             self.as_setDeadReasonInfoS('', False, None, None, None, None)
     return
Example #26
0
def makeEventBoardsTableDataVO(rewardCategories, method):
    rewardsFormatter = QuestsBonusComposer(getEventBoardsAwardPacker())
    data = []
    stripes = []
    for categoryNumber, category in rewardCategories.iteritems():
        players = category.get('players')
        if not players:
            continue
        rewards = category['rewards']
        isIndividual = len(
            rewards) > 1 and categoryNumber == EVENT_BOARDS_GROUP_TYPES.GOLD
        stripeVO = {
            'rendererLinkage':
            EVENTBOARDS_ALIASES.AWARD_STRIPE_RENDERER,
            'id':
            categoryNumber,
            'groupIcon':
            RES_ICONS.getEventBoardGroup(categoryNumber),
            'tooltip':
            _ms(TOOLTIPS.ELEN_ANCOR_ALLGROUPS_HEADER,
                group=int2roman(categoryNumber),
                min=category.get('rank_min'),
                max=category.get('rank_max'))
        }
        if not isIndividual and rewards:
            stripeVO['icons'] = rewardsFormatter.getFormattedBonuses(
                rewards[0])
        data.append(stripeVO)
        stripes.append(stripeVO)
        for currentPlayerData in players:
            name = currentPlayerData.getName()
            clanAbbrev = currentPlayerData.getClanTag()
            clanColor = currentPlayerData.getClanColor()
            rank = currentPlayerData.getRank()
            formattedParameters = formatParameters(
                method, (currentPlayerData.getP1(), currentPlayerData.getP2(),
                         currentPlayerData.getP3()))
            player = {
                'position': rank,
                'value1': formattedParameters[0],
                'value2': formattedParameters[1],
                'value3': formattedParameters[2],
                'userVO': {
                    'dbID': currentPlayerData.getSpaId(),
                    'fullName': getFullName(name, clanAbbrev, clanColor),
                    'userName': name,
                    'clanAbbrev': getClanTag(clanAbbrev, clanColor)
                }
            }
            if isIndividual:
                player['icons'] = rewardsFormatter.getFormattedBonuses(
                    rewards[min(rank, len(rewards)) - 1])
                player[
                    'rendererLinkage'] = EVENTBOARDS_ALIASES.TOP_PLAYER_AWARD_RENDERER
            else:
                player[
                    'rendererLinkage'] = EVENTBOARDS_ALIASES.BASE_PLAYER_AWARD_RENDERER
            data.append(player)

    return ({'tableDP': data}, {'tableDP': stripes})
 def __onChanged(self, changedData):
     if changedData.addedCDs:
         cMgr = self.__getContainerManager()
         if not cMgr.isViewAvailable(
                 ViewTypes.LOBBY_SUB,
             {POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.VEHICLE_COMPARE}):
             vehCmpData = self.comparisonBasket.getVehicleAt(
                 changedData.addedIDXs[-1])
             if not vehCmpData.isFromCache():
                 if self.comparisonBasket.getVehiclesCount() == 1:
                     self.__view.as_openVehicleCompareCartPopoverS(True)
                 else:
                     vehicle = self.itemsCache.items.getItemByCD(
                         vehCmpData.getVehicleCD())
                     vehName = '  '.join(
                         [int2roman(vehicle.level), vehicle.shortUserName])
                     vehTypeIcon = RES_ICONS.maps_icons_vehicletypes_gold(
                         vehicle.type + '.png')
                     self.__view.as_showAddVehicleCompareAnimS({
                         'vehName':
                         vehName,
                         'vehType':
                         vehTypeIcon
                     })
     if changedData.addedCDs or changedData.removedCDs:
         self.__updateBtnVisibility()
 def __getScheduleStr(self):
     if self.__isFrozen:
         return backport.text(R.strings.menu.headerButtons.battle.types.
                              battleRoyale.extra.frozen())
     else:
         currentSeason = self.__battleRoyaleController.getCurrentSeason()
         if currentSeason is not None and currentSeason.hasActiveCycle(
                 time_utils.getCurrentLocalServerTimestamp()):
             seasonResID = R.strings.battle_royale.season.num(
                 currentSeason.getSeasonID())
             seasonName = backport.text(
                 seasonResID.name()) if seasonResID else None
             scheduleStr = backport.text(
                 R.strings.menu.headerButtons.battle.types.battleRoyale.
                 extra.currentCycle(),
                 season=seasonName,
                 cycle=int2roman(currentSeason.getCycleOrdinalNumber()))
             return text_styles.main(scheduleStr)
         currentOrNextSeason = currentSeason or self.__battleRoyaleController.getNextSeason(
         )
         if currentOrNextSeason is not None:
             nextCycle = currentOrNextSeason.getNextByTimeCycle(
                 time_utils.getCurrentLocalServerTimestamp())
             if nextCycle:
                 scheduleStr = backport.text(
                     R.strings.menu.headerButtons.battle.types.battleRoyale.
                     extra.startsAt(),
                     time=backport.getDateTimeFormat(nextCycle.startDate))
                 return text_styles.main(scheduleStr)
         scheduleStr = backport.text(R.strings.menu.headerButtons.battle.
                                     types.battleRoyale.extra.finished())
         return text_styles.main(scheduleStr)
Example #29
0
 def quest(self):
     data = []
     player_quest = None
     for player_quests in g_eventsCache.potapov.getSelectedQuests(
     ).itervalues():
         if g_currentVehicle.item.type in player_quests.getVehicleClasses():
             player_quest = player_quests
     if player_quest:
         quest_level = player_quest.getVehMinLevel()
         if g_currentVehicle.item.level >= quest_level:
             format_str = {}
             if config.data['config'].get('show_quest_title_string'):
                 data.extend(self.pack('', config.language['quest_title']))
             if 'quest-name' in config.language['text_quest_info']:
                 format_str['quest-name'] = '%s' % player_quest.getUserName(
                 ).decode('utf-8-sig')
             if 'quest-min-level' in config.language['text_quest_info']:
                 format_str['quest-min-level'] = '%s' % quest_level
             if 'quest-min-level-roman' in config.language[
                     'text_quest_info']:
                 format_str['quest-min-level-roman'] = '%s' % int2roman(
                     quest_level).decode('utf-8-sig')
             data.extend(
                 self.pack(
                     '', config.language['text_quest_info'].format(
                         **format_str)))
             if config.data['config'].get('show_conditions_string'):
                 data.extend(
                     self.mark_text_main(
                         player_quest.getUserMainCondition()))
                 data.extend(
                     self.mark_text_seq(player_quest.getUserAddCondition()))
     return data
Example #30
0
 def __convertCompensationTooltip(cls, bonusComp, vehicle, tooltipData):
     specialArgs = {
         'iconBefore':
         backport.image(
             R.images.gui.maps.shop.vehicles.c_180x135.dyn(
                 getIconResourceName(getNationLessName(vehicle.name)))()),
         'labelBefore':
         '',
         'iconAfter':
         backport.image(R.images.gui.maps.icons.quests.bonuses.big.gold()),
         'labelAfter':
         bonusComp.getIconLabel(),
         'bonusName':
         bonusComp.getName(),
         'vehicleName':
         vehicle.shortUserName,
         'vehicleType':
         formatEliteVehicle(vehicle.isElite, vehicle.type),
         'isElite':
         vehicle.isElite,
         'vehicleLvl':
         int2roman(vehicle.level)
     }
     return createTooltipData(tooltip=tooltipData.tooltip,
                              specialAlias=VEH_COMP_R_ID,
                              specialArgs=specialArgs)
Example #31
0
    def __makeAccountsData(self, accounts, label = None):
        listData = []
        isPlayerSpeaking = self.bwProto.voipController.isPlayerSpeaking
        accounts = sorted(accounts, cmp=getPlayersComparator())
        getUser = self.usersStorage.getUser
        for account in accounts:
            vContourIcon = ''
            vShortName = ''
            vLevel = ''
            dbID = account.dbID
            user = getUser(dbID)
            if account.isVehicleSpecified():
                vehicle = account.getVehicle()
                vContourIcon = vehicle.iconContour
                vShortName = vehicle.shortUserName
                vLevel = int2roman(vehicle.level)
            listData.append({'accID': account.accID,
             'dbID': account.dbID,
             'userName': account.name,
             'fullName': account.getFullName(),
             'stateString': formatters.getPlayerStateString(account.state),
             'icon': vContourIcon,
             'vShortName': vShortName,
             'vLevel': vLevel,
             'tags': list(user.getTags()) if user else [],
             'isPlayerSpeaking': bool(isPlayerSpeaking(account.dbID)),
             'clanAbbrev': account.clanAbbrev,
             'region': g_lobbyContext.getRegionCode(account.dbID),
             'igrType': account.igrType})

        if label is not None:
            label = text_styles.main(i18n.makeString(label, total=text_styles.stats(str(len(listData)))))
        result = {'listData': listData,
         'teamLabel': label}
        return result
 def _getFalloutVehLevelStr(self):
     if self._extra is None:
         return
     else:
         config = g_eventsCache.getFalloutConfig(self._extra.eventType)
         requiredLevelStr = int2roman(config.vehicleLevelRequired)
         return (CYBERSPORT.WINDOW_UNIT_MESSAGE_FALLOUTLEVEL, {'level': requiredLevelStr})
Example #33
0
def formatVehicleNameWithTypeIcon(vehicle, path):
    icon = icons.makeImageTag(
        Vehicle.getTypeSmallIconPath(vehicle.type, vehicle.isPremium))
    level = int2roman(vehicle.level)
    key = 'vehicle_prem' if vehicle.isPremium else 'vehicle'
    return makeHtmlString(
        path, key, {'msg': '{} {}{}'.format(level, icon, vehicle.userName)})
 def onPlayerStateChanged(self, entity, roster, playerInfo):
     team, assigned = decodeRoster(roster)
     data = {
         'dbID': playerInfo.dbID,
         'state': playerInfo.state,
         'igrType': playerInfo.igrType,
         'icon': '',
         'vShortName': '',
         'vLevel': '',
         'vType': ''
     }
     if playerInfo.isVehicleSpecified():
         vehicle = playerInfo.getVehicle()
         data.update({
             'icon': vehicle.iconContour,
             'vShortName': vehicle.shortUserName,
             'vLevel': int2roman(vehicle.level),
             'vType': vehicle.type
         })
     self.as_setPlayerStateS(team, assigned, data)
     if playerInfo.isCurrentPlayer():
         self.as_toggleReadyBtnS(not playerInfo.isReady())
     else:
         chat = self.chat
         if chat:
             chat.as_addMessageS(
                 messages.getPlayerStateChangedMessage(
                     self.__prbName, playerInfo))
Example #35
0
 def __getMultiselectionStatus(self):
     if self.__multiselectionMode:
         falloutCfg = self.__falloutCtrl.getConfig()
         messageTemplate = '#fallout:multiselectionSlot/%d' % self.__falloutCtrl.getBattleType(
         )
         if not falloutCfg.hasRequiredVehicles():
             return (False,
                     i18n.makeString(
                         messageTemplate + '/topTierVehicleRequired',
                         level=int2roman(falloutCfg.vehicleLevelRequired)))
         if self.__falloutCtrl.getSelectedVehicles():
             return (
                 True,
                 main(
                     i18n.makeString(
                         FALLOUT.MULTISELECTIONSLOT_SELECTIONSTATUS)) +
                 '\n' + standard(
                     i18n.makeString(
                         FALLOUT.MULTISELECTIONSLOT_SELECTIONREQUIREMENTS,
                         level=toRomanRangeString(
                             list(falloutCfg.allowedLevels), 1))))
         if falloutCfg.getAllowedVehicles():
             return (
                 False,
                 main(i18n.makeString(messageTemplate +
                                      '/descriptionTitle')) + '\n' +
                 standard(
                     i18n.makeString(messageTemplate + '/message',
                                     level=toRomanRangeString(
                                         list(falloutCfg.allowedLevels),
                                         1))))
     return (False, '')
    def _makeAccountsData(self, accounts):
        result = []
        isPlayerSpeaking = self.bwProto.voipController.isPlayerSpeaking
        getUser = self.usersStorage.getUser
        getColors = g_settings.getColorScheme('rosters').getColors
        accounts = sorted(accounts, cmp=prb_items.getPlayersComparator())
        for account in accounts:
            vContourIcon = ''
            vShortName = ''
            vLevel = ''
            vType = ''
            user = getUser(account.dbID)
            if user is not None:
                key = user.getGuiType()
            else:
                key = USER_GUI_TYPE.OTHER
            if account.isVehicleSpecified():
                vehicle = account.getVehicle()
                vContourIcon = vehicle.iconContour
                vShortName = vehicle.shortUserName
                vLevel = int2roman(vehicle.level)
                vType = vehicle.type
            result.append({
                'accID':
                account.accID,
                'dbID':
                account.dbID,
                'userName':
                account.name,
                'clanAbbrev':
                account.clanAbbrev,
                'region':
                self.lobbyContext.getRegionCode(account.dbID),
                'fullName':
                account.getFullName(),
                'igrType':
                account.igrType,
                'time':
                account.time,
                'isCreator':
                account.isCreator,
                'state':
                account.state,
                'icon':
                vContourIcon,
                'vShortName':
                vShortName,
                'vLevel':
                vLevel,
                'vType':
                vType,
                'tags':
                list(user.getTags()) if user else [],
                'isPlayerSpeaking':
                isPlayerSpeaking(account.dbID),
                'colors':
                getColors(key)
            })

        return result
Example #37
0
    def __makeAccountsData(self, accounts):
        result = []
        isPlayerSpeaking = self.app.voiceChatManager.isPlayerSpeaking
        accounts = sorted(accounts, cmp=getPlayersComparator())
        getUser = self.usersStorage.getUser
        for account in accounts:
            vContourIcon = ''
            vShortName = ''
            vLevel = ''
            dbID = account.dbID
            user = getUser(dbID)
            if account.isVehicleSpecified():
                vehicle = account.getVehicle()
                vContourIcon = vehicle.iconContour
                vShortName = vehicle.shortUserName
                vLevel = int2roman(vehicle.level)
            result.append({'accID': account.accID,
             'dbID': account.dbID,
             'userName': account.name,
             'fullName': account.getFullName(),
             'himself': account.isCurrentPlayer(),
             'stateString': formatters.getPlayerStateString(account.state),
             'icon': vContourIcon,
             'vShortName': vShortName,
             'vLevel': vLevel,
             'chatRoster': user.getRoster() if user else 0,
             'isPlayerSpeaking': bool(isPlayerSpeaking(account.dbID)),
             'clanAbbrev': account.clanAbbrev,
             'region': g_lobbyContext.getRegionCode(account.dbID),
             'igrType': account.igrType})

        return result
Example #38
0
 def onPlayerStateChanged(self, functional, roster, accountInfo):
     stateString = formatters.getPlayerStateString(accountInfo.state)
     vContourIcon = ""
     vShortName = ""
     vLevel = ""
     if accountInfo.isVehicleSpecified():
         vehicle = accountInfo.getVehicle()
         vContourIcon = vehicle.iconContour
         vShortName = vehicle.shortUserName
         vLevel = int2roman(vehicle.level)
     if roster == PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1:
         self.as_setPlayerStateInTeam1S(
             accountInfo.dbID, stateString, vContourIcon, vShortName, vLevel, accountInfo.igrType
         )
     elif roster == PREBATTLE_ROSTER.ASSIGNED_IN_TEAM2:
         self.as_setPlayerStateInTeam2S(
             accountInfo.dbID, stateString, vContourIcon, vShortName, vLevel, accountInfo.igrType
         )
     else:
         self.as_setPlayerStateInOtherS(
             accountInfo.dbID, stateString, vContourIcon, vShortName, vLevel, accountInfo.igrType
         )
     creator = self.__getCreatorFromRosters()
     if accountInfo.dbID == creator.dbID:
         self.__showSettings(functional)
     self.__updateStartButton(functional)
 def quest(self):
     data = []
     player_quest = {}
     battle_type = game_control.g_instance.fallout.getBattleType()
     for player_quests in g_eventsCache.potapov.getSelectedQuests().itervalues():
         quest_class = player_quests.getVehicleClasses()
         if not quest_class or g_currentVehicle.item.type in quest_class:
             player_quest[player_quests.getID()] = player_quests
     if player_quest:
         for quest in player_quest:
             quest_level = player_quest[quest].getVehMinLevel()
             quest_type = player_quest[quest].getAddQuestID()
             if 'fallout_5_2' in quest_type and battle_type is not 1:
                 continue
             if 'fallout_5_1' in quest_type and battle_type is not 2:
                 continue
             if not battle_type and 'fallout' in quest_type:
                 continue
             if battle_type and 'fallout' not in quest_type:
                 continue
             if g_currentVehicle.item.level >= quest_level:
                 format_str = {}
                 if config.data['config'].get('show_quest_title_string'):
                     data.extend(self.pack('', config.language['quest_title']))
                 if 'quest-name' in config.language['text_quest_info']:
                     format_str['quest-name'] = '%s' % player_quest[quest].getUserName().decode('utf-8-sig')
                 if 'quest-min-level' in config.language['text_quest_info']:
                     format_str['quest-min-level'] = '%s' % quest_level
                 if 'quest-min-level-roman' in config.language['text_quest_info']:
                     format_str['quest-min-level-roman'] = '%s' % int2roman(quest_level).decode('utf-8-sig')
                 data.extend(self.pack('', config.language['text_quest_info'].format(**format_str)))
                 if config.data['config'].get('show_conditions_string'):
                     data.extend(self.mark_text_main(player_quest[quest].getUserMainCondition()))
                     data.extend(self.mark_text_seq(player_quest[quest].getUserAddCondition()))
     return data
Example #40
0
def packGroupByLevelConditions(
    level, counterValue=None, inrow=False, conditions=None, isCompleted=False, counterDescr=None
):
    return _packGroupByConditionsBlock(
        i18n.makeString("#quests:details/conditions/groupBy/levelLabel", int2roman(level)),
        counterValue=counterValue,
        conditions=conditions,
        isCompleted=isCompleted,
        counterDescr=counterDescr,
    )
 def construct(self):
     tier = self.item.name.split('tier')
     if len(tier) > 1:
         _, level = tier
         desc = _ms('#fortifications:orderType/battleConsumable', level=int2roman(int(level)))
     else:
         desc = _ms('#fortifications:orderType/battleConsumable_no_level')
     block = []
     title = self.item.userName
     block.append(formatters.packImageTextBlockData(title=text_styles.highTitle(title), desc=text_styles.main(desc), img=self.item.icon, imgPadding=formatters.packPadding(left=12), txtGap=-4, txtOffset=100 - self.leftPadding))
     return block
    def __makeDetailsData(self, clientIdx):
        result = self._searchDP.getUnitVO(clientIdx)
        cache = self.fortCtrl.getFortBattlesCache()
        maxVehicleLevel = FORT_BATTLE_DIVISIONS.ABSOLUTE.maxVehicleLevel
        if cache is not None:
            item, battleItem = cache.getItem(cache.getSelectedID())
            if battleItem is not None:
                maxVehicleLevel = battleItem.additionalData.division
            isCreated = bool(result)
            isInBattle = False
            isBegin = False
            if battleItem:
                startTimeLeft = battleItem.getRoundStartTimeLeft()
            else:
                startTimeLeft = item.getStartTimeLeft()
            if time_utils.QUARTER_HOUR > startTimeLeft > 0 or item.isHot():
                isBegin = True
            elif startTimeLeft == 0 or item.isInProgress():
                isInBattle = True
            isCreationAvailable = not isCreated and isBegin
            result['titleText'] = text_styles.promoSubTitle(i18n.makeString(FORTIFICATIONS.FORTCLANBATTLELIST_DETAILS_CREATIONTITLE))
            result['buttonLbl'] = FORTIFICATIONS.SORTIE_LISTVIEW_CREATE
            result['isCreationAvailable'] = not isCreated
            _, clanAbbrev, _ = item.getOpponentClanInfo()
            isDefence = item.getType() == BATTLE_ITEM_TYPE.DEFENCE
            localeStr = FORTIFICATIONS.FORTCLANBATTLELIST_DETAILS_TITLE if isDefence else FORTIFICATIONS.FORTCLANBATTLELIST_DETAILS_ATTACK_TITLE
            result['detailsTitle'] = text_styles.highTitle(i18n.makeString(localeStr, clanName='[%s]' % clanAbbrev))
            result['description'] = text_styles.main(i18n.makeString(FORTIFICATIONS.FORTCLANBATTLELIST_DETAILS_DESCRIPTION, directionName=i18n.makeString('#fortifications:General/directionName%d' % item.getDirection())))
            result['isEnableBtn'] = isCreationAvailable
            if isCreationAvailable:
                descrText = FORTIFICATIONS.FORTCLANBATTLELIST_DETAILS_CREATIONDESCR
            else:
                descrText = FORTIFICATIONS.FORTCLANBATTLELIST_DETAILS_CREATIONDESCR_DISABLE
            result['descrText'] = text_styles.main(i18n.makeString(descrText))
            if isCreated and isInBattle:
                for slot in result['slots']:
                    slot['canBeTaken'] = False

        self.as_setDetailsS(result)
        self._updateVehiclesLabel(int2roman(1), int2roman(maxVehicleLevel))
        return
    def buildList(self):
        self.clear()
        config = self._falloutCtrl.getConfig()
        for slotIdx, vehicleInvId in enumerate(
                self._falloutCtrl.getSelectedSlots()):
            vehicle = self._itemsCache.items.getVehicle(vehicleInvId)
            isSlotRequired = slotIdx in self._falloutCtrl.getRequiredSlots()
            if self._falloutCtrl.mustSelectRequiredVehicle():
                status = i18n.makeString(
                    FALLOUT.
                    MULTISELECTIONSLOT_DOMINATION_REQUIREDVEHICLENOTACTIVATED,
                    level=int2roman(config.vehicleLevelRequired))
            else:
                status = i18n.makeString(
                    FALLOUT.MULTISELECTIONSLOT_DOMINATION_VEHICLENOTACTIVATED)
            if isSlotRequired:
                style = text_styles.alert
            else:
                style = text_styles.standard
            data = {
                'indexStr':
                i18n.makeString(
                    FALLOUT.MULTISELECTIONSLOT_INDEX, index=slotIdx + 1),
                'isActivated':
                False,
                'formattedStatusStr':
                style(status),
                'stateLevel':
                '',
                'showAlert':
                isSlotRequired,
                'alertTooltip':
                TOOLTIPS.MULTISELECTION_ALERT
            }
            if vehicle is not None:
                vState, vStateLvl = vehicle.getState()
                data.update({
                    'isActivated': True,
                    'formattedStatusStr': _getStatusString(vState),
                    'inventoryId': vehicle.invID,
                    'vehicleName': vehicle.shortUserName,
                    'vehicleIcon': vehicle.iconSmall,
                    'vehicleType': vehicle.type,
                    'vehicleLevel': vehicle.level,
                    'isElite': vehicle.isElite,
                    'stat': vState,
                    'stateLevel': vStateLvl,
                    'showAlert': False
                })
            self._list.append(data)

        self.refresh()
        return
Example #44
0
 def construct(self):
     block = []
     headerBlocks = []
     if self.vehicle.isElite:
         vehicleType = TOOLTIPS.tankcaruseltooltip_vehicletype_elite(self.vehicle.type)
         bgLinkage = BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_ELITE_VEHICLE_BG_LINKAGE
     else:
         vehicleType = TOOLTIPS.tankcaruseltooltip_vehicletype_normal(self.vehicle.type)
         bgLinkage = BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_NORMAL_VEHICLE_BG_LINKAGE
     nameStr = text_styles.highTitle(self.vehicle.userName)
     typeStr = text_styles.main(vehicleType)
     levelStr = text_styles.concatStylesWithSpace(text_styles.stats(int2roman(self.vehicle.level)), text_styles.standard(_ms(TOOLTIPS.VEHICLE_LEVEL)))
     icon = '../maps/icons/vehicleTypes/big/' + self.vehicle.type + ('_elite.png' if self.vehicle.isElite else '.png')
     headerBlocks.append(formatters.packImageTextBlockData(title=nameStr, desc=text_styles.concatStylesToMultiLine(levelStr + ' ' + typeStr, ''), img=icon, imgPadding=formatters.packPadding(left=10, top=-15), txtGap=-2, txtOffset=99, padding=formatters.packPadding(top=15, bottom=-15 if self.vehicle.isFavorite else -21)))
     if self.vehicle.isFavorite:
         headerBlocks.append(formatters.packImageTextBlockData(title=text_styles.neutral(TOOLTIPS.VEHICLE_FAVORITE), img=RES_ICONS.MAPS_ICONS_TOOLTIP_MAIN_TYPE, imgPadding=formatters.packPadding(top=-15), imgAtLeft=False, txtPadding=formatters.packPadding(left=10), txtAlign=BLOCKS_TOOLTIP_TYPES.ALIGN_RIGHT, padding=formatters.packPadding(top=-28, bottom=-27)))
     block.append(formatters.packBuildUpBlockData(headerBlocks, stretchBg=False, linkage=bgLinkage, padding=formatters.packPadding(left=-self.leftPadding)))
     return block
Example #45
0
    def fmtParts(self, elems, chapters):

        elems = filter(lambda e: e.get("included") == "True", elems)

        parts = []

        for elem in elems:
            text = self.fmtPart.wrap(
                self.fmtChapters(elem.find("childs"), chapters),
                {
                    "name": elem.find("name").text,
                    "num":  int2roman(self.partNum),
                }
            )
            parts.append(text)
            self.partNum += 1
            
        return self.fmtPartList.wrap(parts)
 def __makeQuestDetailsInfo(self, questID):
     quest = events_helpers.getPotapovQuestsCache().getQuests()[questID]
     questInfoData = events_helpers.getEventInfoData(quest)
     self._navInfo.selectPotapovQuest(self.__tile.getID(), questID)
     vehMinLevel, vehClasses = quest.getVehMinLevel(), quest.getVehicleClasses()
     if vehMinLevel > 1:
         reqsHeader = text_styles.middleTitle(_ms(QUESTS.QUESTTASKDETAILSVIEW_REQUIREMENTS))
         if quest.getQuestBranch() == PQ_BRANCH.REGULAR:
             reqs = _ms(QUESTS.QUESTTASKDETAILSVIEW_REQUIREMENTS_TEXT, level=int2roman(vehMinLevel), vehType=', '.join([ Vehicle.getTypeShortUserName(vc) for vc in vehClasses ]))
         elif vehMinLevel < 10:
             reqs = _ms(QUESTS.QUESTTASKDETAILSVIEW_REQUIREMENTS_MORE8LVL)
         else:
             reqs = _ms(QUESTS.QUESTTASKDETAILSVIEW_REQUIREMENTS_ONLY10LVL)
     else:
         reqsHeader = reqs = ''
     condition = makeHtmlString('html_templates:lobby/quests/potapov', 'questDetails', ctx={'mainCondHeader': text_styles.middleTitle(_ms(QUESTS.QUESTTASKDETAILSVIEW_MAINCONDITIONS)),
      'mainCond': quest.getUserMainCondition(),
      'addCondHeader': text_styles.middleTitle(_ms(QUESTS.QUESTTASKDETAILSVIEW_ADDITIONALCONDITIONS)),
      'addCond': quest.getUserAddCondition(),
      'requirementsHeader': reqsHeader,
      'requirements': reqs,
      'adviseHeader': text_styles.middleTitle(_ms(QUESTS.QUESTTASKDETAILSVIEW_DESCRIPTION)),
      'advise': quest.getUserAdvice(),
      'descr': quest.getUserDescription()})
     if not quest.isUnlocked():
         btnInfo = _makeSelectBtn(QUESTS.QUESTTASKDETAILSVIEW_BTNLABEL_BEGIN, enabled=False, descr=text_styles.error(icons.notAvailableRed() + ' ' + _ms(self._lockedMessageStrKey)))
     elif quest.needToGetReward():
         btnInfo = _makeSelectBtn(QUESTS.QUESTTASKDETAILSVIEW_BTNLABEL_TAKEAWARD, TOOLTIPS.PRIVATEQUESTS_ACTIONPANNEL_RECEIVETHEAWARD, _ms(QUESTS.QUESTTASKDETAILSVIEW_TASKDESCRIPTION_TAKEAWARD))
     elif quest.isInProgress():
         btnInfo = _makeRefuseBtn(QUESTS.QUESTTASKDETAILSVIEW_BTNLABEL_CANCEL, TOOLTIPS.PRIVATEQUESTS_ACTIONPANNEL_ABORT, _ms(QUESTS.QUESTTASKDETAILSVIEW_TASKDESCRIPTION_INPROGRESS))
     elif quest.isFullCompleted():
         btnInfo = _makeNoBtn(text_styles.success(icons.checkmark() + _ms(QUESTS.QUESTTASKDETAILSVIEW_TASKDESCRIPTION_EXCELLENTDONE)))
     elif quest.isMainCompleted():
         btnInfo = _makeSelectBtn(QUESTS.QUESTTASKDETAILSVIEW_BTNLABEL_REPEAT, TOOLTIPS.PRIVATEQUESTS_ACTIONPANNEL_REPEAT, text_styles.success(icons.checkmark() + _ms(QUESTS.QUESTTASKDETAILSVIEW_TASKDESCRIPTION_DONE)))
     else:
         btnInfo = _makeSelectBtn(QUESTS.QUESTTASKDETAILSVIEW_BTNLABEL_BEGIN, TOOLTIPS.PRIVATEQUESTS_ACTIONPANNEL_PERFORM, _ms(QUESTS.QUESTTASKDETAILSVIEW_TASKDESCRIPTION_AVAILABLE))
     mainAwards, addAwards = questInfoData._getBonuses(events_helpers.getPotapovQuestsCache().getQuests().values())
     result = {'taskID': questID,
      'headerText': text_styles.highTitle(quest.getUserName()),
      'conditionsText': condition,
      'mainAwards': mainAwards,
      'addAwards': addAwards}
     result.update(btnInfo._asdict())
     return result
 def __onChanged(self, changedData):
     """
     gui.game_control.VehComparisonBasket.onChange event handler
     :param changedData: instance of gui.game_control.veh_comparison_basket._ChangedData
     """
     comparisonBasket = getVehicleComparisonBasketCtrl()
     if changedData.addedCDs:
         cMgr = self.__getContainerManager()
         if not cMgr.isViewAvailable(ViewTypes.LOBBY_SUB, {POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.VEHICLE_COMPARE}):
             if comparisonBasket.getVehiclesCount() == 1:
                 self.__view.as_openVehicleCompareCartPopoverS(True)
             else:
                 vehicle = g_itemsCache.items.getItemByCD(changedData.addedCDs[-1])
                 vehName = '  '.join([int2roman(vehicle.level), vehicle.shortUserName])
                 vehTypeIcon = RES_ICONS.maps_icons_vehicletypes_gold(vehicle.type + '.png')
                 self.__view.as_showAddVehicleCompareAnimS({'vehName': vehName,
                  'vehType': vehTypeIcon})
     if changedData.addedCDs or changedData.removedCDs:
         self.__updateBtnVisibility(comparisonBasket)
    def _makeAccountsData(self, accounts):
        result = []
        isPlayerSpeaking = self.app.voiceChatManager.isPlayerSpeaking
        getUser = self.usersStorage.getUser
        getColors = g_settings.getColorScheme('rosters').getColors
        accounts = sorted(accounts, cmp=prb_items.getPlayersComparator())
        for account in accounts:
            vContourIcon = ''
            vShortName = ''
            vLevel = ''
            vType = ''
            user = getUser(account.dbID)
            if user is not None:
                key = user.getGuiType()
            else:
                key = USER_GUI_TYPE.OTHER
            if account.isVehicleSpecified():
                vehicle = account.getVehicle()
                vContourIcon = vehicle.iconContour
                vShortName = vehicle.shortUserName
                vLevel = int2roman(vehicle.level)
                vType = vehicle.type
            result.append({'accID': account.accID,
             'dbID': account.dbID,
             'userName': account.name,
             'clanAbbrev': account.clanAbbrev,
             'region': g_lobbyContext.getRegionCode(account.dbID),
             'fullName': account.getFullName(),
             'igrType': account.igrType,
             'time': account.time,
             'himself': account.isCurrentPlayer(),
             'isCreator': account.isCreator,
             'state': account.state,
             'icon': vContourIcon,
             'vShortName': vShortName,
             'vLevel': vLevel,
             'vType': vType,
             'chatRoster': user.getRoster() if user else 0,
             'isPlayerSpeaking': isPlayerSpeaking(account.dbID),
             'colors': getColors(key)})

        return result
Example #49
0
 def construct(self):
     block = []
     if self.vehicle.isElite:
         vehicleType = TOOLTIPS.tankcaruseltooltip_vehicletype_elite(self.vehicle.type)
         bgLinkage = BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_ELITE_VEHICLE_FAVORITE_BG_LINKAGE if self.vehicle.isFavorite else BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_ELITE_VEHICLE_BG_LINKAGE
     else:
         vehicleType = TOOLTIPS.tankcaruseltooltip_vehicletype_normal(self.vehicle.type)
         bgLinkage = BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_NORMAL_VEHICLE_FAVORITE_BG_LINKAGE if self.vehicle.isFavorite else BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_NORMAL_VEHICLE_BG_LINKAGE
     nameStr = text_styles.highTitle(self.vehicle.userName)
     typeStr = text_styles.main(vehicleType)
     levelStr = text_styles.concatStylesWithSpace(text_styles.stats(int2roman(self.vehicle.level)), text_styles.standard(_ms(TOOLTIPS.VEHICLE_LEVEL)))
     icon = '../maps/icons/vehicleTypes/big/' + self.vehicle.type + ('_elite.png' if self.vehicle.isElite else '.png')
     imgOffset = 4
     textOffset = 82
     if self.vehicle.type == 'heavyTank':
         imgOffset = 11
         textOffset = 99
     iconBlock = formatters.packImageTextBlockData(title=nameStr, desc=text_styles.concatStylesToMultiLine(typeStr, levelStr), img=icon, imgPadding={'left': imgOffset,
      'top': -15}, txtGap=-2, txtOffset=textOffset, padding=formatters.packPadding(top=15, bottom=-15))
     block.append(formatters.packBuildUpBlockData([iconBlock], stretchBg=False, linkage=bgLinkage, padding=formatters.packPadding(left=-19 + self.leftPadding, top=-1)))
     return block
Example #50
0
 def onPlayerStateChanged(self, functional, roster, playerInfo):
     team, assigned = decodeRoster(roster)
     data = {'uid': playerInfo.dbID,
      'state': playerInfo.state,
      'icon': '',
      'vShortName': '',
      'vLevel': '',
      'vType': ''}
     if playerInfo.isVehicleSpecified():
         vehicle = playerInfo.getVehicle()
         data.update({'icon': vehicle.iconContour,
          'vShortName': vehicle.shortUserName,
          'vLevel': int2roman(vehicle.level),
          'vType': vehicle.type})
     self.as_setPlayerStateS(team, assigned, data)
     if playerInfo.isCurrentPlayer():
         self.as_toggleReadyBtnS(not playerInfo.isReady())
     else:
         chat = self.chat
         if chat:
             chat.as_addMessageS(messages.getPlayerStateChangedMessage(self.__prbName, playerInfo))
Example #51
0
    def __makeAccountsData(self, accounts, label=None):
        listData = []
        isPlayerSpeaking = self.app.voiceChatManager.isPlayerSpeaking
        accounts = sorted(accounts, cmp=getPlayersComparator())
        getUser = self.usersStorage.getUser
        for account in accounts:
            vContourIcon = ""
            vShortName = ""
            vLevel = ""
            dbID = account.dbID
            user = getUser(dbID)
            if account.isVehicleSpecified():
                vehicle = account.getVehicle()
                vContourIcon = vehicle.iconContour
                vShortName = vehicle.shortUserName
                vLevel = int2roman(vehicle.level)
            listData.append(
                {
                    "accID": account.accID,
                    "dbID": account.dbID,
                    "userName": account.name,
                    "fullName": account.getFullName(),
                    "stateString": formatters.getPlayerStateString(account.state),
                    "icon": vContourIcon,
                    "vShortName": vShortName,
                    "vLevel": vLevel,
                    "tags": list(user.getTags()) if user else [],
                    "isPlayerSpeaking": bool(isPlayerSpeaking(account.dbID)),
                    "clanAbbrev": account.clanAbbrev,
                    "region": g_lobbyContext.getRegionCode(account.dbID),
                    "igrType": account.igrType,
                }
            )

        if label is not None:
            label = text_styles.main(i18n.makeString(label, total=text_styles.stats(str(len(listData)))))
        result = {"listData": listData, "teamLabel": label}
        return result
 def quest(self):
     data = []
     player_quest = None
     for player_quests in g_eventsCache.potapov.getSelectedQuests().itervalues():
         if g_currentVehicle.item.type in player_quests.getVehicleClasses():
             player_quest = player_quests
     if player_quest:
         quest_level = player_quest.getVehMinLevel()
         if g_currentVehicle.item.level >= quest_level:
             format_str = {}
             if config.data['config'].get('show_quest_title_string'):
                 data.extend(self.pack('', config.language['quest_title']))
             if 'quest-name' in config.language['text_quest_info']:
                 format_str['quest-name'] = '%s' % player_quest.getUserName().decode('utf-8-sig')
             if 'quest-min-level' in config.language['text_quest_info']:
                 format_str['quest-min-level'] = '%s' % quest_level
             if 'quest-min-level-roman' in config.language['text_quest_info']:
                 format_str['quest-min-level-roman'] = '%s' % int2roman(quest_level).decode('utf-8-sig')
             data.extend(self.pack('', config.language['text_quest_info'].format(**format_str)))
             if config.data['config'].get('show_conditions_string'):
                 data.extend(self.mark_text_main(player_quest.getUserMainCondition()))
                 data.extend(self.mark_text_seq(player_quest.getUserAddCondition()))
     return data
Example #53
0
 def __showOwnDeathInfo(self):
     if self.__deathAlreadySet:
         self.as_showDeadReasonS()
     else:
         deathInfo = self.getDeathInfo()
         if deathInfo:
             reason = self.__makeReasonInfo(deathInfo)
             killerVehID = deathInfo['killerVehicle']
             battleCtx = g_sessionProvider.getCtx()
             if killerVehID and not battleCtx.isCurrentPlayer(killerVehID) and battleCtx.getArenaDP().getVehicleInfo(killerVehID).vehicleType.compactDescr:
                 showVehicle = True
                 vTypeInfoVO = battleCtx.getArenaDP().getVehicleInfo(killerVehID).vehicleType
                 vehLvl = int2roman(vTypeInfoVO.level)
                 vehImg = _VEHICLE_SMALL_ICON_RES_PATH.format(vTypeInfoVO.iconName)
                 vehClass = Vehicle.getTypeBigIconPath(vTypeInfoVO.classTag, False)
                 vehName = vTypeInfoVO.shortNameWithPrefix
             else:
                 showVehicle = False
                 vehLvl = vehImg = vehClass = vehName = None
             self.as_setDeadReasonInfoS(reason, showVehicle, vehLvl, vehImg, vehClass, vehName)
             self.__deathAlreadySet = True
         else:
             self.as_setDeadReasonInfoS('', False, None, None, None, None)
     return
Example #54
0
 def makeLvlStr(lvl):
     return i18n.makeString(QUESTS.TOOLTIP_PROGRESS_GROUPBY_NOTE_LEVEL, int2roman(lvl))
Example #55
0
    def _populate(self):
        super(VehicleSellDialog, self)._populate()
        g_clientUpdateManager.addCallbacks({'stats.gold': self.onSetGoldHndlr})
        g_itemsCache.onSyncCompleted += self.__shopResyncHandler
        items = g_itemsCache.items
        vehicle = items.getVehicle(self.vehInvID)
        sellPrice = vehicle.sellPrice
        sellForGold = sellPrice.gold > 0
        priceTextColor = CURRENCIES_CONSTANTS.GOLD_COLOR if sellForGold else CURRENCIES_CONSTANTS.CREDITS_COLOR
        priceTextValue = _ms(DIALOGS.VEHICLESELLDIALOG_PRICE_SIGN_ADD) + _ms(BigWorld.wg_getIntegralFormat(sellPrice.gold if sellForGold else sellPrice.credits))
        currencyIcon = CURRENCIES_CONSTANTS.GOLD if sellForGold else CURRENCIES_CONSTANTS.CREDITS
        invVehs = items.getVehicles(REQ_CRITERIA.INVENTORY)
        if vehicle.isPremium or vehicle.level >= 3:
            self.as_visibleControlBlockS(True)
            self.__initCtrlQuestion()
        else:
            self.as_visibleControlBlockS(False)
        modules = items.getItems(criteria=REQ_CRITERIA.VEHICLE.SUITABLE([vehicle]) | REQ_CRITERIA.INVENTORY).values()
        shells = items.getItems(criteria=REQ_CRITERIA.VEHICLE.SUITABLE([vehicle], [GUI_ITEM_TYPE.SHELL]) | REQ_CRITERIA.INVENTORY).values()
        otherVehsShells = set()
        for invVeh in invVehs.itervalues():
            if invVeh.invID != self.vehInvID:
                for shot in invVeh.descriptor.gun['shots']:
                    otherVehsShells.add(shot['shell']['compactDescr'])

        vehicleAction = None
        if sellPrice != vehicle.defaultSellPrice:
            vehicleAction = packItemActionTooltipData(vehicle, False)
        if vehicle.isElite:
            description = TOOLTIPS.tankcaruseltooltip_vehicletype_elite(vehicle.type)
        else:
            description = DIALOGS.vehicleselldialog_vehicletype(vehicle.type)
        levelStr = text_styles.concatStylesWithSpace(text_styles.stats(int2roman(vehicle.level)), text_styles.main(_ms(DIALOGS.VEHICLESELLDIALOG_VEHICLE_LEVEL)))
        restoreController = getRestoreController()
        tankmenGoingToBuffer, deletedTankmen = restoreController.getTankmenDeletedBySelling(vehicle)
        deletedCount = len(deletedTankmen)
        if deletedCount > 0:
            recoveryBufferFull = True
            deletedStr = formatDeletedTankmanStr(deletedTankmen[0])
            maxCount = restoreController.getMaxTankmenBufferLength()
            currCount = len(restoreController.getDismissedTankmen())
            if deletedCount == 1:
                crewTooltip = text_styles.concatStylesToMultiLine(text_styles.middleTitle(_ms(TOOLTIPS.VEHICLESELLDIALOG_CREW_ALERTICON_RECOVERY_HEADER)), text_styles.main(_ms(TOOLTIPS.VEHICLESELLDIALOG_CREW_ALERTICON_RECOVERY_BODY, maxVal=maxCount, curVal=currCount, sourceName=tankmenGoingToBuffer[-1].fullUserName, targetInfo=deletedStr)))
            else:
                crewTooltip = text_styles.concatStylesToMultiLine(text_styles.middleTitle(_ms(TOOLTIPS.VEHICLESELLDIALOG_CREW_ALERTICON_RECOVERY_HEADER)), text_styles.main(_ms(TOOLTIPS.DISMISSTANKMANDIALOG_BUFFERISFULLMULTIPLE_BODY, deletedStr=deletedStr, extraCount=deletedCount - 1, maxCount=maxCount, currCount=currCount)))
        else:
            crewTooltip = None
            recoveryBufferFull = False
        barracksDropDownData = [{'label': _ms(MENU.BARRACKS_BTNUNLOAD)}, {'label': _ms(MENU.BARRACKS_BTNDISSMISS)}]
        sellVehicleData = {'intCD': vehicle.intCD,
         'userName': vehicle.userName,
         'icon': vehicle.icon,
         'level': vehicle.level,
         'isElite': vehicle.isElite,
         'isPremium': vehicle.isPremium,
         'type': vehicle.type,
         'nationID': vehicle.nationID,
         'sellPrice': sellPrice,
         'priceTextValue': priceTextValue,
         'priceTextColor': priceTextColor,
         'currencyIcon': currencyIcon,
         'action': vehicleAction,
         'hasCrew': vehicle.hasCrew,
         'isRented': vehicle.isRented,
         'description': description,
         'levelStr': levelStr,
         'priceLabel': _ms(DIALOGS.VEHICLESELLDIALOG_VEHICLE_EMPTYSELLPRICE),
         'crewLabel': _ms(DIALOGS.VEHICLESELLDIALOG_CREW_LABEL),
         'crewTooltip': crewTooltip,
         'barracksDropDownData': barracksDropDownData,
         'crewRecoveryBufferFull': recoveryBufferFull}
        onVehicleOptionalDevices = []
        for o in vehicle.optDevices:
            if o is not None:
                action = None
                if o.sellPrice != o.defaultSellPrice:
                    action = packItemActionTooltipData(o, False)
                data = {'intCD': o.intCD,
                 'isRemovable': o.isRemovable,
                 'userName': o.userName,
                 'sellPrice': o.sellPrice,
                 'toInventory': True,
                 'action': action}
                onVehicleOptionalDevices.append(data)

        onVehicleoShells = []
        for shell in vehicle.shells:
            if shell is not None:
                action = None
                if shell.sellPrice != shell.defaultSellPrice:
                    action = packItemActionTooltipData(shell, False)
                data = {'intCD': shell.intCD,
                 'count': shell.count,
                 'sellPrice': shell.sellPrice,
                 'userName': shell.userName,
                 'kind': shell.type,
                 'toInventory': shell in otherVehsShells or shell.isPremium,
                 'action': action}
                onVehicleoShells.append(data)

        onVehicleEquipments = []
        for equipmnent in vehicle.eqs:
            if equipmnent is not None:
                action = None
                if equipmnent.sellPrice != equipmnent.defaultSellPrice:
                    action = packItemActionTooltipData(equipmnent, False)
                data = {'intCD': equipmnent.intCD,
                 'userName': equipmnent.userName,
                 'sellPrice': equipmnent.sellPrice,
                 'toInventory': True,
                 'action': action}
                onVehicleEquipments.append(data)

        inInventoryModules = []
        for m in modules:
            inInventoryModules.append({'intCD': m.intCD,
             'inventoryCount': m.inventoryCount,
             'toInventory': True,
             'sellPrice': m.sellPrice})

        inInventoryShells = []
        for s in shells:
            action = None
            if s.sellPrice != s.defaultSellPrice:
                action = packItemActionTooltipData(s, False)
            inInventoryShells.append({'intCD': s.intCD,
             'count': s.inventoryCount,
             'sellPrice': s.sellPrice,
             'userName': s.userName,
             'kind': s.type,
             'toInventory': s in otherVehsShells or s.isPremium,
             'action': action})

        removePrice = items.shop.paidRemovalCost
        removePrices = Money(gold=removePrice)
        defRemovePrice = Money(gold=items.shop.defaults.paidRemovalCost)
        removeAction = None
        if removePrices != defRemovePrice:
            removeAction = packActionTooltipData(ACTION_TOOLTIPS_TYPE.ECONOMICS, 'paidRemovalCost', True, removePrices, defRemovePrice)
        settings = self.getDialogSettings()
        isSlidingComponentOpened = settings['isOpened']
        self.as_setDataS({'accountGold': items.stats.gold,
         'sellVehicleVO': sellVehicleData,
         'optionalDevicesOnVehicle': onVehicleOptionalDevices,
         'shellsOnVehicle': onVehicleoShells,
         'equipmentsOnVehicle': onVehicleEquipments,
         'modulesInInventory': inInventoryModules,
         'shellsInInventory': inInventoryShells,
         'removeActionPrice': removeAction,
         'removePrice': removePrice,
         'isSlidingComponentOpened': isSlidingComponentOpened})
        return
 def _getFalloutVehMinStr(self):
     config = getFalloutCtrl().getConfig()
     allowedLevelsList = list(config.allowedLevels)
     if len(allowedLevelsList) > 1:
         return (CYBERSPORT.WINDOW_UNIT_MESSAGE_FALLOUTMIN_LEVELRANGE, {'level': toRomanRangeString(allowedLevelsList, 1)})
     else:
         return (CYBERSPORT.WINDOW_UNIT_MESSAGE_FALLOUTMIN_REQUIREDLEVEL, {'level': int2roman(config.vehicleLevelRequired)})
 def _getFalloutVehLevelStr(self):
     config = getFalloutCtrl().getConfig()
     requiredLevelStr = int2roman(config.vehicleLevelRequired)
     return (CYBERSPORT.WINDOW_UNIT_MESSAGE_FALLOUTLEVEL, {'level': requiredLevelStr})
 def onSortieUnitReceived(self, clientIdx):
     result = self._searchDP.getUnitVO(clientIdx)
     self._searchDP.refresh()
     self.as_setDetailsS(result)
     self._updateVehiclesLabel(int2roman(1), int2roman(self._searchDP.getUnitMaxLevel(clientIdx)))
Example #59
0
 def __getFightBtnTooltipData(self, state):
     falloutCtrl = getFalloutCtrl()
     config = falloutCtrl.getConfig()
     if state == PREBATTLE_RESTRICTION.VEHICLE_FALLOUT_ONLY:
         header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutOnly/header')
         body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutOnly/body')
     elif state == PREBATTLE_RESTRICTION.FALLOUT_NOT_SELECTED:
         header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutNotSelected/header')
         body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutNotSelected/body')
     elif state == PREBATTLE_RESTRICTION.VEHICLE_GROUP_IS_NOT_READY:
         header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutNotReady/header')
         body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutNotReady/body')
     elif state == UNIT_RESTRICTION.FALLOUT_NOT_ENOUGH_PLAYERS:
         header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutNotEnoughPlayer/header')
         body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutNotEnoughPlayer/body')
     elif state in (UNIT_RESTRICTION.FALLOUT_VEHICLE_LEVEL_REQUIRED, PREBATTLE_RESTRICTION.VEHICLE_GROUP_REQUIRED):
         header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutVehLevelRequired/header')
         body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutVehLevelRequired/body', level=int2roman(config.vehicleLevelRequired))
     elif state in (UNIT_RESTRICTION.FALLOUT_VEHICLE_MIN, PREBATTLE_RESTRICTION.VEHICLE_GROUP_MIN):
         allowedLevelsList = list(config.allowedLevels)
         if len(allowedLevelsList) > 1:
             header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutVehMin/header')
             body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutVehMin/body', min=str(config.minVehiclesPerPlayer), level=toRomanRangeString(allowedLevelsList, 1))
         else:
             header = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutVehLevelRequired/header')
             body = i18n.makeString('#menu:headerButtons/fightBtn/tooltip/falloutVehLevelRequired/body', level=int2roman(config.vehicleLevelRequired))
     else:
         return None
     return {makeTooltip(header, body)}