def getValidVehicleCDForNationChange(vehCompDescr): tempVehCD = vehCompDescr vehicle = _getItem(vehCompDescr) if vehicle.hasNationGroup: if vehicle.isInInventory: if not vehicle.activeInNationGroup: tempVehCD = iterVehTypeCDsInNationGroup(vehCompDescr).next() elif not isMainInNationGroup(vehCompDescr): tempVehCD = iterVehTypeCDsInNationGroup(vehCompDescr).next() return tempVehCD
def __init__(self, viewKey, ctx=None): settings = ViewSettings(viewKey) settings.flags = ViewFlags.WINDOW_VIEW settings.model = NationChangeScreenModel() super(NationChangeScreen, self).__init__(settings) vehicle = self.__itemsCache.items.getItemByCD(ctx.get('vehicleCD', None)) if vehicle.activeInNationGroup: self.__currentVehicle = vehicle self.__targetVehicle = self.__itemsCache.items.getItemByCD(iterVehTypeCDsInNationGroup(vehicle.intCD).next()) else: self.__currentVehicle = self.__itemsCache.items.getItemByCD(iterVehTypeCDsInNationGroup(vehicle.intCD).next()) self.__targetVehicle = vehicle self.__icons = R.images.gui.maps.icons return
def changeNation(self): vehicle = self._itemsCache.items.getItemByCD( self.__vehicleCompactDescr) vehCD = vehicle.intCD if vehicle.activeInNationGroup else iterVehTypeCDsInNationGroup( vehicle.intCD).next() ItemsActionsFactory.doAction(ItemsActionsFactory.CHANGE_NATION, vehCD) self.destroy()
def _checkForNationChange(self): selected = self._getVehicleSelectorVehicles() if selected: vehicle = self.itemsCache.items.getItemByCD(selected[0]) if not vehicle.activeInNationGroup: itemCD = iterVehTypeCDsInNationGroup(vehicle.intCD).next() self._selectVehicles([itemCD])
def _checkNationChange(self): if not self._vehicle.activeInNationGroup: self._intCD = iterVehTypeCDsInNationGroup(self._vehicle.intCD).next() self._progressionInject.getInjectView().invalidateVehicle(self._intCD) g_postProgressionVehicle.setCustomVehicle(None) self._updateVehicle() return
def __getNationGroupVehicles(self, vehicleCD): result = [ self.__itemsCache.items.getItemByCD(cd) for cd in iterVehTypeCDsInNationGroup(vehicleCD) ] result.append(self.__vehicle) return result
def __validateNationGroup(self): selected = self._getVehicleSelectorVehicles() if selected: vehicle = self.itemsCache.items.getItemByCD(selected[0]) if not vehicle.activeInNationGroup: itemCD = iterVehTypeCDsInNationGroup( vehicle.intCompactDescr).next() self._selectVehicles([itemCD])
def __getNationGroupVehicles(self, vehicleCD): result = [ self.__itemsCache.items.getItemByCD(cd) for cd in iterVehTypeCDsInNationGroup(vehicleCD) ] result.append(self.__vehicle) result.sort(reverse=True, key=lambda v: v.activeInNationGroup) return result
def goToVehicleView(self, itemCD): vehicle = self._itemsCache.items.getItemByCD(int(itemCD)) if vehicle: if vehicle.isPreviewAllowed(): shared_events.showVehiclePreview(int(itemCD), self.alias) elif vehicle.isInInventory: if not vehicle.activeInNationGroup: itemCD = iterVehTypeCDsInNationGroup(vehicle.intCD).next() shared_events.selectVehicleInHangar(itemCD)
def _formatVehicleNationChange(item): if item.hasNationGroup: result = {} result['isAvailable'] = item.isNationChangeAvailable result['otherNationsVehCDs'] = list(iterVehTypeCDsInNationGroup(item.intCD)) nationGroupVehs = getGroupByVehTypeCompactDescr(item.intCD) nationID, _ = g_list.getIDsByName(nationGroupVehs[0]) result['mainNation'] = nations.NAMES[nationID] return result else: return None
def __postMinimiseFilterUpdate(self): filterData = self.prbEntity.getSlotFilters() for slotIndex, data in filterData.iteritems(): vehCDs = data['vehicle_cds'][:] for cd in vehCDs: if hasNationGroup(cd): vehItem = self.itemsCache.items.getItemByCD(cd) if not vehItem.activeInNationGroup: vehCDs[vehCDs.index(cd)] = iterVehTypeCDsInNationGroup( cd).next() self.__setVehicles(slotIndex, vehCDs)
def __onCacheResync(self, reason, diff): if reason != CACHE_SYNC_REASON.CLIENT_UPDATE: return else: if diff is not None and GUI_ITEM_TYPE.VEHICLE in diff: vehDiff = diff[GUI_ITEM_TYPE.VEHICLE] for vehIntCD in vehDiff: vehicle = self.itemsCache.items.getItemByCD(vehIntCD) if not vehicle.activeInNationGroup and self._currentVehCD == vehIntCD: itemCD = iterVehTypeCDsInNationGroup( vehicle.intCD).next() self.__setSelectedVehicle(itemCD) return
def __addAditionalSlot(self, slotSettins): row = slotSettins[0] column = slotSettins[1] vehicleCD = self.__currentSlot['intCD'] vehicle = self.itemsCache.items.getItemByCD(int(vehicleCD)) if vehicle.hasNationGroup and vehicle.activeInNationGroup: addVehCD = iterVehTypeCDsInNationGroup(vehicleCD).next() vehicle = self.itemsCache.items.getItemByCD(addVehCD) addSlot = makeVehicleVO( vehicle, self.__convertLevelsRange(self._levelsRange), self.__vehicleTypes) slotSettings = [row, 1 - column, addSlot] self.fireEvent( CSRosterSlotSettingsWindow( CSRosterSlotSettingsWindow.APPLY_SLOT_SETTINGS, slotSettings))
def _onCacheResync(self, reason, diff): if reason != CACHE_SYNC_REASON.CLIENT_UPDATE: return else: selected = self._getVehicleSelectorVehicles() if selected: if diff is not None and GUI_ITEM_TYPE.VEHICLE in diff: vehDiff = diff[GUI_ITEM_TYPE.VEHICLE] for changedVehCD in vehDiff: vehicle = self.itemsCache.items.getItemByCD( changedVehCD) if not vehicle.activeInNationGroup and selected[ 0] == changedVehCD: itemCD = iterVehTypeCDsInNationGroup( vehicle.intCD).next() self._selectVehicles([itemCD]) return
def _onCacheResync(self, reason, diff): super(StrongholdBattleRoom, self)._onCacheResync(reason, diff) if GUI_ITEM_TYPE.VEHICLE in diff: mnVehs = { vehCD: self.itemsCache.items.getItemByCD(vehCD) for vehCD in diff[GUI_ITEM_TYPE.VEHICLE] if hasNationGroup(vehCD) } if mnVehs: for slotIndex, vehCDs in self.__vehiclesInSlotFilters.iteritems( ): for cd in vehCDs: if cd in mnVehs and not mnVehs[cd].activeInNationGroup: vehCDs[vehCDs.index( cd)] = iterVehTypeCDsInNationGroup(cd).next() self.sendRequest( ChangeVehiclesInSlotFilterCtx( slotIndex, vehCDs or [], waitingID='prebattle/change_settings'))
def __redrawPageAfterNationWasChanged(self): targetVehicleCD = iterVehTypeCDsInNationGroup( self._data.getRootCD()).next() self._data.setRootCD(targetVehicleCD) SelectedNation.select(self._data.getNationID()) self.redraw()