def _getMissionsBlock(cls, operation):
        items = []
        completedQuests = operation.getCompletedQuests()
        completedQuestsIDs = set(completedQuests.keys())
        totalCount = operation.getQuestsCount()
        items.append(
            formatters.packTextBlockData(
                text=text_styles.concatStylesWithSpace(
                    text_styles.middleTitle(
                        TOOLTIPS.PERSONALMISSIONS_OPERATION_MISSIONS_TITLE),
                    _formatCompleteCount(len(completedQuests), totalCount),
                    text_styles.standard('/ %s' % totalCount)),
                padding=formatters.packPadding(top=8, left=17)))
        for vehicleType in VEHICLE_TYPES_ORDER:
            _, quests = operation.getChainByVehicleType(vehicleType)
            completedCount = len(completedQuestsIDs.intersection(
                quests.keys()))
            chainSize = operation.getChainSize()
            items.append(
                formatters.packTitleDescParameterWithIconBlockData(
                    title=text_styles.concatStylesWithSpace(
                        _formatCompleteCount(completedCount, chainSize),
                        text_styles.standard('/ %s' % chainSize)),
                    value=text_styles.main(MENU.classesShort(vehicleType)),
                    icon=getTypeSmallIconPath(vehicleType),
                    iconPadding=formatters.packPadding(top=3, left=10),
                    titlePadding=formatters.packPadding(left=10),
                    padding=formatters.packPadding(left=156, bottom=-9)))

        return formatters.packBuildUpBlockData(blocks=items,
                                               padding=formatters.packPadding(
                                                   top=-14, bottom=30),
                                               gap=10)
Exemple #2
0
 def __packDailyCount(self, dailyCount, income):
     dailyTitle = backport.text(R.strings.tooltips.battleTypes.ranked.bonusBattle.daily.title())
     dailyBody = text_styles.standard(backport.text(R.strings.tooltips.battleTypes.ranked.bonusBattle.daily.bodyOther()))
     if income > 0:
         incomeStr = backport.text(R.strings.tooltips.battleTypes.ranked.bonusBattle.daily.bodyIncome(), income=income)
         dailyBody = text_styles.concatStylesToMultiLine(text_styles.standard(incomeStr), dailyBody)
     return formatters.packBuildUpBlockData([formatters.packTitleDescParameterWithIconBlockData(title=text_styles.concatStylesToMultiLine(text_styles.middleTitle(dailyTitle), dailyBody), value=text_styles.promoSubTitle(dailyCount), padding=formatters.packPadding(top=-11, left=48, bottom=-5), titlePadding=formatters.packPadding(top=9, left=34))], linkage=BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_WHITE_BG_LINKAGE)
Exemple #3
0
    def _getMissionsBlock(cls, operation):
        items = []
        completedQuests = operation.getCompletedQuests()
        completedQuestsIDs = set(completedQuests.keys())
        totalCount = operation.getQuestsCount()
        items.append(
            formatters.packTextBlockData(
                text=text_styles.concatStylesWithSpace(
                    text_styles.middleTitle(
                        TOOLTIPS.PERSONALMISSIONS_OPERATION_MISSIONS_TITLE),
                    _formatCompleteCount(len(completedQuests), totalCount),
                    text_styles.standard('/ %s' % totalCount)),
                padding=formatters.packPadding(top=8, left=17)))
        for classifierAttr in operation.getIterationChain():
            chainID, quests = operation.getChainByClassifierAttr(
                classifierAttr)
            completedCount = len(completedQuestsIDs.intersection(
                quests.keys()))
            chainSize = operation.getChainSize()
            items.append(
                formatters.packTitleDescParameterWithIconBlockData(
                    title=text_styles.concatStylesWithSpace(
                        _formatCompleteCount(completedCount, chainSize),
                        text_styles.standard('/ %s' % chainSize)),
                    value=text_styles.main(operation.getChainName(chainID)),
                    icon=operation.getSmallChainIcon(chainID),
                    iconPadding=formatters.packPadding(top=3, left=10),
                    titlePadding=formatters.packPadding(left=10),
                    padding=formatters.packPadding(left=156, bottom=-9)))

        return formatters.packBuildUpBlockData(blocks=items,
                                               padding=formatters.packPadding(
                                                   top=-14, bottom=30),
                                               gap=10)
