コード例 #1
0
ファイル: __init__.py プロジェクト: webiumsk/WOT-0.9.12
 def __init__(self, intCompactDescr, proxy = None, isBoughtForCredits = False):
     GUIItem.__init__(self, proxy)
     HasIntCD.__init__(self, intCompactDescr)
     self.defaultPrice = (0, 0)
     self._buyPrice = (0, 0)
     self.sellPrice = (0, 0)
     self.defaultSellPrice = (0, 0)
     self.altPrice = None
     self.defaultAltPrice = None
     self.sellActionPrc = 0
     self.isHidden = False
     self.inventoryCount = 0
     self.sellForGold = False
     self.isUnlocked = False
     self.isBoughtForCredits = isBoughtForCredits
     self.rentInfo = RentalInfoProvider()
     if proxy is not None and proxy.isSynced():
         self.defaultPrice = proxy.shop.defaults.getItemPrice(self.intCompactDescr)
         if self.defaultPrice is None:
             self.defaultPrice = (0, 0)
         self._buyPrice, self.isHidden, self.sellForGold = proxy.shop.getItem(self.intCompactDescr)
         if self._buyPrice is None:
             self._buyPrice = (0, 0)
         self.defaultSellPrice = BigWorld.player().shop.getSellPrice(self.defaultPrice, proxy.shop.defaults.sellPriceModifiers(intCompactDescr), self.itemTypeID)
         self.sellPrice = BigWorld.player().shop.getSellPrice(self.buyPrice, proxy.shop.sellPriceModifiers(intCompactDescr), self.itemTypeID)
         self.inventoryCount = proxy.inventory.getItems(self.itemTypeID, self.intCompactDescr)
         if self.inventoryCount is None:
             self.inventoryCount = 0
         self.isUnlocked = self.intCD in proxy.stats.unlocks
         self.altPrice = self._getAltPrice(self.buyPrice, proxy.shop)
         self.defaultAltPrice = self._getAltPrice(self.defaultPrice, proxy.shop.defaults)
         self.sellActionPrc = -1 * getActionPrc(self.sellPrice, self.defaultSellPrice)
     return
コード例 #2
0
 def __getEffectValue(self, vehicle):
     resoruce = self._goodieDescription.resource
     if resoruce.isPercentage:
         return resoruce.value
     defaultCreditPrice = vehicle.buyPrices.itemPrice.defPrice.getSignValue(Currency.CREDITS)
     discountCreditPrice = defaultCreditPrice - resoruce.value
     return getActionPrc(discountCreditPrice, defaultCreditPrice)
コード例 #3
0
 def getActionPrc(self):
     """
     Returns discount/penalty percent as int. 0 - if no action.
     :return: int
     """
     if self.isActionPrice():
         return getActionPrc(self.__price, self.__defPrice)
     return 0
コード例 #4
0
    def getActionPrcAsMoney(self):
        actionPrc = MONEY_UNDEFINED
        if self.isActionPrice():
            for currency in Currency.ALL:
                prc = getActionPrc(self.__price.get(currency),
                                   self.__defPrice.get(currency))
                actionPrc += Money.makeFrom(currency, prc if prc else None)

        return actionPrc
コード例 #5
0
ファイル: boosters.py プロジェクト: webiumsk/WOT-0.9.15.1
 def __getBoosterPrice(self, booster):
     block = []
     money = g_itemsCache.items.stats.money
     if booster.buyPrice:
         price = booster.buyPrice
         defPrice = booster.defaultPrice
         need = price - money
         need = need.toNonNegative()
         leftPadding = 92
         if price.credits > 0:
             creditsActionPercent = getActionPrc(price.credits, defPrice.credits)
             block.append(makePriceBlock(price.credits, CURRENCY_SETTINGS.BUY_CREDITS_PRICE, need.credits if need.credits > 0 else None, defPrice.credits if defPrice.credits > 0 else None, creditsActionPercent, leftPadding=leftPadding))
         if price.gold > 0:
             goldActionPercent = getActionPrc(price.gold, defPrice.gold)
             if price.credits > 0:
                 block.append(formatters.packTextBlockData(text=text_styles.standard(TOOLTIPS.VEHICLE_TEXTDELIMITER_OR), padding=formatters.packPadding(left=(101 if goldActionPercent > 0 else 81) + self.leftPadding)))
             block.append(makePriceBlock(price.gold, CURRENCY_SETTINGS.BUY_GOLD_PRICE, need.gold if need.gold > 0 else None, defPrice.gold if defPrice.gold > 0 else None, goldActionPercent, leftPadding=leftPadding))
     return block
