def _generateOptions(self, ctx=None): options = [] vehicle = self.__getVehicle(self.vehCD) self._manageStartOptions(options, vehicle) if vehicle.hasNationGroup: isNew = not AccountSettings.getSettings(NATION_CHANGE_VIEWED) options.append(self._makeItem(VEHICLE.NATION_CHANGE, MENU.CONTEXTMENU_NATIONCHANGE, {'enabled': vehicle.isNationChangeAvailable, 'isNew': isNew})) if vehicle.isPurchased: options.append(self._makeItem(VEHICLE.SELL, MENU.contextmenu(VEHICLE.SELL), {'enabled': vehicle.canSell})) elif self.__isPurchaseEnabled(vehicle): items = self.itemsCache.items if vehicle.isRestoreAvailable(): label = MENU.CONTEXTMENU_RESTORE elif vehicle.canTradeIn: label = MENU.CONTEXTMENU_BUYORTRADEIN else: label = MENU.CONTEXTMENU_BUY if vehicle.isCollectible and not self.__isCollectibleVehicleEnabled(vehicle): btnEnabled = False elif canBuyGoldForVehicleThroughWeb(vehicle): btnEnabled = True else: btnEnabled = vehicle.mayObtainWithMoneyExchange(items.stats.money, items.shop.exchangeRate) options.append(self._makeItem(VEHICLE.BUY, label, {'enabled': btnEnabled})) elif self.__isResearchEnabled(vehicle): isNextToUnlock, isXpEnough = g_techTreeDP.isVehicleAvailableToUnlock(self.vehCD) isAvailableToUnlock = isNextToUnlock and isXpEnough options.append(self._makeItem(VEHICLE.RESEARCH, MENU.contextmenu(VEHICLE.RESEARCH), {'enabled': isAvailableToUnlock})) self._manageEndOptions(options, vehicle) return options
def request4Buy(self, itemCD): itemCD = int(itemCD) vehicle = self._itemsCache.items.getItemByCD(itemCD) if canBuyGoldForVehicleThroughWeb(vehicle): shared_events.showVehicleBuyDialog(vehicle) else: ItemsActionsFactory.doAction(ItemsActionsFactory.BUY_VEHICLE, itemCD)
def request4Buy(self, itemCD): itemCD = int(itemCD) if getTypeOfCompactDescr(itemCD) == GUI_ITEM_TYPE.VEHICLE: vehicle = self._itemsCache.items.getItemByCD(itemCD) if canBuyGoldForVehicleThroughWeb(vehicle): shared_events.showVehicleBuyDialog( vehicle, actionType=VehicleBuyActionTypes.BUY) else: self._doBuyVehicleAction(itemCD) else: self._doBuyAndInstallItemAction(itemCD)
def request4Rent(self, itemCD): itemCD = int(itemCD) vehicle = self._itemsCache.items.getItemByCD(itemCD) if canBuyGoldForVehicleThroughWeb(vehicle): shared_events.showVehicleBuyDialog( vehicle, actionType=VehicleBuyActionTypes.RENT) else: ItemsActionsFactory.doAction(ItemsActionsFactory.BUY_VEHICLE, itemCD, False, VehicleBuyActionTypes.RENT, skipConfirm=self._skipConfirm)
def onBuyOrResearchClick(self): vehicle = g_currentPreviewVehicle.item shopPackage = self.__items is not None and self.__couponInfo is None frontlineCouponPackage = self.__couponInfo is not None and self.__couponInfo.selected if self._marathonEvent: self.__purchaseMarathonPackage() elif shopPackage or frontlineCouponPackage: self.__purchasePackage() elif self.__offers is not None: self.__purchaseOffer() elif canBuyGoldForVehicleThroughWeb(vehicle): self.__purchaseSingleVehicle(vehicle) elif self.__isHeroTank: self.__purchaseHeroTank() else: self.__research() return
def __addBuyOption(self, options, vehicle): if vehicle.isPremiumIGR or vehicle.isPurchased or not ( vehicle.isUnlocked or vehicle.isCollectible): return False label = MENU.CONTEXTMENU_BUY if vehicle.isRestoreAvailable(): label = MENU.CONTEXTMENU_RESTORE elif vehicle.canTradeIn: label = MENU.CONTEXTMENU_BUYORTRADEIN itemsRequester = self.__itemsCache.items btnEnabled = vehicle.mayObtainWithMoneyExchange( itemsRequester.stats.money, itemsRequester.shop.exchangeRate) if vehicle.isCollectible and not self.__isCollectibleVehicleEnabled( vehicle): btnEnabled = False elif canBuyGoldForVehicleThroughWeb(vehicle): btnEnabled = True options.append( self._makeItem(VEHICLE.BUY, label, {'enabled': btnEnabled})) return True
def buyVehicle(self): vehicle = self.itemsCache.items.getItemByCD(self.vehCD) if canBuyGoldForVehicleThroughWeb(vehicle): shared_events.showVehicleBuyDialog(vehicle) else: ItemsActionsFactory.doAction(ItemsActionsFactory.BUY_VEHICLE, self.vehCD)
def buyVehicle(self): vehicle = self.itemsCache.items.getItemByCD(self._vehCD) if canBuyGoldForVehicleThroughWeb(vehicle): shared_events.showVehicleBuyDialog(vehicle) else: super(PostProgressionContextMenuHandler, self).buyVehicle()
def buyVehicle(self): vehicle = self.itemsCache.items.getItemByCD(self._nodeCD) if canBuyGoldForVehicleThroughWeb(vehicle): shared_events.showVehicleBuyDialog(vehicle) else: super(ResearchVehicleContextMenuHandler, self).buyVehicle()