Exemple #4
0
 def __makeBonusBlock(self, bonus, icon, desc):
     return formatters.packTitleDescParameterWithIconBlockData(
         title=text_styles.main(desc),
         value=text_styles.stats('+%d%%' %
                                 (bonus * 100) if bonus > 0 else '0%'),
         icon=icon,
         titlePadding=formatters.packPadding(left=3),
         iconPadding=formatters.packPadding(left=17, top=-1),
         padding=formatters.packPadding(left=47))
Exemple #5
0
 def _packBlocks(self, paramName):
     blocks = super(VehicleSimpleParametersTooltipData, self)._packBlocks(paramName)
     title = text_styles.highTitle(MENU.tank_params(paramName))
     value = param_formatter.colorizedFormatParameter(self._extendedData, self.context.formatters)
     desc = text_styles.main(_ms(TOOLTIPS.tank_params_desc(paramName)))
     comparator = self.context.getComparator()
     icon = param_formatter.getGroupPenaltyIcon(comparator.getExtendedData(paramName), comparator)
     valueLeftPadding = -3 if icon else 6
     blocks.append(formatters.packTitleDescParameterWithIconBlockData(title, text_styles.warning(_ms(TOOLTIPS.VEHICLEPARAMS_TITLE_VALUETEMPLATE, value=value)), icon=icon, desc=desc, valueAtRight=True, iconPadding=formatters.packPadding(left=0, top=6), valuePadding=formatters.packPadding(left=valueLeftPadding, top=4)))
     return blocks
Exemple #6
0
    def _getPenalties(self):
        result = []
        penalties = self._extendedData.penalties
        actualPenalties, nullPenaltyTypes = _getNumNotNullPenaltyTankman(penalties)
        penaltiesLen = len(penalties)
        numNotNullPenaltyTankman = len(actualPenalties)
        if penaltiesLen > numNotNullPenaltyTankman:
            result.append(formatters.packTitleDescParameterWithIconBlockData(text_styles.main(_ms(TOOLTIPS.VEHICLEPARAMS_PENALTY_CREWNOTFULL_TEMPLATE)), icon=RES_ICONS.MAPS_ICONS_VEHPARAMS_TOOLTIPS_PENALTIES_ALL, iconPadding=self.__iconPadding, titlePadding=self.__titlePadding, padding=self.__listPadding))
        if numNotNullPenaltyTankman > 0:
            for penalty in penalties:
                valueStr = _formatValueChange(self.__paramName, penalty.value)
                if valueStr:
                    if penalty.vehicleIsNotNative:
                        locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANDIFFERENTVEHICLE_TEMPLATE
                    else:
                        locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANLEVEL_TEMPLATE
                    penaltyStr = text_styles.main(_ms(locKey, tankmanType=_ms(ITEM_TYPES.tankman_roles(penalty.roleName))))
                    result.append(formatters.packTitleDescParameterWithIconBlockData(penaltyStr, text_styles.warning(_ms(TOOLTIPS.VEHICLEPARAMS_TITLE_VALUETEMPLATE, value=valueStr)), icon=param_formatter.getPenaltyIcon(penalty.roleName), iconPadding=self.__iconPadding, titlePadding=self.__titlePadding, padding=self.__listPadding))

        return result
 def __packPersistentCount(self, persistentCount):
     persistenName = backport.text(R.strings.tooltips.battleTypes.ranked.
                                   bonusBattle.persistent.title())
     return formatters.packBuildUpBlockData(
         [
             formatters.packTitleDescParameterWithIconBlockData(
                 title=text_styles.middleTitle(persistenName),
                 value=text_styles.promoSubTitle(persistentCount),
                 padding=formatters.packPadding(top=-8, left=48, bottom=-3),
                 titlePadding=formatters.packPadding(top=9, left=34))
         ],
         linkage=BLOCKS_TOOLTIP_TYPES.TOOLTIP_BUILDUP_BLOCK_WHITE_BG_LINKAGE
     )
 def packHeader(self):
     title = text_styles.middleTitle(
         backport.text(
             R.strings.badge.dyn('badge_{}'.format(self._badgeId))()))
     icon = backport.image(
         R.images.gui.maps.icons.library.badges.c_24x24.dyn(
             'badge_{}'.format(self._badgeId))())
     value = icons.makeImageTag(
         backport.image(
             R.images.gui.maps.icons.library.badges.strips.c_64x24.dyn(
                 'strip_{}'.format(self._badgeId))()), 64, 24)
     return formatters.packTitleDescParameterWithIconBlockData(
         title=title,
         icon=icon,
         value=value,
         iconPadding=formatters.packPadding(left=3),
         valuePadding=formatters.packPadding(left=-80, top=-2),
         valueAtRight=True)