コード例 #6
0
 def _setItemPrice(self, model):
     if not self._price:
         return
     model.setCurrencyType(self._currency)
     model.setItemPrice(self._price.price.get(self._currency))
     discount = getActionPrc(self._price.price, self._price.defPrice)
     model.setDiscount(discount)
     model.setIsAcceptDisabled(not self.isPriceInGold()
                               and bool(self._shortage))
コード例 #7
0
 def __getEffectValue(self, vehicle):
     """
     Calculates percent discount value for targeted vehicle
     """
     resoruce = self._goodieDescription.resource
     if resoruce.isPercentage:
         return resoruce.value
     else:
         defaultCreditPrice = vehicle.defaultPrice.credits
         discountCreditPrice = defaultCreditPrice - resoruce.value
         return getActionPrc(discountCreditPrice, defaultCreditPrice)
コード例 #8
0
    def getActionPrcAsMoney(self):
        """
        Returns discount/penalty percent as Money. MONEY_UNDEFINED - if no action.
        :return: Money, where each element - percent value for a currency.
        """
        actionPrc = MONEY_UNDEFINED
        if self.isActionPrice():
            for currency in Currency.ALL:
                prc = getActionPrc(self.__price.get(currency),
                                   self.__defPrice.get(currency))
                actionPrc += Money.makeFrom(currency, prc if prc else None)

        return actionPrc
コード例 #9
0
ファイル: boosters.py プロジェクト: webiumsk/WOT-0.9.17-CT
 def __getBoosterPrice(self, booster):
     block = []
     money = g_itemsCache.items.stats.money
     if booster.buyPrice:
         price = booster.buyPrice
         defPrice = booster.defaultPrice
         need = price - money
         need = need.toNonNegative()
         leftPadding = 92
         if price.credits > 0:
             creditsActionPercent = getActionPrc(price.credits,
                                                 defPrice.credits)
             block.append(
                 makePriceBlock(
                     price.credits,
                     CURRENCY_SETTINGS.BUY_CREDITS_PRICE,
                     need.credits if need.credits > 0 else None,
                     defPrice.credits if defPrice.credits > 0 else None,
                     creditsActionPercent,
                     leftPadding=leftPadding))
         if price.gold > 0:
             goldActionPercent = getActionPrc(price.gold, defPrice.gold)
             if price.credits > 0:
                 block.append(
                     formatters.packTextBlockData(
                         text=text_styles.standard(
                             TOOLTIPS.VEHICLE_TEXTDELIMITER_OR),
                         padding=formatters.packPadding(
                             left=(101 if goldActionPercent > 0 else 81) +
                             self.leftPadding)))
             block.append(
                 makePriceBlock(
                     price.gold,
                     CURRENCY_SETTINGS.BUY_GOLD_PRICE,
                     need.gold if need.gold > 0 else None,
                     defPrice.gold if defPrice.gold > 0 else None,
                     goldActionPercent,
                     leftPadding=leftPadding))
     return block
