Example #1
0
    def _getRequestCriteria(self, invVehicles):
        requestCriteria = super(InventoryShellTab,
                                self)._getRequestCriteria(invVehicles)
        requestCriteria |= REQ_CRITERIA.INVENTORY
        requestCriteria |= REQ_CRITERIA.CUSTOM(
            lambda item: item.type in self._filterData['itemTypes'])
        fitsType = self._filterData['fitsType']
        if fitsType == 'myVehicleGun':
            vehicle = self._items.getItemByCD(
                int(self._filterData['vehicleCD']))
            shellsList = [x.intCD for x in vehicle.gun.defaultAmmo]
            requestCriteria |= REQ_CRITERIA.IN_CD_LIST(shellsList)
        elif fitsType == 'myVehiclesInventoryGuns':
            shellsList = set()
            myGuns = self._items.getItems(GUI_ITEM_TYPE.GUN,
                                          REQ_CRITERIA.INVENTORY).values()
            for gun in myGuns:
                shellsList.update((x.intCD for x in gun.defaultAmmo))

            for vehicle in invVehicles:
                shellsList.update((x.intCD for x in vehicle.gun.defaultAmmo))

            requestCriteria |= REQ_CRITERIA.IN_CD_LIST(shellsList)
        else:
            shellsList = set()
            myGuns = self._items.getItems(GUI_ITEM_TYPE.GUN,
                                          REQ_CRITERIA.INVENTORY).values()
            for gun in myGuns:
                shellsList.update((x.intCD for x in gun.defaultAmmo))

            for vehicle in invVehicles:
                shellsList.update((x.intCD for x in vehicle.gun.defaultAmmo))

            requestCriteria |= ~REQ_CRITERIA.IN_CD_LIST(shellsList)
        return requestCriteria
 def submit(self, gold, xpToExchange, callback=None):
     criteria = REQ_CRITERIA.VEHICLE.ELITE | ~REQ_CRITERIA.IN_CD_LIST(
         [self._parentCD])
     eliteVehicles = self._items.getVehicles(criteria).keys()
     result = yield FreeXPExchanger(xpToExchange, eliteVehicles).request()
     if callback is not None:
         callback(result)
 def submit(self, gold, xpToExchange, callback=None):
     vehiclesCriteria = REQ_CRITERIA.VEHICLE.FULLY_ELITE | REQ_CRITERIA.VEHICLE.ACTIVE_IN_NATION_GROUP
     criteria = vehiclesCriteria | ~REQ_CRITERIA.IN_CD_LIST([self._parentCD])
     eliteVehicles = self.itemsCache.items.getVehicles(criteria).keys()
     result = yield FreeXPExchanger(xpToExchange, eliteVehicles).request()
     if callback is not None:
         callback(result)
     return
 def getAllVehiclePossibleXP(self, nodeCD, unlockStats):
     criteria = REQ_CRITERIA.VEHICLE.FULLY_ELITE | ~REQ_CRITERIA.IN_CD_LIST([nodeCD])
     eliteVehicles = self.itemsCache.items.getVehicles(criteria)
     dirtyResult = sum(map(operator.attrgetter('xp'), eliteVehicles.values()))
     exchangeRate = self.itemsCache.items.shop.freeXPConversion[0]
     result = min(int(dirtyResult / exchangeRate) * exchangeRate, self.itemsCache.items.stats.gold * exchangeRate)
     result += unlockStats.getVehTotalXP(nodeCD)
     return result
Example #5
0
    def isOn(self):
        conditionVar = self.getVar()
        itemsList = conditionVar.get('items', [])
        itemType = conditionVar.get('itemType', None)
        criteria = REQ_CRITERIA.EMPTY
        if itemsList:
            criteria = REQ_CRITERIA.IN_CD_LIST(itemsList)
        vehicles = g_itemsCache.items.getVehicles(REQ_CRITERIA.INVENTORY).values()
        items = g_itemsCache.items.getItems(itemTypeID=GUI_ITEM_TYPE_INDICES[itemType], criteria=criteria).values()
        for item in items:
            if len(item.getInstalledVehicles(vehicles)) > 0:
                return True

        return False
Example #6
0
 def submit(self, gold, xpToExchange, callback=None):
     """
     Submit exchange operation, send request to exchange and call callback after response received
     :param gold: <int> gold value
     :param xpToExchange: <int> xp value to exchange
     :param callback: <function>
     """
     criteria = REQ_CRITERIA.VEHICLE.FULLY_ELITE | ~REQ_CRITERIA.IN_CD_LIST(
         [self._parentCD])
     eliteVehicles = self.itemsCache.items.getVehicles(criteria).keys()
     result = yield FreeXPExchanger(xpToExchange, eliteVehicles).request()
     if callback is not None:
         callback(result)
     return
Example #7
0
 def _getRequestCriteria(self, invVehicles):
     requestCriteria = super(InventoryModuleTab, self)._getRequestCriteria(invVehicles)
     extra = self._filterData['extra']
     fitsType = self._filterData['fitsType']
     requestTypeIds = self._getItemTypeID()
     if fitsType == 'myVehicle':
         vehicle = self._items.getItemByCD(int(self._filterData['vehicleCD']))
         requestCriteria |= REQ_CRITERIA.VEHICLE.SUITABLE([vehicle], requestTypeIds)
         if not vehicle.hasTurrets:
             requestCriteria |= ~REQ_CRITERIA.IN_CD_LIST([vehicle.turret.intCD])
     elif fitsType == 'myVehicles':
         requestCriteria |= REQ_CRITERIA.VEHICLE.SUITABLE(invVehicles, requestTypeIds)
     else:
         requestCriteria |= ~REQ_CRITERIA.VEHICLE.SUITABLE(invVehicles, requestTypeIds)
     return self._getExtraCriteria(extra, requestCriteria, invVehicles)
def getStorageShellsCriteria(itemsCache, invVehicles, compatible):
    shellsList = set()
    criteria = REQ_CRITERIA.INVENTORY | REQ_CRITERIA.VEHICLE.SUITABLE(invVehicles)
    myGuns = itemsCache.items.getItems(GUI_ITEM_TYPE.GUN, criteria).values()
    for gun in myGuns:
        shellsList.update((x.intCD for x in gun.defaultAmmo))

    for vehicle in invVehicles:
        shellsList.update((x.intCD for x in vehicle.gun.defaultAmmo))

    requestCriteria = REQ_CRITERIA.INVENTORY
    cdListCriteria = REQ_CRITERIA.IN_CD_LIST(shellsList)
    if compatible:
        requestCriteria |= cdListCriteria
    else:
        requestCriteria |= ~cdListCriteria
    return requestCriteria