Exemple #9
0
    def _packInventoryBlock(self):
        container = self.app.containerManager.getContainer(ViewTypes.LOBBY_SUB)
        view = container.getView()
        if view.alias == VIEW_ALIAS.LOBBY_CUSTOMIZATION:
            getInventoryCount = view.getItemInventoryCount
        else:
            getInventoryCount = getItemInventoryCount
        subBlocks = [formatters.packTextBlockData(text=text_styles.middleTitle(VEHICLE_CUSTOMIZATION.CUSTOMIZATION_TOOLTIP_INVENTORY_TITLE), padding={'bottom': 4})]
        money = self.itemsCache.items.stats.money
        if not self._item.isHidden:
            for itemPrice in self._item.buyPrices:
                currency = itemPrice.getCurrency()
                value = itemPrice.price.getSignValue(currency)
                defValue = itemPrice.defPrice.getSignValue(currency)
                needValue = value - money.getSignValue(currency)
                actionPercent = itemPrice.getActionPrc()
                if not self._item.isRentable:
                    setting = CURRENCY_SETTINGS.getBuySetting
                    forcedText = ''
                else:
                    setting = CURRENCY_SETTINGS.getRentSetting
                    forcedText = _ms(VEHICLE_CUSTOMIZATION.CUSTOMIZATION_TOOLTIP_INVENTORY_COST_RENT, battlesNum=self._item.rentCount)
                subBlocks.append(makePriceBlock(value, setting(currency), needValue if needValue > 0 else None, defValue if defValue > 0 else None, actionPercent, valueWidth=88, leftPadding=49, forcedText=forcedText))

            if not self._item.isRentable:
                for itemPrice in self._item.sellPrices:
                    currency = itemPrice.getCurrency()
                    value = itemPrice.price.getSignValue(currency)
                    defValue = itemPrice.defPrice.getSignValue(currency)
                    actionPercent = itemPrice.getActionPrc()
                    if actionPercent > 0:
                        subBlocks.append(formatters.packTextParameterWithIconBlockData(name=text_styles.main(TOOLTIPS.ACTIONPRICE_SELL_BODY_SIMPLE), value=text_styles.concatStylesToSingleLine(text_styles.credits(BigWorld.wg_getIntegralFormat(value)), '    ', icons.credits()), icon='alertMedium', valueWidth=88, padding=formatters.packPadding(left=-5)))
                    subBlocks.append(makePriceBlock(value, CURRENCY_SETTINGS.SELL_PRICE, oldPrice=defValue if defValue > 0 else None, percent=actionPercent, valueWidth=88, leftPadding=49))

        inventoryCount = getInventoryCount(self._item)
        info = text_styles.concatStylesWithSpace(text_styles.stats(inventoryCount))
        if self._item.isRentable and inventoryCount > 0 or not self._item.isRentable:
            title = text_styles.main(VEHICLE_CUSTOMIZATION.CUSTOMIZATION_TOOLTIP_INVENTORY_RENT_BATTLESLEFT if self._item.isRentable else VEHICLE_CUSTOMIZATION.CUSTOMIZATION_TOOLTIP_INVENTORY_AVAILABLE)
            icon = RES_ICONS.MAPS_ICONS_LIBRARY_CLOCKICON_1 if self._item.isRentable else RES_ICONS.MAPS_ICONS_CUSTOMIZATION_STORAGE_ICON
            padding = formatters.packPadding(left=83, bottom=-14 if self._item.isRentable else 0)
            titlePadding = formatters.packPadding(left=-8 if self._item.isRentable else -1)
            iconPadding = formatters.packPadding(top=-7 if self._item.isRentable else -2, left=-3 if self._item.isRentable else -2)
            subBlocks.append(formatters.packTitleDescParameterWithIconBlockData(title=title, value=info, icon=icon, padding=padding, titlePadding=titlePadding, iconPadding=iconPadding))
        return formatters.packBuildUpBlockData(blocks=subBlocks, gap=-1)