コード例 #10
0
 def __init__(self, intCompactDescr, proxy=None, isBoughtForCredits=False):
     GUIItem.__init__(self, proxy)
     HasIntCD.__init__(self, intCompactDescr)
     self.defaultPrice = ZERO_MONEY
     self._buyPrice = ZERO_MONEY
     self.sellPrice = ZERO_MONEY
     self.defaultSellPrice = ZERO_MONEY
     self.altPrice = None
     self.defaultAltPrice = None
     self.sellActionPrc = 0
     self.isHidden = False
     self.inventoryCount = 0
     self.sellForGold = False
     self.isUnlocked = False
     self.isBoughtForCredits = isBoughtForCredits
     self.rentInfo = RentalInfoProvider()
     self.restoreInfo = None
     if proxy is not None and proxy.isSynced():
         self.defaultPrice = proxy.shop.defaults.getItemPrice(
             self.intCompactDescr)
         if self.defaultPrice is None:
             self.defaultPrice = ZERO_MONEY
         self._buyPrice, self.isHidden, self.sellForGold = proxy.shop.getItem(
             self.intCompactDescr)
         if self._buyPrice is None:
             self._buyPrice = ZERO_MONEY
         self.defaultSellPrice = Money(*BigWorld.player().shop.getSellPrice(
             self.defaultPrice,
             proxy.shop.defaults.sellPriceModifiers(intCompactDescr),
             self.itemTypeID))
         self.sellPrice = Money(*BigWorld.player().shop.getSellPrice(
             self._buyPrice, proxy.shop.sellPriceModifiers(intCompactDescr),
             self.itemTypeID))
         self.inventoryCount = proxy.inventory.getItems(
             self.itemTypeID, self.intCompactDescr)
         if self.inventoryCount is None:
             self.inventoryCount = 0
         self.isUnlocked = self.intCD in proxy.stats.unlocks
         self.isInitiallyUnlocked = self.intCD in proxy.stats.initialUnlocks
         self.altPrice = self._getAltPrice(self._buyPrice, proxy.shop)
         self.defaultAltPrice = self._getAltPrice(self.defaultPrice,
                                                  proxy.shop.defaults)
         self.sellActionPrc = -1 * getActionPrc(self.sellPrice,
                                                self.defaultSellPrice)
     return
コード例 #11
0
ファイル: modifiers.py プロジェクト: webiumsk/WOT-0.9.14-CT
def _getPercentDiscountByMultiplier(mult, default):
    price = int(round(float(mult) * default))
    return getActionPrc(price, default)
コード例 #12
0
ファイル: modifiers.py プロジェクト: webiumsk/WOT-0.9.14-CT
def _getPercentDiscountByValue(value, default):
    return getActionPrc(value, default)
コード例 #13
0
 def getRentPackageActionPrc(self, days=None):
     package = self.getRentPackage(days)
     if package:
         return getActionPrc(package['rentPrice'],
                             package['defaultRentPrice'])
     return 0
コード例 #14
0
def _getPercentDiscountByMultiplier(mult, default):
    price = int(round(float(mult) * default))
    return getActionPrc(price, default)
コード例 #15
0
def _getPercentDiscountByValue(value, default):
    return getActionPrc(value, default)
コード例 #16
0
ファイル: __init__.py プロジェクト: webiumsk/WOT-0.9.12
 def actionPrc(self):
     return getActionPrc(self.altPrice or self.buyPrice, self.defaultAltPrice or self.defaultPrice)
