def doAction(self): vehicle = self.itemsCache.items.getVehicle(self.__vehInvID) if vehicle is None: return else: isUseMoney = self.__isRemove and self.__oldItemCD is not None LOG_DEBUG('isUseMoney, self.__isRemove, self.__oldItemCD', isUseMoney, self.__isRemove, self.__oldItemCD) newComponentItem = self.itemsCache.items.getItemByCD(int(self.__newItemCD)) if newComponentItem is None: return oldComponentItem = None if self.__oldItemCD: oldComponentItem = self.itemsCache.items.getItemByCD(int(self.__oldItemCD)) if not self.__isRemove: if oldComponentItem and oldComponentItem.itemTypeID in (GUI_ITEM_TYPE.OPTIONALDEVICE, GUI_ITEM_TYPE.BATTLE_BOOSTER): Waiting.show('installEquipment') result = yield getInstallerProcessor(vehicle, oldComponentItem, self.__slotIdx, False, True, skipConfirm=self.skipConfirm).request() processMsg(result) Waiting.hide('installEquipment') if not result.success: return if not self.__isRemove and not newComponentItem.isInInventory and not newComponentItem.itemTypeID == GUI_ITEM_TYPE.BATTLE_ABILITY: conflictedEqs = newComponentItem.getConflictedEquipments(vehicle) if not self._mayObtainForMoney(newComponentItem) and self._mayObtainWithMoneyExchange(newComponentItem): isOk, _ = yield DialogsInterface.showDialog(ExchangeCreditsMeta(newComponentItem.intCD, vehicle.intCD)) if not isOk: return if self._mayObtainForMoney(newComponentItem): Waiting.show('buyAndInstall') vehicle = self.itemsCache.items.getVehicle(self.__vehInvID) gunCD = getGunCD(newComponentItem, vehicle) result = yield BuyAndInstallItemProcessor(vehicle, newComponentItem, self.__slotIdx, gunCD, conflictedEqs=conflictedEqs, skipConfirm=self.skipConfirm).request() processMsg(result) if result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): newComponentItem = self.itemsCache.items.getItemByCD(int(self.__newItemCD)) vehicle = self.itemsCache.items.getItemByCD(vehicle.intCD) if newComponentItem.isInstalled(vehicle): yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('buyAndInstall') else: yield lambda callback=None: callback else: Waiting.show('applyModule') conflictedEqs = newComponentItem.getConflictedEquipments(vehicle) result = yield getInstallerProcessor(vehicle, newComponentItem, self.__slotIdx, not self.__isRemove, isUseMoney, conflictedEqs, self.skipConfirm).request() processMsg(result) if result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): newComponentItem = self.itemsCache.items.getItemByCD(int(self.__newItemCD)) vehicle = self.itemsCache.items.getItemByCD(vehicle.intCD) if newComponentItem.isInstalled(vehicle): yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') return
def doAction(self): vehicle = g_itemsCache.items.getVehicle(self.__vehInvID) if vehicle is None: return else: isUseGold = self.__isRemove and self.__oldItemCD is not None LOG_DEBUG('isUseGold, self.__isRemove, self.__oldItemCD', isUseGold, self.__isRemove, self.__oldItemCD) newComponentItem = g_itemsCache.items.getItemByCD(int(self.__newItemCD)) if newComponentItem is None: return oldComponentItem = None if self.__oldItemCD: oldComponentItem = g_itemsCache.items.getItemByCD(int(self.__oldItemCD)) if not self.__isRemove: if oldComponentItem and oldComponentItem.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE: result = yield getInstallerProcessor(vehicle, oldComponentItem, self.__slotIdx, False, True).request() processMsg(result) if not result.success: return if not self.__isRemove and not newComponentItem.isInInventory: conflictedEqs = newComponentItem.getConflictedEquipments(vehicle) if not self._mayObtainForMoney(newComponentItem) and self._mayObtainWithMoneyExchange(newComponentItem): isOk, args = yield DialogsInterface.showDialog(ExchangeCreditsMeta(newComponentItem.intCD, vehicle.intCD)) if not isOk: return if self._mayObtainForMoney(newComponentItem): Waiting.show('buyAndInstall') vehicle = g_itemsCache.items.getVehicle(self.__vehInvID) gunCD = getGunCD(newComponentItem, vehicle) result = yield BuyAndInstallItemProcessor(vehicle, newComponentItem, self.__slotIdx, gunCD, conflictedEqs=conflictedEqs).request() processMsg(result) if result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): newComponentItem = g_itemsCache.items.getItemByCD(int(self.__newItemCD)) vehicle = g_itemsCache.items.getItemByCD(vehicle.intCD) if newComponentItem.isInstalled(vehicle): yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('buyAndInstall') else: yield lambda callback = None: callback else: Waiting.show('applyModule') conflictedEqs = newComponentItem.getConflictedEquipments(vehicle) result = yield getInstallerProcessor(vehicle, newComponentItem, self.__slotIdx, not self.__isRemove, isUseGold, conflictedEqs).request() processMsg(result) if result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): newComponentItem = g_itemsCache.items.getItemByCD(int(self.__newItemCD)) vehicle = g_itemsCache.items.getItemByCD(vehicle.intCD) if newComponentItem.isInstalled(vehicle): yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') return
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 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 buyAndInstallItem(self, itemCD, state, inInventory = False): itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD) assert itemTypeID in GUI_ITEM_TYPE.VEHICLE_MODULES vehicle = self._data.getRootItem() assert vehicle.isInInventory, 'Vehicle must be in inventory' item = self._data.getItem(itemCD) conflictedEqs = item.getConflictedEquipments(vehicle) if not inInventory: Waiting.show('buyItem') buyResult = yield ModuleBuyer(item, count=1, buyForCredits=True, conflictedEqs=conflictedEqs, install=True).request() Waiting.hide('buyItem') if len(buyResult.userMsg): SystemMessages.g_instance.pushI18nMessage(buyResult.userMsg, type=buyResult.sysMsgType) if buyResult.success: item = self._data.getItem(itemCD) else: return else: RequestState.sent(state) if item.isInInventory: Waiting.show('applyModule') result = yield getInstallerProcessor(vehicle, item, conflictedEqs=conflictedEqs).request() if result and result.auxData: for m in result.auxData: SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType) if result and len(result.userMsg): SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType) 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)
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 doAction(self): vehicle = None if self.__vehInvID > 0: vehicle = g_itemsCache.items.getVehicle(self.__vehInvID) if vehicle is None: return else: isUseGold = self.__isRemove and self.__oldItemCD is not None newComponentItem = g_itemsCache.items.getItemByCD(int(self.__newItemCD)) if newComponentItem is None: return oldComponentItem = None if self.__oldItemCD: oldComponentItem = g_itemsCache.items.getItemByCD(int(self.__oldItemCD)) if not self.__isRemove and oldComponentItem and oldComponentItem.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE: result = yield getInstallerProcessor(vehicle, oldComponentItem, self.__slotIdx, False, True).request() if result and result.auxData: for m in result.auxData: SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType) if result and len(result.userMsg): SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType) if not result.success: return conflictedEqs = newComponentItem.getConflictedEquipments(vehicle) if not newComponentItem.isInInventory and not self.__isRemove: if not self._canBuy(newComponentItem) and self._canBuyWithExchange(newComponentItem): isOk, args = yield DialogsInterface.showDialog(ExchangeCreditsMeta(newComponentItem.intCD)) if not isOk: return if self._canBuy(newComponentItem): Waiting.show('buyItem') buyResult = yield ModuleBuyer(newComponentItem, count=1, buyForCredits=True, conflictedEqs=conflictedEqs, install=True).request() Waiting.hide('buyItem') if len(buyResult.userMsg): SystemMessages.g_instance.pushI18nMessage(buyResult.userMsg, type=buyResult.sysMsgType) if buyResult.success: newComponentItem = g_itemsCache.items.getItemByCD(int(self.__newItemCD)) else: return else: return Waiting.show('applyModule') result = yield getInstallerProcessor(vehicle, newComponentItem, self.__slotIdx, not self.__isRemove, isUseGold, conflictedEqs).request() if result and result.auxData: for m in result.auxData: SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType) if result and len(result.userMsg): SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType) if result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): vehicle = g_itemsCache.items.getItemByCD(vehicle.intCD) yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') return
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 setVehicleModule(self, newId, slotIdx, oldId, isRemove): isUseGold = isRemove and oldId is not None vehicle = g_currentVehicle.item newComponentItem = g_itemsCache.items.getItemByCD(int(newId)) if newComponentItem is None: return oldComponentItem = None if oldId: oldComponentItem = g_itemsCache.items.getItemByCD(int(oldId)) if not isRemove and oldComponentItem and oldComponentItem.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE: result = yield getInstallerProcessor(vehicle, oldComponentItem, slotIdx, False, True).request() if result and result.auxData: for m in result.auxData: SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType) if result and len(result.userMsg): SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType) if not result.success: return conflictedEqs = newComponentItem.getConflictedEquipments(vehicle) if not newComponentItem.isInInventory and not isRemove: Waiting.show('buyItem') buyResult = yield ModuleBuyer(newComponentItem, count=1, buyForCredits=True, conflictedEqs=conflictedEqs, install=True).request() Waiting.hide('buyItem') if len(buyResult.userMsg): SystemMessages.g_instance.pushI18nMessage(buyResult.userMsg, type=buyResult.sysMsgType) if buyResult.success: newComponentItem = g_itemsCache.items.getItemByCD(int(newId)) else: return Waiting.show('applyModule') result = yield getInstallerProcessor(vehicle, newComponentItem, slotIdx, not isRemove, isUseGold, conflictedEqs).request() if result and result.auxData: for m in result.auxData: SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType) if result and len(result.userMsg): SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType) if result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN): vehicle = g_itemsCache.items.getItemByCD(vehicle.intCD) yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule')
def buyAndInstallItem(self, itemCD, rootCD, state, inInventory = False): 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 inInventory: if not self._canBuy(item) and self._canBuyWithExchange(item): isOk, args = yield DialogsInterface.showDialog(ExchangeCreditsMeta(itemCD)) if not isOk: return if self._canBuy(item): Waiting.show('buyItem') buyResult = yield ModuleBuyer(item, count=1, buyForCredits=True, conflictedEqs=conflictedEqs, install=True).request() Waiting.hide('buyItem') if len(buyResult.userMsg): SystemMessages.g_instance.pushI18nMessage(buyResult.userMsg, type=buyResult.sysMsgType) if buyResult.success: item = g_itemsCache.items.getItemByCD(itemCD) else: return else: RequestState.sent(state) if item.isInInventory: Waiting.show('applyModule') result = yield getInstallerProcessor(vehicle, item, conflictedEqs=conflictedEqs).request() if result and result.auxData: for m in result.auxData: SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType) if result and len(result.userMsg): SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType) vehicle = result.success and item.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN) and g_itemsCache.items.getItemByCD(vehicle.intCD) yield tryToLoadDefaultShellsLayout(vehicle) Waiting.hide('applyModule') RequestState.received(state) yield lambda callback = None: callback return