Exemple #10
0
 def __constructDescr(self, skillLevel):
     block = []
     if skillLevel.longFilterAlert:
         blocks = [
             formatters.packTextBlockData(
                 text_styles.standard(skillLevel.longDescr)),
             formatters.packTextBlockData(
                 text_styles.alert(skillLevel.longFilterAlert))
         ]
         block.append(
             formatters.packBuildUpBlockData(
                 blocks=blocks,
                 layout=BLOCKS_TOOLTIP_TYPES.LAYOUT_VERTICAL))
     else:
         block.append(
             formatters.packTitleDescParameterWithIconBlockData(
                 title=text_styles.middleTitle(
                     backport.text(R.strings.tooltips.equipment.onUse())),
                 desc=text_styles.main(skillLevel.longDescr)))
     return block
    def __getInventoryBlock(self, booster, showPrice, showInventoryCount):
        block = []
        money = self.itemsCache.items.stats.money
        if showPrice:
            showDelimiter = False
            leftPadding = 92
            for itemPrice in booster.buyPrices:
                currency = itemPrice.getCurrency()
                value = itemPrice.price.getSignValue(currency)
                defValue = itemPrice.defPrice.getSignValue(currency)
                needValue = value - money.getSignValue(currency)
                actionPercent = itemPrice.getActionPrc()
                if currency == Currency.GOLD and actionPercent > 0:
                    leftActionPadding = 101 + self.leftPadding
                else:
                    leftActionPadding = 81 + self.leftPadding
                if showDelimiter:
                    block.append(formatters.packTextBlockData(text=_ts.standard(TOOLTIPS.VEHICLE_TEXTDELIMITER_OR), padding=formatters.packPadding(left=leftActionPadding)))
                block.append(makePriceBlock(value, CURRENCY_SETTINGS.getBuySetting(currency), needValue if needValue > 0 else None, defValue if defValue > 0 else None, actionPercent, leftPadding=leftPadding))
                showDelimiter = True

        if showInventoryCount:
            block.append(formatters.packTitleDescParameterWithIconBlockData(title=_ts.main(TOOLTIPS.VEHICLE_INVENTORYCOUNT), value=_ts.stats(booster.count), icon=RES_ICONS.MAPS_ICONS_LIBRARY_STORAGE_ICON, padding=formatters.packPadding(left=104), titlePadding=formatters.packPadding(), iconPadding=formatters.packPadding(top=-2, left=-2)))
        return block