コード例 #17
0
ファイル: module.py プロジェクト: webiumsk/WOT-0.9.15-CT
    def construct(self):
        block = []
        module = self.module
        slotIdx = self.configuration.slotIdx
        vehicle = self.configuration.vehicle
        sellPrice = self.configuration.sellPrice
        buyPrice = self.configuration.buyPrice
        unlockPrice = self.configuration.unlockPrice
        inventoryCount = self.configuration.inventoryCount
        vehiclesCount = self.configuration.vehiclesCount
        researchNode = self.configuration.node
        if buyPrice and sellPrice:
            LOG_ERROR('You are not allowed to use buyPrice and sellPrice at the same time')
            return
        else:

            def checkState(state):
                if researchNode is not None:
                    return bool(int(researchNode.state) & state)
                else:
                    return False

            isEqOrDev = module.itemTypeID in GUI_ITEM_TYPE.ARTEFACTS
            isNextToUnlock = checkState(NODE_STATE.NEXT_2_UNLOCK)
            isInstalled = checkState(NODE_STATE.INSTALLED)
            isInInventory = checkState(NODE_STATE.IN_INVENTORY)
            isUnlocked = checkState(NODE_STATE.UNLOCKED)
            isAutoUnlock = checkState(NODE_STATE.AUTO_UNLOCKED)
            items = g_itemsCache.items
            credits, gold = items.stats.money
            itemPrice = (0, 0)
            if module is not None:
                itemPrice = module.buyPrice
            isMoneyEnough = credits >= itemPrice[0] and gold >= itemPrice[1]
            if unlockPrice and not isEqOrDev:
                parentCD = vehicle.intCD if vehicle is not None else None
                isAvailable, cost, need = getUnlockPrice(module.intCD, parentCD)
                neededValue = None
                if not isUnlocked and isNextToUnlock and need > 0:
                    neededValue = need
                if cost > 0:
                    block.append(self._makePriceBlock(cost, 'unlockPrice', neededValue))
            creditsActionPercent, goldActionPercent = (0, 0)
            needCredits, needGold = (0, 0)
            if buyPrice and not isAutoUnlock:
                creditsPrice, goldPrice = module.altPrice or module.buyPrice
                defCreditsPrice, defGoldPrice = module.defaultAltPrice or module.defaultPrice
                rootInInv = vehicle is not None and vehicle.isInInventory
                if researchNode:
                    showNeeded = rootInInv and not isMoneyEnough and (isNextToUnlock or isUnlocked) and not (isInstalled or isInInventory)
                else:
                    isModuleUnlocked = module.isUnlocked
                    isModuleInInventory = module.isInInventory
                    showNeeded = not isModuleInInventory and isModuleUnlocked
                if isEqOrDev or showNeeded:
                    creditsNeeded = creditsPrice - credits if creditsPrice else 0
                    goldNeeded = goldPrice - gold if goldPrice else 0
                    needCredits, needGold = max(0, creditsNeeded), max(0, goldNeeded)
                if creditsPrice > 0:
                    creditsActionPercent = getActionPrc(creditsPrice, defCreditsPrice)
                    block.append(self._makePriceBlock(creditsPrice, 'buyCreditsPrice', needCredits if needCredits > 0 else None, defCreditsPrice if defCreditsPrice > 0 else None, creditsActionPercent))
                if goldPrice > 0:
                    goldActionPercent = getActionPrc(goldPrice, defGoldPrice)
                    block.append(formatters.packTextBlockData(text=text_styles.standard(TOOLTIPS.VEHICLE_TEXTDELIMITER_OR), padding=formatters.packPadding(left=(101 if goldActionPercent > 0 else 81) + self.leftPadding)))
                    block.append(self._makePriceBlock(goldPrice, 'buyGoldPrice', needGold if needGold > 0 else None, defGoldPrice if defGoldPrice > 0 else None, goldActionPercent))
            if sellPrice:
                block.append(self._makePriceBlock(module.sellPrice[0], 'sellPrice', oldPrice=module.defaultSellPrice[0], percent=module.sellActionPrc))
            if inventoryCount:
                count = module.inventoryCount
                if count > 0:
                    block.append(formatters.packTextParameterBlockData(name=text_styles.main(TOOLTIPS.VEHICLE_INVENTORYCOUNT), value=text_styles.stats(count), valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5)))
            if vehiclesCount:
                inventoryVehicles = items.getVehicles(REQ_CRITERIA.INVENTORY)
                count = len(module.getInstalledVehicles(inventoryVehicles.itervalues()))
                if count > 0:
                    block.append(formatters.packTextParameterBlockData(name=text_styles.main(TOOLTIPS.VEHICLE_VEHICLECOUNT), value=text_styles.stats(count), valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5)))
                    isInstalled = False
                    if vehicle is not None:
                        isFit, reason = module.mayInstall(vehicle, slotIdx)
                        if not isFit:
                            reason = reason.replace(' ', '_')
                        isInstalled = reason == 'already_installed'
                    if count > self.MAX_INSTALLED_LIST_LEN and (isInstalled or isMoneyEnough):
                        hiddenVehicleCount = count - self.MAX_INSTALLED_LIST_LEN
                        block.append(formatters.packTextParameterBlockData(name=text_styles.main(TOOLTIPS.SUITABLEVEHICLE_HIDDENVEHICLECOUNT), value=text_styles.stats(hiddenVehicleCount), valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5)))
            notEnoughMoney = needCredits > 0 or needGold > 0
            hasAction = creditsActionPercent > 0 or goldActionPercent > 0 or module.sellActionPrc > 0
            return (block, notEnoughMoney or hasAction)
