def __getReady2BuyItems(self, pureCreditsReceived): ready2BuyModules = [] ready2BuyVehicles = [] creditsValue = self.itemsCache.items.stats.credits unlockedVehicleItems = g_techTreeDP.getUnlockedVehicleItems( self.__vehicle, self.__unlocks) getter = self.itemsCache.items.getItemByCD for itemTypeCD, unlockProps in unlockedVehicleItems.iteritems(): item = getter(itemTypeCD) price = item.getBuyPrice(preferred=False).price if price.isCurrencyDefined( Currency.CREDITS) and not item.isInInventory: priceCredits = price.credits if creditsValue - priceCredits <= pureCreditsReceived and creditsValue > priceCredits: if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE: ready2BuyVehicles.append( self.__makeVehiclePurchaseVO( item, unlockProps, price.credits)) elif not item.isInstalled(self.__vehicle): items = getVehicleComponentsByType( self.__vehicle, item.itemTypeID).values() if items: installedModule = max( items, key=operator.itemgetter('level')) if item.level > installedModule.level: ready2BuyModules.append( self.__makeModulePurchaseVO( item, unlockProps, price.credits)) return (ready2BuyVehicles, ready2BuyModules)
def __getReady2BuyItems(self, pureCreditsReceived): ready2BuyModules = [] ready2BuyVehicles = [] creditsValue = self._stats.credits unlockedVehicleItems = g_techTreeDP.getUnlockedVehicleItems( self.__vehicle, self._unlocks) getter = self._items.getItemByCD for itemTypeCD, unlockProps in unlockedVehicleItems.iteritems(): item = getter(itemTypeCD) price = item.altPrice or item.buyPrice if price is not None and not item.isInInventory and creditsValue - price.credits <= pureCreditsReceived and creditsValue > price.credits: if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE: ready2BuyVehicles.append( self.__makeVehiclePurchaseVO(item, unlockProps, price.credits)) elif not item.isInstalled(self.__vehicle): items = getVehicleComponentsByType( self.__vehicle, item.itemTypeID).values() if len(items) > 0: installedModule = max(items, key=attrgetter('level')) if item.level > installedModule.level: ready2BuyModules.append( self.__makeModulePurchaseVO( item, unlockProps, price.credits)) return (ready2BuyVehicles, ready2BuyModules)
def checkCondition(self, nationData): vehicleAlias = self._conditionDict['vehicle'] vehicleCD = nationData[vehicleAlias] itemsCache = dependency.instance(IItemsCache) vehicle = itemsCache.items.getItemByCD(vehicleCD) vehInvID = vehicle.invID if vehInvID == -1: return False state = self._conditionDict['state'] if state == 'unlock': vehicle = itemsCache.items.getVehicle(vehInvID) unlocks = itemsCache.items.stats.unlocks unlockedItemsGetter = g_techTreeDP.getUnlockedVehicleItems( vehicle, unlocks) if nationData['module'] in unlockedItemsGetter: return True else: return False elif state == 'inventory': vehicle = itemsCache.items.getVehicle(vehInvID) item = itemsCache.items.getItemByCD(nationData['module']) if item.isInstalled(vehicle): return True else: return False else: return False
def __getReady2BuyItems(self, pureCreditsReceived): ready2BuyModules = [] ready2BuyVehicles = [] creditsValue = self._stats.credits unlockedVehicleItems = g_techTreeDP.getUnlockedVehicleItems(self.__vehicle, self._unlocks) getter = self._items.getItemByCD for itemTypeCD, unlockProps in unlockedVehicleItems.iteritems(): item = getter(itemTypeCD) price = item.altPrice or item.buyPrice if price and not item.isInInventory and creditsValue - price[0] <= pureCreditsReceived and creditsValue > price[0]: if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE: ready2BuyVehicles.append(self.__makeVehiclePurchaseVO(item, unlockProps, price[0])) elif not item.isInstalled(self.__vehicle): ready2BuyModules.append(self.__makeModulePurchaseVO(item, unlockProps, price[0])) return (ready2BuyVehicles, ready2BuyModules)
def __getReady2BuyItems(self, pureCreditsReceived): ready2BuyModules = [] ready2BuyVehicles = [] creditsValue = self._stats.credits unlockedVehicleItems = g_techTreeDP.getUnlockedVehicleItems(self.__vehicle, self._unlocks) getter = self._items.getItemByCD for itemTypeCD, unlockProps in unlockedVehicleItems.iteritems(): item = getter(itemTypeCD) price = item.altPrice or item.buyPrice if price is not None and not item.isInInventory and creditsValue - price.credits <= pureCreditsReceived and creditsValue > price.credits: if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE: ready2BuyVehicles.append(self.__makeVehiclePurchaseVO(item, unlockProps, price.credits)) elif not item.isInstalled(self.__vehicle): items = getVehicleComponentsByType(self.__vehicle, item.itemTypeID).values() if len(items) > 0: installedModule = max(items, key=attrgetter('level')) if item.level > installedModule.level: ready2BuyModules.append(self.__makeModulePurchaseVO(item, unlockProps, price.credits)) return (ready2BuyVehicles, ready2BuyModules)
def _getNextToBuyItemCD(intCD): vehicle = getVehicleByIntCD(intCD) if vehicle is None: return False stats = g_itemsCache.items.stats items = g_techTreeDP.getUnlockedVehicleItems(vehicle, stats.unlocks) getter = g_itemsCache.items.getItemByCD result = [] for itemTypeCD, unlockProps in items.iteritems(): item = getter(itemTypeCD) if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE: continue if item.isInInventory or item.isInstalled(vehicle): continue result.append(item) if result: result = sorted(result, cmp=_researchItemComparator) intCD = result[0].intCD else: intCD = None return intCD