Exemple #12
0
    def _packInventoryBlock(self, showBuyPrice, showSellPrice,
                            showInventoryCount):
        subBlocks = []
        money = self.itemsCache.items.stats.money
        if showBuyPrice and not self._item.isHidden:
            for itemPrice in self._item.buyPrices:
                currency = itemPrice.getCurrency()
                value = itemPrice.price.getSignValue(currency)
                defValue = itemPrice.defPrice.getSignValue(currency)
                needValue = value - money.getSignValue(currency)
                actionPercent = itemPrice.getActionPrc()
                if not self._item.isRentable:
                    setting = CURRENCY_SETTINGS.getBuySetting
                    forcedText = ''
                else:
                    setting = CURRENCY_SETTINGS.getRentSetting
                    forcedText = _ms(VEHICLE_CUSTOMIZATION.
                                     CUSTOMIZATION_TOOLTIP_INVENTORY_COST_RENT,
                                     battlesNum=self._item.rentCount)
                if self._item.buyCount > 0:
                    subBlocks.append(
                        makePriceBlock(value,
                                       setting(currency),
                                       needValue if needValue > 0 else None,
                                       defValue if defValue > 0 else None,
                                       actionPercent,
                                       valueWidth=88,
                                       leftPadding=49,
                                       forcedText=forcedText))

        if showSellPrice and not (self._item.isHidden
                                  or self._item.isRentable):
            for itemPrice in self._item.sellPrices:
                currency = itemPrice.getCurrency()
                value = itemPrice.price.getSignValue(currency)
                defValue = itemPrice.defPrice.getSignValue(currency)
                actionPercent = itemPrice.getActionPrc()
                if actionPercent > 0:
                    subBlocks.append(
                        formatters.packTextParameterWithIconBlockData(
                            name=text_styles.main(
                                TOOLTIPS.ACTIONPRICE_SELL_BODY_SIMPLE),
                            value=text_styles.concatStylesToSingleLine(
                                text_styles.credits(
                                    backport.getIntegralFormat(value)), '    ',
                                icons.credits()),
                            icon='alertMedium',
                            valueWidth=88,
                            padding=formatters.packPadding(left=-5)))
                subBlocks.append(
                    makePriceBlock(value,
                                   CURRENCY_SETTINGS.SELL_PRICE,
                                   oldPrice=defValue if defValue > 0 else None,
                                   percent=actionPercent,
                                   valueWidth=88,
                                   leftPadding=49))

        if self.__ctx is not None:
            inventoryCount = self.__ctx.mode.getItemInventoryCount(self._item)
        else:
            inventoryCount = getItemInventoryCount(self._item)
        info = text_styles.concatStylesWithSpace(
            text_styles.stats(inventoryCount))
        padding = formatters.packPadding(left=83, bottom=0)
        titlePadding = formatters.packPadding(left=-1)
        if showInventoryCount and inventoryCount > 0:
            if self._item.isRentable:
                textKey = VEHICLE_CUSTOMIZATION.CUSTOMIZATION_TOOLTIP_INVENTORY_RENT_BATTLESLEFT
                icon = RES_ICONS.MAPS_ICONS_LIBRARY_CLOCKICON_1
                autoRentEnabled = self.__ctx.mode.isAutoRentEnabled(
                ) if self.__ctx is not None else False
                if self._item.isRented and autoRentEnabled:
                    textKey = VEHICLE_CUSTOMIZATION.CUSTOMIZATION_TOOLTIP_INVENTORY_RENT_BATTLESLEFT_AUTOPROLONGATIONON
                    icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_ICON_RENT
                title = text_styles.main(
                    _ms(textKey, tankname=self.__vehicle.shortUserName))
                padding = formatters.packPadding(left=83, bottom=-14)
                titlePadding = formatters.packPadding(left=-8)
                iconPadding = formatters.packPadding(top=-7, left=-3)
            else:
                title = text_styles.main(
                    VEHICLE_CUSTOMIZATION.
                    CUSTOMIZATION_TOOLTIP_INVENTORY_AVAILABLE)
                icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_STORAGE_ICON
                padding = formatters.packPadding(left=83, bottom=0)
                titlePadding = formatters.packPadding(left=-1)
                iconPadding = formatters.packPadding(top=-2, left=-2)
            subBlocks.append(
                formatters.packTitleDescParameterWithIconBlockData(
                    title=title,
                    value=info,
                    icon=icon,
                    padding=padding,
                    titlePadding=titlePadding,
                    iconPadding=iconPadding))
        boundCount = self._item.boundInventoryCount(self.__vehicle.intCD)
        commonCount = boundCount + self.installedCount
        isVehicleBound = self._item.isVehicleBound and not self._item.isProgressionAutoBound
        if showInventoryCount and commonCount > 0 and isVehicleBound and not self._item.isRentable:
            subBlocks.append(
                formatters.packTitleDescParameterWithIconBlockData(
                    title=text_styles.main(
                        _ms(VEHICLE_CUSTOMIZATION.
                            CUSTOMIZATION_BOUND_ON_VEHICLE,
                            tankname=self.__vehicle.shortUserName)),
                    value=text_styles.concatStylesWithSpace(
                        text_styles.stats(commonCount)),
                    icon=RES_ICONS.MAPS_ICONS_CUSTOMIZATION_TANK,
                    padding=padding,
                    titlePadding=titlePadding,
                    iconPadding=formatters.packPadding(top=2)))
        return formatters.packBuildUpBlockData(blocks=subBlocks, gap=-1)