コード例 #18
0
ファイル: vehicle.py プロジェクト: webiumsk/WOT-0.9.12
 def getRentPackageActionPrc(self, days = None):
     package = self.getRentPackage(days)
     if package:
         return getActionPrc(package['rentPrice'], package['defaultRentPrice'])
     return 0
コード例 #19
0
ファイル: __init__.py プロジェクト: jamesxia4/wot_client
 def actionPrc(self):
     return getActionPrc(self.altPrice or self.buyPrice,
                         self.defaultAltPrice or self.defaultPrice)
コード例 #20
0
ファイル: tooltipsmodule.py プロジェクト: aevitas/wotsdk
    def construct(self):
        block = []
        module = self.module
        slotIdx = self.configuration.slotIdx
        vehicle = self.configuration.vehicle
        sellPrice = self.configuration.sellPrice
        buyPrice = self.configuration.buyPrice
        unlockPrice = self.configuration.unlockPrice
        inventoryCount = self.configuration.inventoryCount
        vehiclesCount = self.configuration.vehiclesCount
        researchNode = self.configuration.node
        if buyPrice and sellPrice:
            LOG_ERROR('You are not allowed to use buyPrice and sellPrice at the same time')
            return
        else:

            def checkState(state):
                if researchNode is not None:
                    return bool(int(researchNode.state) & state)
                else:
                    return False

            isEqOrDev = module.itemTypeID in GUI_ITEM_TYPE.ARTEFACTS
            isNextToUnlock = checkState(NODE_STATE_FLAGS.NEXT_2_UNLOCK)
            isInstalled = checkState(NODE_STATE_FLAGS.INSTALLED)
            isInInventory = checkState(NODE_STATE_FLAGS.IN_INVENTORY)
            isUnlocked = checkState(NODE_STATE_FLAGS.UNLOCKED)
            isAutoUnlock = checkState(NODE_STATE_FLAGS.AUTO_UNLOCKED)
            items = g_itemsCache.items
            money = items.stats.money
            itemPrice = ZERO_MONEY
            if module is not None:
                itemPrice = module.buyPrice
            isMoneyEnough = money >= itemPrice
            leftPadding = 92
            if unlockPrice and not isEqOrDev:
                parentCD = vehicle.intCD if vehicle is not None else None
                isAvailable, cost, need = getUnlockPrice(module.intCD, parentCD)
                neededValue = None
                if not isUnlocked and isNextToUnlock and need > 0:
                    neededValue = need
                if cost > 0:
                    block.append(makePriceBlock(cost, CURRENCY_SETTINGS.UNLOCK_PRICE, neededValue, leftPadding=leftPadding, valueWidth=self._valueWidth))
            creditsActionPercent, goldActionPercent = (0, 0)
            need = ZERO_MONEY
            if buyPrice and not isAutoUnlock:
                price = module.altPrice or module.buyPrice
                defPrice = module.defaultAltPrice or module.defaultPrice
                rootInInv = vehicle is not None and vehicle.isInInventory
                if researchNode:
                    showNeeded = rootInInv and not isMoneyEnough and (isNextToUnlock or isUnlocked) and not (isInstalled or isInInventory)
                else:
                    isModuleUnlocked = module.isUnlocked
                    isModuleInInventory = module.isInInventory
                    showNeeded = not isModuleInInventory and isModuleUnlocked
                if isEqOrDev or showNeeded:
                    need = price - money
                    need = need.toNonNegative()
                if price.credits > 0:
                    creditsActionPercent = getActionPrc(price.credits, defPrice.credits)
                    block.append(makePriceBlock(price.credits, CURRENCY_SETTINGS.BUY_CREDITS_PRICE, need.credits if need.credits > 0 else None, defPrice.credits if defPrice.credits > 0 else None, creditsActionPercent, self._valueWidth, leftPadding))
                if price.gold > 0:
                    goldActionPercent = getActionPrc(price.gold, defPrice.gold)
                    block.append(formatters.packTextBlockData(text=text_styles.standard(TOOLTIPS.VEHICLE_TEXTDELIMITER_OR), padding=formatters.packPadding(left=(101 if goldActionPercent > 0 else 81) + self.leftPadding)))
                    block.append(makePriceBlock(price.gold, CURRENCY_SETTINGS.BUY_GOLD_PRICE, need.gold if need.gold > 0 else None, defPrice.gold if defPrice.gold > 0 else None, goldActionPercent, self._valueWidth, leftPadding))
            if sellPrice:
                block.append(makePriceBlock(module.sellPrice.credits, CURRENCY_SETTINGS.SELL_PRICE, oldPrice=module.defaultSellPrice.credits, percent=module.sellActionPrc, valueWidth=self._valueWidth, leftPadding=leftPadding))
            if inventoryCount:
                count = module.inventoryCount
                if count > 0:
                    block.append(formatters.packTextParameterBlockData(name=text_styles.main(TOOLTIPS.VEHICLE_INVENTORYCOUNT), value=text_styles.stats(count), valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5)))
            if vehiclesCount:
                inventoryVehicles = items.getVehicles(REQ_CRITERIA.INVENTORY)
                count = len(module.getInstalledVehicles(inventoryVehicles.itervalues()))
                if count > 0:
                    block.append(formatters.packTextParameterBlockData(name=text_styles.main(TOOLTIPS.VEHICLE_VEHICLECOUNT), value=text_styles.stats(count), valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5)))
            notEnoughMoney = need > ZERO_MONEY
            hasAction = creditsActionPercent > 0 or goldActionPercent > 0 or module.sellActionPrc > 0
            return (block, notEnoughMoney or hasAction)
