def getStorageVehicleVo(vehicle): name = getVehicleName(vehicle) description = _getVehicleDescription(vehicle) imageSmall = func_utils.makeFlashPath( vehicle.getShopIcon(STORE_CONSTANTS.ICON_SIZE_SMALL)) stateIcon, stateText = _getVehicleInfo(vehicle) if not imageSmall and not stateText: stateText = text_styles.vehicleStatusInfoText( _ms(STORAGE.INHANGAR_NOIMAGE)) vo = createStorageDefVO( vehicle.intCD, name, description, vehicle.inventoryCount, getItemPricesVO(vehicle.getSellPrice())[0], imageSmall, RES_SHOP.getVehicleIcon(STORE_CONSTANTS.ICON_SIZE_SMALL, 'empty_tank'), itemType=vehicle.getHighlightType(), nationFlagIcon=RES_SHOP.getNationFlagIcon( nations.NAMES[vehicle.nationID]), contextMenuId=CONTEXT_MENU_HANDLER_TYPE.STORAGE_VEHICLES_REGULAR_ITEM) vo.update({'infoImgSrc': stateIcon, 'infoText': stateText}) if vehicle.canTradeOff: vo.update( {'tradeOffPrice': { 'price': getMoneyVO(vehicle.tradeOffPrice) }}) return vo
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
def getItemVo(item): def getItemNationID(item): compatibleNations = [] if item.itemTypeName == STORE_CONSTANTS.EQUIPMENT: item.descriptor.compatibleNations() return compatibleNations[0] if len( compatibleNations) == 1 else item.nationID priceVO = getItemPricesVO(item.getSellPrice())[0] itemNationID = getItemNationID(item) nationFlagIcon = RES_SHOP.getNationFlagIcon( nations.NAMES[itemNationID] ) if itemNationID != nations.NONE_INDEX else '' serverSettings = dependency.instance(ILobbyContext).getServerSettings() upgradable = item.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE and item.isUpgradable and serverSettings.isTrophyDevicesEnabled( ) vo = createStorageDefVO( item.intCD, getStorageItemName(item), getStorageItemDescr(item), item.inventoryCount, priceVO, getStorageItemIcon(item, STORE_CONSTANTS.ICON_SIZE_SMALL), 'altimage', itemType=item.getOverlayType(), nationFlagIcon=nationFlagIcon, enabled=item.isForSale, contextMenuId=_getContextMenuHandlerID(item), upgradable=upgradable, upgradeButtonTooltip=makeTooltip(body=backport.text( R.strings.storage.buttonUpgrade.tooltip.body())), extraParams=getItemExtraParams(item), specializations=getCategoriesIcons(item) if item.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE else ()) return vo
def _buildVehicle(self, item): name = _getVehicleName(vehicle=item) description = _getVehicleDescription(vehicle=item) stateIcon, stateText = _getVehicleInfo(vehicle=item) vo = createStorageDefVO( item.intCD, name, description, item.inventoryCount, getItemPricesVO(item.getSellPrice())[0], item.getShopIcon(STORE_CONSTANTS.ICON_SIZE_SMALL), item.getShopIcon(), RES_SHOP.getVehicleIcon(STORE_CONSTANTS.ICON_SIZE_SMALL, 'empty_tank'), itemType=getBoosterType(item), nationFlagIcon=RES_SHOP.getNationFlagIcon( nations.NAMES[item.nationID]), infoImgSrc=stateIcon, infoText=stateText) return vo
def __createVO(self, item): priceVO = getItemPricesVO(item.getSellPrice())[0] nationFlagIcon = RES_SHOP.getNationFlagIcon(nations.NAMES[ item.nationID]) if item.nationID != nations.NONE_INDEX else '' return createStorageDefVO( item.intCD, getStorageItemName(item), getStorageItemDescr(item), item.inventoryCount, priceVO, getStorageItemIcon(item, STORE_CONSTANTS.ICON_SIZE_SMALL), 'altimage', itemType=item.getOverlayType(), nationFlagIcon=nationFlagIcon, contextMenuId=CONTEXT_MENU_HANDLER_TYPE.STORAGE_FOR_SELL_ITEM)
def __createVO(self, item): priceVO = getItemPricesVO(item.getSellPrice())[0] nationFlagIcon = RES_SHOP.getNationFlagIcon(nations.NAMES[ item.nationID]) if item.nationID != nations.NONE_INDEX else '' return createStorageDefVO(item.intCD, getStorageModuleName(item), getStorageItemDescr(item), item.inventoryCount, priceVO, getStorageItemIcon( item, STORE_CONSTANTS.ICON_SIZE_SMALL), getStorageItemIcon(item), 'altimage', itemType=getBoosterType(item), nationFlagIcon=nationFlagIcon)
def _getVO(self, item): priceVO = getItemPricesVO(item.getSellPrice())[0] itemNationID = self._getItemNationID(item) nationFlagIcon = RES_SHOP.getNationFlagIcon( nations.NAMES[itemNationID] ) if itemNationID != nations.NONE_INDEX else '' vo = storage_helpers.createStorageDefVO( item.intCD, storage_helpers.getStorageModuleName(item), storage_helpers.getStorageItemDescr(item), item.inventoryCount, priceVO, storage_helpers.getStorageItemIcon(item, SC.ICON_SIZE_SMALL), storage_helpers.getStorageItemIcon(item), 'altimage', itemType=getBoosterType(item), nationFlagIcon=nationFlagIcon, enabled=item.itemTypeID != GUI_ITEM_TYPE.BATTLE_BOOSTER) return vo
def __showCongratulationsView(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.congratulationAnim.transaction() as vm: vehicleType = '{}_elite'.format( self.__vehicle.type ) if self.__vehicle.isElite else self.__vehicle.type image = func_utils.makeFlashPath( self.__vehicle.getShopIcon( size=STORE_CONSTANTS.ICON_SIZE_LARGE)) defaultImage = RES_SHOP.getVehicleIcon( STORE_CONSTANTS.ICON_SIZE_LARGE, 'empty_tank') settings = self.__congratsViewSettings if settings and 'bgSource' in settings: self.viewModel.setBgSource(settings['bgSource']) if settings and 'backBtnEnabled' in settings: vm.setNeedBackBtn(settings['backBtnEnabled']) if settings and 'backBtnLabel' in settings: vm.setBackBtnLbl(settings['backBtnLabel']) vm.setIsElite(self.__vehicle.isElite) vm.setIsCollectible(self.__vehicle.isCollectible) vm.setVehicleType(vehicleType) vm.setLvl(int2roman(self.__vehicle.level)) vm.setVName(self.__vehicle.userName) vm.setImage(image if image is not None else defaultImage) vm.setImageAlt(defaultImage) vm.setTitle(R.strings.store.congratulationAnim.restoreLabel( ) if self.viewModel.getIsRestore() else R.strings.store. congratulationAnim.buyingLabel()) vm.setBtnLbl( R.strings.store.congratulationAnim.showPreviewBtnLabel()) return
def getOfferNationalFlag(self): return RES_SHOP.getNationFlagIcon(self.displayedItem.nationName)
def _buildVehicle(self, item): bpRequester = self._itemsCache.items.blueprints name = getVehicleName(vehicle=item) intelligenceIcon = RES_ICONS.getBlueprintFragment( 'small', 'intelligence') nationalIcon = RES_ICONS.getBlueprintFragment('small', item.nationName) current, total = bpRequester.getBlueprintCount(item.intCD, item.level) nationalCost, intelligenceCost = bpRequester.getRequiredIntelligenceAndNational( item.level) availableCount = bpRequester.getConvertibleFragmentCount( item.intCD, item.level) if availableCount > 0: description = self.__getConvertAvailableDescription(availableCount) else: existingNational = bpRequester.getNationalFragments(item.intCD) existingIntelligence = bpRequester.getIntelligenceData() intelligenceRequired = max( (0, intelligenceCost - existingIntelligence)) nationalRequired = max((0, nationalCost - existingNational)) description = self.__getConvertRequiredDescription( intelligenceRequired, intelligenceIcon, nationalRequired, nationalIcon) availableToUnlock, _ = g_techTreeDP.isNext2Unlock( item.intCD, unlocked=self._itemsCache.items.stats.unlocks, xps=self._itemsCache.items.stats.vehiclesXPs, freeXP=self._itemsCache.items.stats.actualFreeXP, level=item.level) fragmentsCostText = self.__formatFragmentsCost( intelligenceCost=intelligenceCost, intelligenceIcon=intelligenceIcon, nationalCost=nationalCost, nationalIcon=nationalIcon) discount = bpRequester.getBlueprintDiscount(item.intCD, item.level) fragmentsProgress = self.__formatFragmentProgress( current, total, discount) image = func_utils.makeFlashPath( item.getShopIcon(STORE_CONSTANTS.ICON_SIZE_SMALL)) return { 'id': item.intCD, 'title': name, 'description': description, 'image': image, 'imageAlt': RES_SHOP.getVehicleIcon(STORE_CONSTANTS.ICON_SIZE_SMALL, 'empty_tank'), 'fragmentsCostText': fragmentsCostText, 'fragmentsProgress': fragmentsProgress, 'hasDiscount': discount > 0, 'availableToUnlock': availableToUnlock, 'convertAvailable': availableCount > 0, 'contextMenuId': CONTEXT_MENU_HANDLER_TYPE.STORAGE_BLUEPRINTS_ITEM }
def getShopIcon(self, size=STORE_CONSTANTS.ICON_SIZE_MEDIUM): return RES_SHOP.getModuleIcon(size, self.itemTypeName)
def getShopIcon(self, size=STORE_CONSTANTS.ICON_SIZE_MEDIUM): name = super(Shell, self).getShopIcon(size) return RES_SHOP.getShellIcon(size, name) if RES_SHOP.hasShellIcon( size, name) else None
def getShopIcon(self, size=STORE_CONSTANTS.ICON_SIZE_MEDIUM): return RES_SHOP.getArtefactIcon( size, super(OptionalDevice, self).getShopIcon(size))
def getShopIcon(self, size=STORE_CONSTANTS.ICON_SIZE_MEDIUM): return RES_SHOP.getArtefactIcon( size, super(Equipment, self).getShopIcon(size))
def imageAlt(self): return RES_SHOP.getVehicleIcon(STORE_CONSTANTS.ICON_SIZE_LARGE, 'empty_tank')
def _buildVehicle(self, item): bpRequester = self._itemsCache.items.blueprints name = getVehicleName(vehicle=item) intelligenceIcon = RES_ICONS.getBlueprintFragment( 'special', 'intelligence') current, total = bpRequester.getBlueprintCount(item.intCD, item.level) _, intelligenceCost = bpRequester.getRequiredIntelligenceAndNational( item.level) nationalsCost = bpRequester.getNationalRequiredOptions( item.intCD, item.level) availableCount = bpRequester.getConvertibleFragmentCount( item.intCD, item.level) if availableCount > 0: description = makeString( STORAGE.BLUEPRINTS_CARD_CONVERTAVAILABLE, count=text_styles.stats( backport.getIntegralFormat(availableCount))) else: description = text_styles.error( STORAGE.BLUEPRINTS_CARD_CONVERTREQUIRED) availableToUnlock, _ = g_techTreeDP.isNext2Unlock( item.intCD, unlocked=self._itemsCache.items.stats.unlocks, xps=self._itemsCache.items.stats.vehiclesXPs, freeXP=self._itemsCache.items.stats.actualFreeXP, level=item.level) intelligenceCostText, fragmentsCost = self.__formatFragmentsCost( intelligenceCost=intelligenceCost, intelligenceIcon=intelligenceIcon, nationalsCost=nationalsCost) discount = bpRequester.getBlueprintDiscount(item.intCD, item.level) fragmentsProgress = self.__formatFragmentProgress( current, total, discount) image = func_utils.makeFlashPath( item.getShopIcon(STORE_CONSTANTS.ICON_SIZE_SMALL)) return { 'id': item.intCD, 'title': name, 'description': description, 'image': image, 'imageAlt': RES_SHOP.getVehicleIcon(STORE_CONSTANTS.ICON_SIZE_SMALL, 'empty_tank'), 'fragmentsCost': fragmentsCost, 'intelligenceCostText': intelligenceCostText, 'fragmentsProgress': fragmentsProgress, 'hasDiscount': discount > 0, 'availableToUnlock': availableToUnlock, 'convertAvailable': availableCount > 0, 'contextMenuId': CONTEXT_MENU_HANDLER_TYPE.STORAGE_BLUEPRINTS_ITEM }
def _getRootData(self): root = self.vehicle rootNode = self._data.getRootNode() nodeState = rootNode.getState() bpfProps = rootNode.getBpfProps() isNext2Unlock = NODE_STATE.isNext2Unlock(nodeState) isPremium = NODE_STATE.isCollectibleActionVehicle( nodeState) or NODE_STATE.isPremium(nodeState) comparisonState, comparisonTooltip = resolveStateTooltip( self._cmpBasket, root, enabledTooltip='', fullTooltip=TOOLTIPS.RESEARCHPAGE_VEHICLE_BUTTON_COMPARE_DISABLED) tankTier = int2roman(root.level) tankHasNationGroup = (root.isInInventory or root.isRented) and root.hasNationGroup isNationChangeAvailable = root.isNationChangeAvailable isShownNationChangeTooltip = tankHasNationGroup and not isNationChangeAvailable result = { 'vehicleTitle': { 'intCD': self._data.getRootCD(), 'tankTierStr': text_styles.grandTitle(tankTier), 'tankNameStr': text_styles.grandTitle(root.userName), 'tankTierStrSmall': text_styles.promoTitle(tankTier), 'tankNameStrSmall': text_styles.promoTitle(root.userName), 'typeIconPath': getTypeBigIconPath(root.type, root.isElite), 'isElite': root.isElite, 'statusStr': self.__getRootStatusStr(root), 'roleText': getRoleTextWithIcon(root.role, root.roleLabel) }, 'vehicleButton': { 'shopIconPath': RES_SHOP.getVehicleIcon(STORE_CONSTANTS.ICON_SIZE_MEDIUM, root.name.split(':')[1]), 'compareBtnVisible': not self.__bootcamp.isInBootcamp(), 'compareBtnEnabled': comparisonState, 'compareBtnLabel': backport.text( R.strings.menu.research.labels.button.addToCompare()), 'compareBtnTooltip': comparisonTooltip, 'previewBtnEnabled': root.isPreviewAllowed(), 'previewBtnLabel': backport.text( R.strings.menu.research.labels.button.vehiclePreview()), 'isPremium': isPremium, 'vehicleId': self._data.getRootCD(), 'vehicleState': nodeState, 'isInInventory': NODE_STATE.inInventory(nodeState), 'previewAlias': VIEW_ALIAS.LOBBY_RESEARCH, 'cmHandlerType': CONTEXT_MENU_HANDLER_TYPE.RESEARCH_VEHICLE }, 'isInteractive': self.__getIsInteractive(root, rootNode), 'buttonLabel': self.__getMainButtonLabel(root, rootNode), 'blueprintLabel': self.__getResearchPageBlueprintLabel(rootNode), 'blueprintProgress': rootNode.getBlueprintProgress(), 'blueprintCanConvert': bpfProps.canConvert if bpfProps is not None else False, 'bpbGlowEnabled': isNext2Unlock, 'itemPrices': rootNode.getItemPrices(), 'discountStr': self.__getDiscountBannerStr(root, rootNode), 'rentBtnLabel': self.__getRentButtonLabel(rootNode), 'changeNationBtnVisibility': tankHasNationGroup, 'isTankNationChangeAvailable': isNationChangeAvailable, 'nationChangeIsNew': not AccountSettings.getSettings(NATION_CHANGE_VIEWED), 'nationChangeTooltip': self.__getNationChangeTooltip(root) if isShownNationChangeTooltip else '' } return result
def getShopIcon(self, size=STORE_CONSTANTS.ICON_SIZE_MEDIUM): return RES_SHOP.getBoosterIcon(size, self.boosterGuiType)
def image(self): size = STORE_CONSTANTS.ICON_SIZE_LARGE return RES_SHOP.getStyleIcon( size, self._item.id) if RES_SHOP.hasStyleIcon( size, self._item.id) else self._item.icon
def getOfferNationalFlag(self): nation = self.displayedItem.getNation() return RES_SHOP.getNationFlagIcon( self.displayedItem.getNation()) if nation is not None else None