Exemple #13
0
 def _packInventoryBlock(self):
     count = self._item.inventoryCount
     valueFormatter = text_styles.critical if count == 0 else text_styles.stats
     return formatters.packTitleDescParameterWithIconBlockData(title=text_styles.main(backport.text(R.strings.tooltips.vehicle.inventoryCount())), value=valueFormatter(count), icon=backport.image(R.images.gui.maps.icons.library.storage_icon()), padding=formatters.packPadding(left=105), titlePadding=formatters.packPadding(left=-2), iconPadding=formatters.packPadding(top=-2, left=-2))
    def construct(self):
        block = []
        shell = self.shell
        configuration = self.configuration
        buyPrice = configuration.buyPrice
        sellPrice = configuration.sellPrice
        if buyPrice and sellPrice:
            LOG_ERROR(
                'You are not allowed to use buyPrice and sellPrice at the same time'
            )
            return
        else:
            notEnoughMoney = False
            showDelimiter = False
            shop = self.itemsCache.items.shop
            money = self.itemsCache.items.stats.money
            if buyPrice and shell.buyPrices:
                for itemPrice in shell.buyPrices.iteritems(directOrder=False):
                    if not isItemBuyPriceAvailable(
                            shell, itemPrice, shop) or not itemPrice.price:
                        continue
                    currency = itemPrice.getCurrency()
                    value = itemPrice.price.getSignValue(currency)
                    defValue = itemPrice.defPrice.getSignValue(currency)
                    actionPercent = itemPrice.getActionPrc()
                    needValue = value - money.getSignValue(currency)
                    if needValue > 0:
                        notEnoughMoney = True
                    else:
                        needValue = None
                    if showDelimiter:
                        block.append(
                            formatters.packTextBlockData(
                                text=text_styles.standard(
                                    TOOLTIPS.VEHICLE_TEXTDELIMITER_OR),
                                padding=formatters.packPadding(
                                    left=81 + self.leftPadding)))
                    block.append(
                        makePriceBlock(
                            value,
                            CURRENCY_SETTINGS.getBuySetting(currency),
                            needValue,
                            defValue if defValue > 0 else None,
                            actionPercent,
                            valueWidth=self._valueWidth))
                    showDelimiter = True

            if sellPrice and shell.sellPrices:
                block.append(
                    makePriceBlock(
                        shell.sellPrices.itemPrice.price.credits,
                        CURRENCY_SETTINGS.SELL_PRICE,
                        oldPrice=shell.sellPrices.itemPrice.defPrice.credits,
                        percent=shell.sellPrices.itemPrice.getActionPrc(),
                        valueWidth=self._valueWidth))
            inventoryCount = shell.inventoryCount
            if inventoryCount:
                block.append(
                    formatters.packTitleDescParameterWithIconBlockData(
                        title=text_styles.main(
                            TOOLTIPS.VEHICLE_INVENTORYCOUNT),
                        value=text_styles.stats(inventoryCount),
                        icon=RES_ICONS.MAPS_ICONS_LIBRARY_STORAGE_ICON,
                        padding=formatters.packPadding(left=76),
                        titlePadding=formatters.packPadding(left=-2),
                        iconPadding=formatters.packPadding(top=-2, left=-2)))
            hasAction = shell.buyPrices.itemPrice.isActionPrice(
            ) or shell.sellPrices.itemPrice.isActionPrice()
            return (block, notEnoughMoney or hasAction)
 def __packActiveState(self, time):
     state = _ts.statInfo(TOOLTIPS.BOOSTERSWINDOW_BOOSTER_ACTIVE_TITLE)
     timeLeft = _ts.main(_ms(TOOLTIPS.BOOSTERSWINDOW_BOOSTER_ACTIVE_VALUE, time=_ts.stats(time)))
     return formatters.packBuildUpBlockData([formatters.packTitleDescParameterWithIconBlockData(title=state, icon=RES_ICONS.MAPS_ICONS_TOOLTIP_ACTIVEICON, padding=formatters.packPadding(left=93), titlePadding=formatters.packPadding(), iconPadding=formatters.packPadding(top=2, left=-2)), formatters.packAlignedTextBlockData(text=timeLeft, align=BLOCKS_TOOLTIP_TYPES.ALIGN_CENTER)])
Exemple #16
0
 def __packBonusField(self, bonusID, name, value = '', isDisabled = False, padding = None):
     return formatters.packTitleDescParameterWithIconBlockData(name, value=value, icon=param_formatter.getBonusIcon(bonusID), iconAlpha=self.__iconDisabledAlpha if isDisabled else 1, iconPadding=self.__iconPadding, titlePadding=padding or self.__titlePadding, padding=self.__listPadding)