Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
 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)
Exemple #6
0
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
Exemple #7
0
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