def buyAndInstallItem(self, itemCD, rootCD, state): itemTypeID, _, __ = vehicles.parseIntCompactDescr(itemCD) if itemTypeID not in GUI_ITEM_TYPE.VEHICLE_MODULES: raise SoftException('Specified type (itemTypeID={}) is not type of module'.format(itemTypeID)) vehicle = self.itemsCache.items.getItemByCD(rootCD) if not vehicle.isInInventory: raise SoftException('Vehicle (intCD={}) must be in inventory'.format(rootCD)) item = self.itemsCache.items.getItemByCD(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) if not self._mayObtainForMoney(item) and self._mayObtainWithMoneyExchange(item): isOk, _ = yield DialogsInterface.showDialog(ExchangeCreditsMeta(itemCD, vehicle.intCD)) if not isOk: return if self._mayObtainForMoney(item): Waiting.show('buyAndInstall') vehicle = self.itemsCache.items.getItemByCD(rootCD) gunCD = getGunCD(item, vehicle) result = yield BuyAndInstallItemProcessor(vehicle, item, 0, gunCD, conflictedEqs=conflictedEqs, skipConfirm=self.skipConfirm).request() processMsg(result) if result.success and item.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): item = self.itemsCache.items.getItemByCD(itemCD) vehicle = self.itemsCache.items.getItemByCD(rootCD) if item.isInstalled(vehicle): yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('buyAndInstall') RequestState.received(state) yield lambda callback=None: callback return
def _response(self, code, callback, errStr='', ctx=None): LOG_DEBUG('Server response', code, errStr, ctx) RequestState.received('unlock') return callback( self._errorHandler(code, errStr='server_error', ctx=ctx)) if code < 0 else callback( self._successHandler(code, ctx=ctx))
def installItem(self, itemCD, rootCD, state): itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD) raise itemTypeID in GUI_ITEM_TYPE.VEHICLE_MODULES or AssertionError vehicle = self.itemsCache.items.getItemByCD(rootCD) if not vehicle.isInInventory: raise AssertionError('Vehicle must be in inventory') item = self.itemsCache.items.getItemByCD(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) RequestState.sent(state) if item.isInInventory: Waiting.show('applyModule') result = yield getInstallerProcessor( vehicle, item, conflictedEqs=conflictedEqs, skipConfirm=self.skipConfirm).request() processMsg(result) vehicle = result.success and item.itemTypeID in ( GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN) and self.itemsCache.items.getItemByCD( vehicle.intCD) yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') RequestState.received(state) yield lambda callback=None: callback return
def buyAndInstallItem(self, itemCD, rootCD, state): itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD) raise itemTypeID in GUI_ITEM_TYPE.VEHICLE_MODULES or AssertionError vehicle = g_itemsCache.items.getItemByCD(rootCD) if not vehicle.isInInventory: raise AssertionError('Vehicle must be in inventory') item = g_itemsCache.items.getItemByCD(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) if not self._canBuy(item) and self._canBuyWithExchange(item): isOk, args = yield DialogsInterface.showDialog(ExchangeCreditsMeta(itemCD, vehicle.intCD)) if not isOk: return if self._canBuy(item): Waiting.show('buyAndInstall') vehicle = g_itemsCache.items.getItemByCD(rootCD) gunCD = getGunCD(item, vehicle) result = yield BuyAndInstallItemProcessor(vehicle, item, 0, gunCD, conflictedEqs=conflictedEqs).request() processMsg(result) if result.success and item.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): item = g_itemsCache.items.getItemByCD(itemCD) vehicle = g_itemsCache.items.getItemByCD(rootCD) item.isInstalled(vehicle) and (yield tryToLoadDefaultShellsLayout(vehicle)) Waiting.hide('buyAndInstall') RequestState.received(state) yield lambda callback = None: callback return
def installItem(self, itemCD, rootCD, state): itemTypeID, _, __ = vehicles.parseIntCompactDescr(itemCD) if itemTypeID not in GUI_ITEM_TYPE.VEHICLE_MODULES: raise SoftException( 'Specified type (itemTypeID={}) is not type of module'.format( itemTypeID)) vehicle = self.itemsCache.items.getItemByCD(rootCD) if not vehicle.isInInventory: raise SoftException( 'Vehicle (intCD={}) must be in inventory'.format(rootCD)) item = self.itemsCache.items.getItemByCD(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) RequestState.sent(state) if item.isInInventory: Waiting.show('applyModule') result = yield getInstallerProcessor( vehicle, item, conflictedEqs=conflictedEqs, skipConfirm=self.skipConfirm).request() processMsg(result) if result.success and item.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): vehicle = self.itemsCache.items.getItemByCD(vehicle.intCD) yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') RequestState.received(state) yield lambda callback=None: callback return
def buyAndInstallItem(self, itemCD, rootCD, state): itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD) assert itemTypeID in GUI_ITEM_TYPE.VEHICLE_MODULES vehicle = g_itemsCache.items.getItemByCD(rootCD) assert vehicle.isInInventory, 'Vehicle must be in inventory' item = g_itemsCache.items.getItemByCD(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) if not self._canBuy(item) and self._canBuyWithExchange(item): isOk, args = yield DialogsInterface.showDialog(ExchangeCreditsMeta(itemCD, vehicle.intCD)) if not isOk: return if self._canBuy(item): Waiting.show('buyAndInstall') vehicle = g_itemsCache.items.getItemByCD(rootCD) gunCD = getGunCD(item, vehicle) result = yield BuyAndInstallItemProcessor(vehicle, item, 0, gunCD, conflictedEqs=conflictedEqs).request() processMsg(result) if result.success and item.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): item = g_itemsCache.items.getItemByCD(itemCD) vehicle = g_itemsCache.items.getItemByCD(rootCD) if item.isInstalled(vehicle): yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('buyAndInstall') RequestState.received(state) yield lambda callback = None: callback
def installItem(self, itemCD, rootCD, state): itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD) assert itemTypeID in GUI_ITEM_TYPE.VEHICLE_MODULES vehicle = g_itemsCache.items.getItemByCD(rootCD) assert vehicle.isInInventory, 'Vehicle must be in inventory' item = g_itemsCache.items.getItemByCD(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) RequestState.sent(state) if item.isInInventory: Waiting.show('applyModule') result = yield getInstallerProcessor(vehicle, item, conflictedEqs=conflictedEqs).request() processMsg(result) if result.success and item.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): vehicle = g_itemsCache.items.getItemByCD(vehicle.intCD) yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') RequestState.received(state) yield lambda callback = None: callback
def _response(self, code, callback, errStr = '', ctx = None): LOG_DEBUG('Server response', code, errStr, ctx) RequestState.received('unlock') if code < 0: return callback(self._errorHandler(code, errStr='server_error', ctx=ctx)) return callback(self._successHandler(code, ctx=ctx))