Пример #1
0
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
Пример #2
0
 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
Пример #3
0
 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()
Пример #4
0
 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
Пример #6
0
 def __getNationGroupVehicles(self, vehicleCD):
     result = [
         self.__itemsCache.items.getItemByCD(cd)
         for cd in iterVehTypeCDsInNationGroup(vehicleCD)
     ]
     result.append(self.__vehicle)
     return result
Пример #7
0
 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])
Пример #8
0
 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
Пример #9
0
 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
Пример #11
0
    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
Пример #15
0
    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'))
Пример #16
0
 def __redrawPageAfterNationWasChanged(self):
     targetVehicleCD = iterVehTypeCDsInNationGroup(
         self._data.getRootCD()).next()
     self._data.setRootCD(targetVehicleCD)
     SelectedNation.select(self._data.getNationID())
     self.redraw()