def __packAwardsBlock(self, quest): subBlocks = [] if quest.isCompleted(): middleTitle = formatters.packImageTextBlockData( title=text_styles.statInfo( backport.text(R.strings.tooltips.battleTypes.ranked.rank. award.received())), img=backport.image( R.images.gui.maps.icons.buttons.checkmark()), imgPadding=formatters.packPadding(left=2, top=3), txtOffset=20) else: if quest.isQualificationQuest(): middleTitleText = backport.text( R.strings.tooltips.battleTypes.ranked.rank. qualificationReward(), count=quest.getQualificationBattlesCount()) else: middleTitleText = backport.text( R.strings.tooltips.battleTypes.ranked.rank.reward()) middleTitle = formatters.packTextBlockData( text_styles.middleTitle(middleTitleText)) listData = getRankedAwardsFormatter().getFormattedBonuses( quest.getBonuses()) awardsWidth = len(listData) * _AWARD_STEP if awardsWidth < _TOOLTIP_MIN_WIDTH: awardsWidth = _TOOLTIP_MIN_WIDTH else: awardsWidth += _AWARDS_RIGHT_PADDING self._setWidth(awardsWidth) subBlocks.append(middleTitle) subBlocks.append( formatters.packGroupBlockData( listData, padding=formatters.packPadding(top=15))) return subBlocks
def __getLeaguesData(self): leaguesRewardsData = self.__rankedController.getLeagueRewards() result = [] formatter = getRankedAwardsFormatter() def findAndPreformatBonus(awards, bonusName): bonus = findFirst(lambda x: x.getName() == bonusName, awards) if bonus is not None: bonus = first(formatter.getPreformattedBonuses([bonus])) return bonus for data in leaguesRewardsData: leagueID = data['league'] awards = data['awards'] badgeBonus = findAndPreformatBonus(awards, 'dossier') styleBonus = findAndPreformatBonus(awards, 'customizations') if leagueID and styleBonus and badgeBonus: isCurrent = self.__rankedController.getWebSeasonProvider( ).seasonInfo.league == leagueID styleCD = styleBonus.specialArgs[0] style = self.__itemsCache.items.getItemByCD(styleCD) _, _, styleID = parseIntCompactDescr(styleCD) self.__styleDescriptions[styleID] = backport.text( R.strings.ranked_battles.rewardsView.tabs.leagues. description.dyn('league%s' % leagueID)()) badgeID = badgeBonus.specialArgs[0] result.append( rewards_vos.getLeagueRewardVO(leagueID, styleBonus, styleID, style.userName, badgeID, isCurrent)) _logger.error('Invalid awards or leagueID in quests') return result
def __packAwards(self): result = [] formatter = getRankedAwardsFormatter() for name, value in self._awards.iteritems(): result.extend( formatter.getFormattedBonuses(getBonuses( self._quest, name, value), size=AWARDS_SIZES.BIG)) return result
def _packBlocks(self, boxType, status, *args, **kwargs): items = super(RankedYearReward, self)._packBlocks() self.__points, _ = self.__rankedController.getYearAwardsPointsMap()[boxType] items.append(self.__packTitleBlock(boxType)) items.append(self.__packPointsBlock()) bonuses = self.__rankedController.getYearRewards(self.__points) listData = getRankedAwardsFormatter().getFormattedBonuses(bonuses, compareMethod=rankedYearAwardsSortFunction) if listData: items.append(self.__packAwardBlock(listData)) expectedSeasons = self.__rankedController.getExpectedSeasons() items.append(self.__packDescriptionBlock(expectedSeasons)) items.append(self.__packStatusBlock(status)) return items
def __getLeaguesData(self): leaguesRewardsData = self.__rankedController.getLeagueRewards( 'customizations') result = [] formatter = getRankedAwardsFormatter() for data in leaguesRewardsData: leagueID = data['league'] styleBonus = first(formatter.getPreformattedBonuses( data['awards'])) if leagueID and styleBonus: isCurrent = self.__rankedController.getWebSeasonProvider( ).seasonInfo.league == leagueID styleCD = styleBonus.specialArgs[0] self.__styleDescriptions[styleCD] = backport.text( R.strings.ranked_battles.rewardsView.tabs.leagues. description.dyn('league%s' % leagueID)()) result.append( rewards_vos.getLeagueRewardVO(leagueID, styleBonus, isCurrent)) return result
def _packBlocks(self, boxType, status, *args, **kwargs): items = super(RankedYearReward, self)._packBlocks() self.__points, _ = self.__rankedController.getYearAwardsPointsMap( )[boxType] items.append(self.__packTitleBlock(boxType)) items.append(self.__packPointsBlock()) bonuses = self.__rankedController.getYearRewards(self.__points) listData = getRankedAwardsFormatter().getFormattedBonuses( bonuses, size=AWARDS_SIZES.BIG, compareMethod=rankedYearAwardsSortFunction) if listData: items.append(self.__packAwardBlock(listData)) selectableDevice = findFirst( lambda b: b.getName() == SELECTABLE_BONUS_NAME, bonuses) if selectableDevice is not None: selectableRewardsLeft = int( first(selectableDevice.getTokens()).split(':')[-1]) items.append( self.__packEquipmentChoiceBlock(selectableRewardsLeft)) items.append(self.__packStatusBlock(status)) return items
def _packBlocks(self, boxType, status, *args, **kwargs): items = super(RankedYearReward, self)._packBlocks() self.__points, _ = self.__rankedController.getYearAwardsPointsMap( )[boxType] items.append(self.__packTitleBlock(boxType)) items.append(self.__packPointsBlock()) bonuses = self.__rankedController.getYearRewards(self.__points) listData = getRankedAwardsFormatter().getFormattedBonuses( bonuses, size=AWARDS_SIZES.BIG, compareMethod=rankedYearAwardsSortFunction) if listData: items.append(self.__packAwardBlock(listData)) selectableDevice = findFirst( lambda b: YEAR_AWARD_SELECTABLE_OPT_DEVICE in getattr( b, 'getTokens', lambda: {})(), bonuses) if selectableDevice is not None: items.append( self.__packEquipmentChoiceBlock( selectableDevice.getTokens() [YEAR_AWARD_SELECTABLE_OPT_DEVICE].count)) items.append(self.__packStatusBlock(status)) return items
def __init__(self): super(RankedBattlesRewardsRanksView, self).__init__() self.__selectedDivisionIdx = self.__rankedController.getCurrentDivision( ).getID() self.__bonusFormatter = getRankedAwardsFormatter()