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
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
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
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