コード例 #21
0
 def getActionPrc(self):
     return getActionPrc(self.__price,
                         self.__defPrice) if self.isActionPrice() else 0
コード例 #22
0
ファイル: module.py プロジェクト: webiumsk/WOT-0.9.17-CT
    def construct(self):
        block = []
        module = self.module
        slotIdx = self.configuration.slotIdx
        vehicle = self.configuration.vehicle
        sellPrice = self.configuration.sellPrice
        buyPrice = self.configuration.buyPrice
        unlockPrice = self.configuration.unlockPrice
        inventoryCount = self.configuration.inventoryCount
        vehiclesCount = self.configuration.vehiclesCount
        researchNode = self.configuration.node
        if buyPrice and sellPrice:
            LOG_ERROR(
                'You are not allowed to use buyPrice and sellPrice at the same time'
            )
            return
        else:

            def checkState(state):
                if researchNode is not None:
                    return bool(int(researchNode.state) & state)
                else:
                    return False

            isEqOrDev = module.itemTypeID in GUI_ITEM_TYPE.ARTEFACTS
            isNextToUnlock = checkState(NODE_STATE_FLAGS.NEXT_2_UNLOCK)
            isInstalled = checkState(NODE_STATE_FLAGS.INSTALLED)
            isInInventory = checkState(NODE_STATE_FLAGS.IN_INVENTORY)
            isUnlocked = checkState(NODE_STATE_FLAGS.UNLOCKED)
            isAutoUnlock = checkState(NODE_STATE_FLAGS.AUTO_UNLOCKED)
            items = g_itemsCache.items
            money = items.stats.money
            itemPrice = ZERO_MONEY
            if module is not None:
                itemPrice = module.buyPrice
            isMoneyEnough = money >= itemPrice
            leftPadding = 92
            if unlockPrice and not isEqOrDev:
                parentCD = vehicle.intCD if vehicle is not None else None
                isAvailable, cost, need = getUnlockPrice(
                    module.intCD, parentCD)
                neededValue = None
                if not isUnlocked and isNextToUnlock and need > 0:
                    neededValue = need
                if cost > 0:
                    block.append(
                        makePriceBlock(cost,
                                       CURRENCY_SETTINGS.UNLOCK_PRICE,
                                       neededValue,
                                       leftPadding=leftPadding,
                                       valueWidth=self._valueWidth))
            creditsActionPercent, goldActionPercent = (0, 0)
            need = ZERO_MONEY
            if buyPrice and not isAutoUnlock:
                price = module.altPrice or module.buyPrice
                defPrice = module.defaultAltPrice or module.defaultPrice
                rootInInv = vehicle is not None and vehicle.isInInventory
                if researchNode:
                    showNeeded = rootInInv and not isMoneyEnough and (
                        isNextToUnlock
                        or isUnlocked) and not (isInstalled or isInInventory)
                else:
                    isModuleUnlocked = module.isUnlocked
                    isModuleInInventory = module.isInInventory
                    showNeeded = not isModuleInInventory and isModuleUnlocked
                if isEqOrDev or showNeeded:
                    need = price - money
                    need = need.toNonNegative()
                if price.credits > 0:
                    creditsActionPercent = getActionPrc(
                        price.credits, defPrice.credits)
                    block.append(
                        makePriceBlock(
                            price.credits, CURRENCY_SETTINGS.BUY_CREDITS_PRICE,
                            need.credits if need.credits > 0 else None,
                            defPrice.credits if defPrice.credits > 0 else None,
                            creditsActionPercent, self._valueWidth,
                            leftPadding))
                if price.gold > 0:
                    goldActionPercent = getActionPrc(price.gold, defPrice.gold)
                    block.append(
                        formatters.packTextBlockData(
                            text=text_styles.standard(
                                TOOLTIPS.VEHICLE_TEXTDELIMITER_OR),
                            padding=formatters.packPadding(
                                left=(101 if goldActionPercent > 0 else 81) +
                                self.leftPadding)))
                    block.append(
                        makePriceBlock(
                            price.gold, CURRENCY_SETTINGS.BUY_GOLD_PRICE,
                            need.gold if need.gold > 0 else None,
                            defPrice.gold if defPrice.gold > 0 else None,
                            goldActionPercent, self._valueWidth, leftPadding))
            if sellPrice:
                block.append(
                    makePriceBlock(module.sellPrice.credits,
                                   CURRENCY_SETTINGS.SELL_PRICE,
                                   oldPrice=module.defaultSellPrice.credits,
                                   percent=module.sellActionPrc,
                                   valueWidth=self._valueWidth,
                                   leftPadding=leftPadding))
            if inventoryCount:
                count = module.inventoryCount
                if count > 0:
                    block.append(
                        formatters.packTextParameterBlockData(
                            name=text_styles.main(
                                TOOLTIPS.VEHICLE_INVENTORYCOUNT),
                            value=text_styles.stats(count),
                            valueWidth=self._valueWidth,
                            padding=formatters.packPadding(left=-5)))
            if vehiclesCount:
                inventoryVehicles = items.getVehicles(REQ_CRITERIA.INVENTORY)
                count = len(
                    module.getInstalledVehicles(
                        inventoryVehicles.itervalues()))
                if count > 0:
                    block.append(
                        formatters.packTextParameterBlockData(
                            name=text_styles.main(
                                TOOLTIPS.VEHICLE_VEHICLECOUNT),
                            value=text_styles.stats(count),
                            valueWidth=self._valueWidth,
                            padding=formatters.packPadding(left=-5)))
            notEnoughMoney = need > ZERO_MONEY
            hasAction = creditsActionPercent > 0 or goldActionPercent > 0 or module.sellActionPrc > 0
            return (block, notEnoughMoney or hasAction)