コード例 #1
0
 def __fillConfiguration(self, slotSettings, configurationsSettings,
                         configurationID):
     slotID = slotSettings.id
     if not self.__isConfigurationIDValid(configurationsSettings,
                                          configurationID):
         LOG_ERROR("ConfigurationID isn't valid. slotID, configurationID",
                   slotID, configurationID)
         return
     else:
         weapons = configurationsSettings[configurationID].weapons
         configuration = LobbyAirplaneWeapons.__Configuration()
         configuration.isDefault = (
             slotID, configurationID
         ) in _airplanesConfigurations_db.getDefaultAirplaneConfiguration(
             self.__aircraftID).weaponSlots
         configuration.weaponSlotID = slotID
         configuration.configurationID = configurationID
         if len(weapons) == 0:
             configuration.weaponNameID = EMPTY_WEAPON_NAME_ID
             configuration.weaponName = localizeLobby('WEAPON_NAME_EMPTY')
             self.__weaponSlotsMap[slotID].append(configuration)
         else:
             it = iter(weapons)
             weapon = it.next()
             configuration.weaponNameID = weapon.name
             configuration.weaponName = localizeComponents('WEAPON_NAME_' +
                                                           weapon.name)
             configuration.neededCount = len(weapons)
             configuration.weaponGroup = weapon.weaponGroup
             weaponUpgradeMap = self.__getUpgrade(weapon.name)
             if weaponUpgradeMap is not None:
                 configuration.haveCount = weaponUpgradeMap['boughtCount']
                 configuration.installedCount = weaponUpgradeMap[
                     'installedCount']
                 configuration.parentName = weaponUpgradeMap['parent']
             upgrade = db.DBLogic.g_instance.upgrades.get(weapon.name, None)
             if upgrade is not None:
                 configuration.level = upgrade.level
                 weaponType = upgrade.type
                 configuration.weaponType = weaponType
                 if weaponType == UPGRADE_TYPE.GUN:
                     gunData = db.DBLogic.g_instance.getGunData(weapon.name)
                     if gunData is None:
                         LOG_ERROR(
                             'Weapon has not weapon settings. Weapon name',
                             weapon.name)
                     else:
                         configuration.description = localizeLobby(
                             gunData.gunProfileName.upper() +
                             '_DESCRIPTION')
                 else:
                     configuration.description = localizeComponents(
                         UPGRADE_TYPE.DESCRIPTION_MAP[weaponType])
                 configuration.icoPath = get48ModuleIconPath(
                     getattr(upgrade, 'iconPath', ICON_MODULE_DEFAULT_PATH))
             self.__weaponSlotsMap[slotID].append(configuration)
         return
コード例 #2
0
    def initialized(self):
        LOG_DEBUG('init Prebattle')
        self.updateCallback = -1
        self.movie.backgroundAlpha = 1.0
        self.addExternalCallbacks(
            {'prebattle.forceStart': self.onPrebattleForceStart})
        data = _PrebattleVO()
        data.planeTypesIcon = [
            PLANE_TYPE_BATTLE_RESULT_ICO_PATH.icon(planeTypeId)
            for planeTypeId in PLANE_TYPES_ORDER
        ]
        data.planeTypes = [
            localizeLobby(HUD_PLANE_TYPES_LOC_ID[planeTypeId])
            for planeTypeId in PLANE_TYPES_ORDER
        ]
        player = BigWorld.player()
        from Account import PlayerAccount
        if player != None and player.__class__ == PlayerAccount:
            data.battleType = player.battleType
        else:
            data.battleType = self.__iGameModesParams['curMode']
        try:
            data.battleName = localizeLobby(
                BATTLE_NAME_BY_TYPE_HUD_LOC_ID[data.battleType])
            data.battleDescription = localizeLobby(
                BATTLE_DESC_BY_TYPE_HUD_LOC_ID[data.battleType])
        except KeyError:
            data.battleName = 'Battle name for type {} not provided'.format(
                data.battleType)
            data.battleDescription = 'Battle description for type {} not provided'.format(
                data.battleType)

        import BWPersonality
        lch = BWPersonality.g_lobbyCarouselHelper
        planeSelected = lch.getCarouselAirplaneSelected()
        if planeSelected:
            data.planeID = planeSelected.planeID
            data.level = planeSelected.level
            data.name = planeSelected.name
            data.longName = planeSelected.longName
            data.planeType = planeSelected.planeType
            data.type = planeSelected.type
            data.previewIconPath = planeSelected.previewIconPath
            data.hudIconPath = planeSelected.hudIconPath
            data.planeIconPath = planeSelected.planeIconPath
            data.isElite = planeSelected.isElite
            data.isPremium = planeSelected.isPremium
            from clientConsts import PLANE_TYPE_ICO_PATH, PLANE_CLASS
            planeStatus = planeSelected.isPremium * PLANE_CLASS.PREMIUM or planeSelected.isElite * PLANE_CLASS.ELITE or PLANE_CLASS.REGULAR
            data.planeTypeIconPath = PLANE_TYPE_ICO_PATH.icon(
                planeSelected.planeType, planeStatus)
        else:
            LOG_ERROR('Prebattle:initialized - planeSelected is None')
        GUIWindowAccount.initialized(self, data)
        if Settings.g_instance.clusterID == CLASTERS.CN:
            self._startTickerNews()
        return
コード例 #3
0
 def __ShowErrorMessageBox(self, error_msg):
     if self.__waitingID is not None:
         Waiting.hide(self.__waitingID)
         self.__waitingID = None
     _error_local = localizeLobby(error_msg)
     self.__account.call_1('hangar.showErrorMessage', _error_local,
                           localizeLobby('BATTLE_TRAINING_FLIGHT'))
     LOG_DEBUG('__ShowErrorMessageBox: {0} / {1}'.format(
         error_msg, _error_local))
     return
コード例 #4
0
    def getWeaponDescriptionList(self):
        ret = []
        if self.weapons is not None:
            weaponConfigFinalData = {}
            weaponsInstalledConfigurationsList = self.weapons.getInstalledConfigurations()
            for weaponConfiguration in weaponsInstalledConfigurationsList:
                if weaponConfiguration.neededCount > 0:
                    weaponGroup = weaponConfiguration.weaponName
                    if weaponGroup in weaponConfigFinalData:
                        weaponConfigFinalData[weaponGroup].value += weaponConfiguration.neededCount
                    else:
                        t = db.DBLogic.g_instance.upgrades[weaponConfiguration.weaponNameID].type
                        value = weaponConfiguration.neededCount
                        if t == UPGRADE_TYPE.BOMB:
                            tag = AIRCRAFT_CHARACTERISTIC.BOMB_LIST
                        elif t == UPGRADE_TYPE.ROCKET:
                            tag = AIRCRAFT_CHARACTERISTIC.ROCKET_LIST
                        else:
                            tag = AIRCRAFT_CHARACTERISTIC.GUN_LIST
                        weaponConfigFinalData[weaponGroup] = PlaneCharacteristicsField(name=weaponConfiguration.weaponName, value=value, isWeapon=True, tag=tag)

            for weaponGroup in weaponConfigFinalData:
                ret.append(weaponConfigFinalData[weaponGroup])

        else:
            LOG_ERROR('weaponConfiguration not found for airplane', self.planeID)
        weaponList = self.getInstalledTurretsList()
        for upgradeName, count in weaponList.iteritems():
            item = PlaneCharacteristicsField(name=localizeLobby('MARKET_AIRPLANE_TURRET') + localizeUpgrade(db.DBLogic.g_instance.upgrades[upgradeName]), value=count, isWeapon=True, tag=AIRCRAFT_CHARACTERISTIC.TURRET_LIST)
            ret.append(item)

        return ret
コード例 #5
0
def getLobbyAirplane(aircraftID):
    aircraftID = int(aircraftID)
    airplaneData = db.DBLogic.g_instance.getAircraftData(aircraftID)
    if airplaneData is None:
        LOG_ERROR('updateCarouselResponse. plane is wrong. Airplane = ', aircraftID)
        return
    else:
        nationID = db.DBLogic.g_instance.getNationIDbyAircraftID(aircraftID)
        airplane = LobbyAirplane()
        import BWPersonality
        inv = BWPersonality.g_lobbyCarouselHelper.inventory
        try:
            airplane.nationID = nationID
            airplane.planeID = aircraftID
            airplane.name = localizeAirplane(airplaneData.airplane.name)
            airplane.longName = localizeAirplaneLong(airplaneData.airplane.name)
            if airplaneData.airplane.options.isDev:
                airplane.longName += ' (Dev)'
            airplane.hudIconPath = airplaneData.airplane.hudIcoPath if airplaneData.airplane else 'n/a'
            airplane.planeIconPath = airplaneData.airplane.iconPath if airplaneData.airplane else 'n/a'
            airplane.previewIconPath = airplaneData.airplane.previewIconPath if airplaneData.airplane else 'n/a'
            airplane.nationFlagPath = db.DBLogic.g_instance.getAircraftFlagPath(airplaneData.airplane.name)
            airplane.level = airplaneData.airplane.level if airplaneData.airplane else 0
            airplane.levelRomanNum = airplane.level
            airplane.mass = 0.0
            airplane.hitPoints = 0.0
            airplane.type = localizeLobby(PREBATTLE_PLANE_TYPE_NAME[airplaneData.airplane.planeType])
            airplane.isPremium = db.DBLogic.g_instance.isPlanePremium(aircraftID)
            airplane.isElite = inv.isAircraftElite(aircraftID)
            airplane.experience = inv.getAircraftExp(aircraftID)
            airplane.planeType = airplaneData.airplane.planeType
            airplane.isResearched = inv.isAircraftOpened(aircraftID)
            airplane.isBought = inv.isAircraftBought(aircraftID)
            airplane.updatePrice()
            airplane.researchExp = 0
            upgrade = db.DBLogic.g_instance.upgrades.get(airplaneData.airplane.name, None)
            if upgrade is not None and upgrade.variant[0].parentUpgrade:
                airplane.researchExp = int(upgrade.variant[0].parentUpgrade[0].experience)
            planeStatus = airplane.isPremium * PLANE_CLASS.PREMIUM or airplane.isElite * PLANE_CLASS.ELITE or PLANE_CLASS.REGULAR
            airplane.planeTypeIconPath = PLANE_TYPE_ICO_PATH.icon(airplane.planeType, planeStatus)
            upgradesList, aircraftList = db.DBLogic.g_instance.getAircraftUpgrades(aircraftID)
            defaultConfiguration = _airplanesConfigurations_db.getDefaultAirplaneConfiguration(aircraftID)
            upgradeInfoMaps = []
            for upgrade in upgradesList:
                info = inv.getUpgradeInfoMap(aircraftID, upgrade)
                info['isInstalled'] = any((m == upgrade.name for m in defaultConfiguration.modules))
                upgradeInfoMaps.append(info)

            airplane.modules = LobbyAirplaneModules(aircraftID, upgradeInfoMaps)
            airplane.weapons = LobbyAirplaneWeapons(aircraftID, None, list(defaultConfiguration.weaponSlots))
            from gui.Scaleform.LobbyAirplanePresets import LobbyAirplanePresets
            airplane.presets = LobbyAirplanePresets(aircraftID, airplane.modules, airplane.weapons, None, [ preset.name for preset in db.DBLogic.g_instance.getAircraftPresetsListByName(airplaneData.airplane.name) ], db.DBLogic.g_instance.getAircraftDefaultPresetFromName(airplaneData.airplane.name).name)
            airplane.presets.fillPresets()
        except:
            LOG_CURRENT_EXCEPTION()
            return

        from Account import PLANE_BLOCK_TYPE
        airplane.blockType = PLANE_BLOCK_TYPE.get(airplane.planeID, BLOCK_TYPE.UNLOCKED)
        return airplane
コード例 #6
0
    def __setLocalizedCreateRoomSettings(self, filtersMap):
        class FlashVO:
            def __init__(self):
                self.maps = []
                self.planesLevelsFrom = []
                self.planesLevelsFrom = []
                self.planesLevelsTo = []
                self.battleDurations = []

        flashVO = FlashVO()
        flashVO.maps = self.generateMapASList(filtersMap)
        LOG_DEBUG('trainingsRoomCreating.setData', filtersMap, flashVO.maps)
        for planeLevelFrom in filtersMap['planesLevelsFrom']:
            flashVO.planesLevelsFrom.append(planeLevelFrom)

        for planesLevelTo in filtersMap['planesLevelsTo']:
            flashVO.planesLevelsTo.append(planesLevelTo)

        for battleDuration in filtersMap['durationBattle']:
            durationVO = ItemVO()
            durationVO.name = localizeLobby(
                consts.BATTLE_DURATIONS.BATTLE_DURATIONS_MAP.get(
                    battleDuration))
            durationVO.id = battleDuration
            flashVO.battleDurations.append(durationVO)

        LOG_DEBUG('trainingsRoomCreating.setData', flashVO)
        self.__account.call_1('trainingsRoomCreating.setData', flashVO)
コード例 #7
0
    def __fillSlot(self, slotSettings):
        slotID = slotSettings.id
        configurationsSettings = slotSettings.types
        if configurationsSettings is None:
            LOG_ERROR('Slot has not any configurations. SlotID', slotID)
            return False
        else:
            self.__weaponSlotsMap[slotID] = []
            self.__slotsInfoMap[slotID] = {
                'description': localizeLobby('AMMO_SLOT_' + slotSettings.name),
                'title': localizeLobby('AVAILABLE_' + slotSettings.name)
            }
            for configurationID in configurationsSettings.keys():
                self.__fillConfiguration(slotSettings, configurationsSettings,
                                         configurationID)

            return
コード例 #8
0
    def getModulesInfoMap(self, modulesList, useTypeList = []):
        modulesInfoMap = {}
        for moduleMap in modulesList:
            moduleType = moduleMap['type']
            moduleTypeID = UPGRADE_TYPE.STRING_TO_INT_MAP[moduleType]
            if not useTypeList or moduleType in useTypeList:
                modulesInfoMap[moduleTypeID] = localizeLobby(UPGRADE_TYPE.TITLE_MAP[moduleType])

        return modulesInfoMap
コード例 #9
0
 def __call__(self, account, ob, **kw):
     adaptedOB = super(ITypePlaneAdapter, self).__call__(account, ob, **kw)
     if ob is not None:
         adaptedOB['type'] = ob.planeType
         adaptedOB['typeString'] = localizeLobby(
             PREBATTLE_PLANE_TYPE_NAME[ob.planeType])
         adaptedOB['typeIcoPath'] = PLANE_TYPE_ICO_PATH.icon(
             ob.planeType, PLANE_CLASS.REGULAR)
     return adaptedOB
コード例 #10
0
    def __setLocalizedFilters(self, filtersMap, inRoom=False):
        if self.__roomsListActive or inRoom:
            mapASList = self.generateMapASList(filtersMap)
            if inRoom:
                self.__account.call_1('trainingsRoomTeams.setAreaNames',
                                      mapASList)
            else:
                self.__account.call_1('trainingRoomsList.setAreaNames',
                                      mapASList)
            if not inRoom:
                fireModeASList = []
                for fireMode in filtersMap['fireModeFilters']:
                    localizedText = localizeLobby(
                        consts.PREBATTLE_FIRE_MODE_FILTER.
                        PREBATTLE_FIRE_MODE_FILTER_MAP.get(fireMode))
                    fireModeVO = ItemVO(fireMode, localizedText)
                    fireModeASList.append(fireModeVO)

                self.__account.call_1('trainingRoomsList.setFireModes',
                                      fireModeASList)
                gameModeASList = []
                for gameMode in filtersMap['gameModeFilters']:
                    localizedText = localizeLobby(
                        consts.PREBATTLE_GAMEMODES_FILTER_MAP.get(gameMode))
                    gameModeVO = ItemVO(gameMode, localizedText)
                    gameModeASList.append(gameModeVO)

                self.__account.call_1('trainingRoomsList.setGameModes',
                                      gameModeASList)
            levelASList = []
            for levelType in filtersMap['planeLevelFilters']:
                localizedText = localizeLobby(
                    consts.PREBATTLE_LEVELS_FILTER.PREBATTLE_LEVELS_FILTER_MAP.
                    get(levelType))
                levelTypeVO = ItemVO(levelType, localizedText)
                levelASList.append(levelTypeVO)

            if inRoom:
                self.__account.call_1('trainingsRoomTeams.setPlaneLevels',
                                      levelASList)
            else:
                self.__account.call_1('trainingRoomsList.setPlaneLevels',
                                      levelASList)
コード例 #11
0
 def __call__(self, account, ob, **kw):
     if ob is None:
         return ob
     else:
         adaptedOB = super(IEquipmentAdapter,
                           self).__call__(account,
                                          getObject(kw['idTypeList']), **kw)
         adaptedOB['buyAvailable'] = ob.buyAvailable
         adaptedOB['minLevel'] = ob.minLevel
         adaptedOB['maxLevel'] = ob.maxLevel
         from db.DBLogic import g_instance as dbInst
         adaptedOB['nations'] = [
             dbInst.getNationIDbyName(x) for x in ob.nations
         ]
         adaptedOB['name'] = localizeLobby(adaptedOB['name'])
         adaptedOB['description'] = localizeLobby(adaptedOB['description'])
         adaptedOB[
             'suitablePlaneIDs'] = dbInst.getAvailablePlanesByEquipmentID(
                 kw['idTypeList'][0][0])
         return adaptedOB
コード例 #12
0
    def __call__(self, account, ob, **kw):
        if ob is None:
            return ob
        else:

            def localizeIfNotEmpty(tag):
                ret = localizeLobby(tag)
                if ret == tag:
                    return ''
                return ret

            adaptedOB = super(IConsumableAdapter,
                              self).__call__(account,
                                             getObject(kw['idTypeList']), **kw)
            adaptedOB['buyAvailable'] = ob.buyAvailable
            adaptedOB['name'] = localizeLobby(adaptedOB['name'])
            adaptedOB['description'] = localizeLobby(adaptedOB['description'])
            adaptedOB['fullDescription'] = localizeLobby(
                adaptedOB['fullDescription'])
            adaptedOB['effectContinuous'] = localizeIfNotEmpty(
                adaptedOB['effectContinuous'])
            adaptedOB['effectOnUse'] = localizeIfNotEmpty(
                adaptedOB['effectOnUse'])
            from db.DBLogic import g_instance as dbInst
            adaptedOB['minLevel'] = ob.minLevel
            adaptedOB['maxLevel'] = ob.maxLevel
            adaptedOB['nations'] = [
                dbInst.getNationIDbyName(x) for x in ob.nations
            ]
            adaptedOB['planeTypes'] = ob.planeType
            adaptedOB['coolDownTime'] = ob.coolDownTime
            adaptedOB['effectTime'] = ob.effectTime
            adaptedOB['chargesCount'] = ob.chargesCount
            adaptedOB[
                'suitablePlaneIDs'] = dbInst.getAvailablePlanesByConsumableID(
                    kw['idTypeList'][0][0])
            adaptedOB['behaviour'] = ob.behaviour
            adaptedOB['readyOnRespawn'] = ob.readyOnRespawn
            adaptedOB['isExclusive'] = ob.isExclusive
            return adaptedOB
コード例 #13
0
def getAirplaneDescriptionPair(characteristicsTable, tag, measurementSystem = None):
    name = localizeLobby(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    if characteristicsTable is not None:
        value = getattr(characteristicsTable, SPECS_KEY_MAP[tag])
        value, unit, largerIsBetter = _adjustSpec(value, tag, measurementSystem)
    else:
        LOG_ERROR('Characteristics table is empty')
        value = 0
        unit = None
    return (name,
     value,
     unit,
     largerIsBetter)
コード例 #14
0
    def __convertRoomToFlashVO(self, room):
        planeLevel = self.planeLevel

        def extract(source, attr):
            if attr in source:
                return source[attr]
            return 0

        flashVO = TrainingRoomFlashVO()
        flashVO.roomID = extract(room, 'roomID')
        flashVO.roomDescription = extract(room, 'roomDescription')
        flashVO.currentCountPlayers = extract(room, 'currentCountPlayers')
        flashVO.maxCountPlayers = extract(room, 'maxCountPlayers')
        flashVO.nameCommander = extract(room, 'nameCommander')
        flashVO.clanAbbrevCommander = extract(room, 'clanAbbrevCommander')
        if 'durationTime' in room:
            flashVO.time = room['durationTime'] / 60
        elif 'time' in room:
            flashVO.time = room['time'] / 60
        flashVO.gameMode = localizeHUD(
            consts.PREBATTLE_GAMEMODES_FILTER_MAP.get(extract(
                room, 'gameMode')))
        flashVO.planeLevelFrom = extract(room, 'planeLevelFrom')
        flashVO.planeLevelTo = extract(room, 'planeLevelTo')
        flashVO.planeHidden = extract(room, 'planeHidden')
        if planeLevel is None:
            flashVO.buttonEnabled = extract(room, 'enterButtonEnabled')
        else:
            flashVO.buttonEnabled = flashVO.planeLevelFrom <= planeLevel <= flashVO.planeLevelTo
        planeLevelFrom = localizeHUD(
            consts.PREBATTLE_PLANES_LEVELS.PREBATTLE_PLANES_LEVELS_MAP.get(
                flashVO.planeLevelFrom))
        planeLevelTo = localizeHUD(
            consts.PREBATTLE_PLANES_LEVELS.PREBATTLE_PLANES_LEVELS_MAP.get(
                flashVO.planeLevelTo))
        flashVO.planeLevel = planeLevelFrom + ' - ' + planeLevelTo
        flashVO.fireMode = localizeLobby(
            consts.PREBATTLE_FIRE_MODE_FILTER.PREBATTLE_FIRE_MODE_FILTER_MAP.
            get(extract(room, 'fireMode')))
        flashVO.mapID = extract(room, 'mapID')
        arenaData = db.DBLogic.g_instance.getArenaData(flashVO.mapID)
        if arenaData:
            flashVO.previewIcoPath = arenaData.trainingRoomIcoPathSelected
            flashVO.schemeName = localizeMap(arenaData.trainingRoomSecondName)
            flashVO.mapName = localizeMap(arenaData.trainingRoomName)
        return flashVO
コード例 #15
0
 def __call__(self, account, ob, **kw):
     name = ob.client.name.locale
     description = ob.client.description.locale
     planeId = part2bomber(ob.id)
     bigIconPath = ob.client.icon.big
     smallIconPath = ob.client.icon.small
     position = ob.client.place
     adaptedOB = super(IBomberPartAdapter,
                       self).__call__(account, getObject(kw['idTypeList']),
                                      **kw)
     if adaptedOB:
         adaptedOB['name'] = localizeLobby(name)
         adaptedOB['description'] = localizeTooltips(description)
         adaptedOB['planeID'] = planeId
         adaptedOB['bigIconPath'] = bigIconPath
         adaptedOB['smallIconPath'] = smallIconPath
         adaptedOB['position'] = position
     return adaptedOB
コード例 #16
0
def createRankGainedEventModel(rankID):
    rankModel = RankModel.getRankByID(rankID)
    planeType = rankModel.relatedPlaneType
    iconPathTemplate = rankModel.iconPath
    templateData = {
        'type': 'achievements',
        'class': planeTypeToPath[planeType],
        'state': 'normal',
        'size': '72x88'
    }
    iconPath = iconPathTemplate.format(**templateData)
    titleTemplate = localizeTooltips(rankModel.title)
    localizedPlaneTypeName = localizeLobby(
        PREBATTLE_PLANE_TYPE_NAME[planeType])
    return {
        'type': EconomicsModelView.AWARD_EVENT_TYPE,
        'title': titleTemplate.format(class_name=localizedPlaneTypeName),
        'icon': iconPath
    }
コード例 #17
0
def _adjustSpec(value, tag, measurementSystem = None):
    largerIsBetter = True
    unit = None
    ms = measurementSystem or MeasurementSystem()
    if tag == AIRCRAFT_CHARACTERISTIC.MASS:
        value = int(round(ms.getKgs(value)))
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
        largerIsBetter = False
    elif tag == AIRCRAFT_CHARACTERISTIC.GROUND_MAX_SPEED:
        value = int(round(ms.getKmh(value)))
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    elif tag == AIRCRAFT_CHARACTERISTIC.HEIGHT_MAX_SPEED:
        value = int(round(ms.getKmh(value)))
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    elif tag in (AIRCRAFT_CHARACTERISTIC.OPTIMAL_HEIGHT, AIRCRAFT_CHARACTERISTIC.ALT_PERFORMANCE):
        value = int(round(ms.getMeters(value)))
        if tag == AIRCRAFT_CHARACTERISTIC.OPTIMAL_HEIGHT:
            unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    elif tag == AIRCRAFT_CHARACTERISTIC.RATE_OF_CLIMB:
        value = wowpRound(ms.getMeters(value), 1)
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    elif tag == AIRCRAFT_CHARACTERISTIC.AVERAGE_TURN_TIME:
        value = wowpRound(value, 1)
        unit = localizeLobby('MARKET_AIRPLANE_FULL_TURN_TIME_SEC')
        largerIsBetter = False
    elif tag == AIRCRAFT_CHARACTERISTIC.DIVE_SPEED:
        value = int(round(ms.getKmh(value)))
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    elif tag == AIRCRAFT_CHARACTERISTIC.STALL_SPEED:
        value = int(round(ms.getKmh(value)))
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
        largerIsBetter = False
    elif tag == AIRCRAFT_CHARACTERISTIC.OPTIMAL_MANEUVER_SPEED:
        value = wowpRound(ms.getKmh(value), 1)
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    elif tag == AIRCRAFT_CHARACTERISTIC.ROLL_MANEUVERABILITY:
        value = int(round(value))
        unit = ms.localizeMarket(CHARACTERISTICS_LOCALIZATION_MAP[tag])
    else:
        value = int(round(value))
    return (value, unit, largerIsBetter)
コード例 #18
0
    def __call__(self, account, ob, **kw):
        ob = ob or getObject(kw['idTypeList'])
        adaptedOB = super(IQuestDynDescriptionAdapter,
                          self).__call__(account, ob, **kw)
        for n in ('description', ):
            adaptedOB[n], _dynVar = adaptedOB[n]
            if adaptedOB[n].isupper():
                adaptedOB[n] = localizeLobby(adaptedOB[n], **_dynVar)
            else:
                adaptedOB[n] = adaptedOB[n].format(**_dynVar)

        if 'PACK_DUNKIRK_1595Q' in adaptedOB['tokens']:
            adaptedOB['awards'].extend([{
                'type': 'plane',
                'id': 1595
            }, {
                'type': 'camouflage',
                'id': -1362167281
            }, {
                'type': 'crewmember',
                'id': 4
            }, {
                'type': 'slots',
                'value': 1
            }])
        if 'PACK_DUNKIRK_5593Q' in adaptedOB['tokens']:
            adaptedOB['awards'].extend([{
                'type': 'plane',
                'id': 5593
            }, {
                'type': 'camouflage',
                'id': -1513881259
            }, {
                'type': 'crewmember',
                'id': 5
            }, {
                'type': 'slots',
                'value': 1
            }])
        return adaptedOB
コード例 #19
0
    def __call__(self, account, ob, **kw):
        ob = ob or getObject(kw['idTypeList'])
        adaptedOB = super(IQuestDescriptionAdapter, self).__call__(account, ob, **kw)
        for n in ('name',):
            adaptedOB[n], _dynVar = adaptedOB[n]
            if adaptedOB[n].isupper():
                adaptedOB[n] = localizeLobby(adaptedOB[n], **_dynVar)
                if adaptedOB[n].isupper():
                    adaptedOB[n] = localizeAchievements(adaptedOB[n])
            else:
                adaptedOB[n] = adaptedOB[n].format(**_dynVar)

        if 'names' in adaptedOB['maps']:
            import db.DBLogic
            from Helpers.i18n import localizeMap
            locationMap = {}
            for locationData in db.DBLogic.g_instance.getArenaList():
                locationMap[locationData.typeID] = locationData.typeName

            locationMap[-1] = 'map_undefined'
            names = (localizeMap(locationMap[mapID].upper()) for mapID in adaptedOB['maps']['names'])
            adaptedOB['maps']['names'] = list(names)
        return adaptedOB
コード例 #20
0
 def onSellPlaneResponse(self, resultID, aircraftID):
     """see AccountCommands.py for actual resultID format"""
     LOG_DEBUG('shop.sellPlaneResponse', resultID)
     if resultID == OPERATION_RETURN_CODE.SUCCESS:
         self.__lobbyCarouselHelper.removeCarouselAirplane(aircraftID)
         self.__lobbyCarouselHelper.inventory.syncAircraftsData(
             [aircraftID],
             partial(self.__sellPlaneResponse, resultID, aircraftID))
     else:
         if SyncOperationKeeper.getFlagStatus(FLAGS_CODE.SELL_PLANE):
             self.__lobby.call_1('shop.sellPlaneResponse', resultID)
             SyncOperationKeeper.stop(FLAGS_CODE.SELL_PLANE)
         if resultID == OPERATION_RETURN_CODE.FAILURE_MAX_SOLD_PLANES_PER_DAY_REACHED:
             msgHeader = localizeMessages('SYSTEM_MESSAGE_ERROR_HEADER')
             planeName = localizeAirplane(
                 db.DBLogic.g_instance.getAircraftName(aircraftID))
             msgData = localizeLobby('LOBBY_ERROR_SELL_LIMIT',
                                     plane=planeName)
             self.__lobby.showMessageBox(
                 msgHeader, msgData,
                 localizeOptions('SAVE_SETTINGS_BUTTON'), None, None, None,
                 False)
     return
コード例 #21
0
ファイル: Help.py プロジェクト: SEA-group/wowp_scripts
    def getData(self):
        """
        @return: _HelpVO , list[_HelpKeyVO]
        """
        self.__vo.battleDescription = localizeLobby(
            BATTLE_DESC_BY_TYPE_HUD_LOC_ID[self.__vo.intBattleType])
        self.__vo.curProfileName = INPUT_SYSTEM_PROFILES[
            InputMapping.g_instance.currentProfileType]
        keysControls = InputMapping.g_instance.getKeyControlsHelp(
            self.__DATA_KEY_CONTROLS.values())
        keys = list()
        for key, value in self.__DATA_KEY_CONTROLS.items():
            if value in keysControls:
                keysData = keysControls[value]['keys']
                fireAxisData = keysControls[value]['isFireAxis']
                axisSignData = keysControls[value]['axisSign']
                if not keysData:
                    LOG_WARNING('getData - keysControls is empty', key)
                else:
                    index = 0 if InputMapping.g_instance.currentProfileType in [
                        INPUT_SYSTEM_STATE.MOUSE, INPUT_SYSTEM_STATE.KEYBOARD
                    ] else len(keysData) - 1
                    keys.append(
                        _HelpKeyVO(key, keysData[index], fireAxisData[index],
                                   axisSignData[index]))
            else:
                LOG_WARNING(
                    'getData - CMD ID not in keysControls (key=%s,CMD ID=%s)' %
                    (key, str(value)))

        if InputMapping.g_instance.currentProfileType == INPUT_SYSTEM_STATE.MOUSE:
            keys.append(_HelpKeyVO('keyTurnsPlane', 'SETTINGS_MOUSE'))
        keys.append(_HelpKeyVO('keyExitChat', 'KEY_ESCAPE'))
        keys.append(_HelpKeyVO('keyIntoChat', 'KEY_RETURN'))
        keys.append(_HelpKeyVO('keyMessageToCommand', 'KEY_RETURN'))
        keys.append(_HelpKeyVO('keyMessageToAllPlayers', 'KEY_TAB'))
        return (self.__vo, keys)
コード例 #22
0
 def _updateBestRankData(self):
     avatarInfo = self._clientArena.avatarInfos[self._player.id]
     bestPlaneID = avatarInfo['bestRankPlaneID']
     planeData = self._db.getAircraftData(bestPlaneID)
     planeType = planeData.airplane.planeType
     bestRankID = avatarInfo['planeTypeRank'][planeType]
     logger.debug('Best rank id = {0}, planeID = {1}'.format(
         bestRankID, bestPlaneID))
     self._model.bestPlane = localizeAirplane(planeData.airplane.name)
     self._model.bestClass = localizeLobby(
         PREBATTLE_PLANE_TYPE_NAME[planeType])
     self._model.bestPlaneType = planeType
     self._model.bestRank = bestRankID
     self._model.bestTasks.clean()
     for objective in self._player.coachManager.getPlaneTypeObjectives(
             planeType):
         self._model.bestTasks.append(
             id=objective.id,
             title=objective.model.client.name.locale,
             description=objective.model.client.description.locale,
             progress=objective.progressCurrent,
             maxProgress=objective.progressMax,
             value=objective.progressRawValue,
             requiredValue=objective.getNextProgressBound())
コード例 #23
0
    def __onNewAvatarsInfo(self, argStr):
        newAvatarsList = translateDictThroughAnother(
            wgPickle.loads(wgPickle.FromServerToClient, argStr),
            NEW_AVATARS_INFO_KEYS_INVERT_DICT, True)
        LOG_INFO('__onNewAvatarsInfo', self.__ownerID,
                 [avatarData['avatarID'] for avatarData in newAvatarsList])
        LOG_INFO('INFO extUpgrades',
                 [(avatarData['avatarID'], avatarData['extUpgrades'])
                  for avatarData in newAvatarsList])
        for avatarData in newAvatarsList:
            avatarID = avatarData['avatarID']
            airplaneInfo = avatarData['airplaneInfo']
            currentOwner = None
            avatarData['planeTypeRank'] = dict(avatarData['planeTypeRank'])
            avatarPrevInfo = self.avatarInfos.get(avatarID, None)
            if not avatarPrevInfo:
                self.avatarInfos[avatarID] = avatarData
            else:
                if 'airplaneInfo' in avatarPrevInfo and avatarPrevInfo[
                        'airplaneInfo']['globalID'] != airplaneInfo['globalID']:
                    self.onBeforePlaneChanged(avatarID)
                    currentOwner = self.__destroyControllers(avatarPrevInfo)
                self.avatarInfos[avatarID].update(avatarData)
            extUpgrades = dict(avatarData['extUpgrades'])
            pilotUpgradeId = extUpgrades.get(LOGICAL_PART.PILOT, 1)
            controllersData = self.createControllers(
                avatarID,
                airplaneInfo['globalID'],
                camouflage=airplaneInfo['camouflage'],
                decals=airplaneInfo['decals'],
                pilotUpgradeId=pilotUpgradeId)
            if currentOwner:
                currentOwner.registerControllers(controllersData)
                self.onAvatarChangedPlane(currentOwner.id)
                if currentOwner == BigWorld.player():
                    self.onRecreateAvatar()
            avatarInfo = self.avatarInfos[avatarID]
            if avatarInfo['isNPC']:
                if avatarInfo['NPCType'] == ACNPCTypes.Bomber:
                    avatarInfo['playerName'] = localizeLobby(
                        avatarInfo['playerName'])
                elif avatarInfo['NPCType'] == ACNPCTypes.Defender:
                    avatarInfo['playerName'] = localizeHUD(
                        avatarInfo['playerName'])
            else:
                avatarInfo['playerName'] = getBotName(
                    avatarData['playerName'],
                    getAirplaneConfiguration(airplaneInfo['globalID']).planeID)
            avatarInfo['maxHealth'] = avatarData['maxHealth']
            avatarInfo['equipment'] = avatarData['equipment']
            if avatarID == BigWorld.player().id:
                LOG_TRACE('ClientArena: VOIP.initialize()')
                wasInit = bool(VOIP.api())
                VOIP.initialize(avatarInfo['databaseID'])
                if not wasInit:
                    VOIP.api().onEnterArenaScreen()

        self.__sortAvatars()
        for ids in self.__sortedAvatarsIDs.values():
            for i, avatarID in enumerate(ids):
                self.avatarInfos[avatarID]['airplaneInfo']['decals'][4] = i + 1
                self.avatarInfos[avatarID][
                    'modelManipulator'].surface.setDecalsByIds(
                        self.avatarInfos[avatarID]['airplaneInfo']
                        ['camouflage'],
                        self.avatarInfos[avatarID]['airplaneInfo']['decals'])

        teamMembers = dict()
        for avatarID, info in self.avatarInfos.iteritems():
            if info['teamIndex'] == BigWorld.player().teamIndex:
                teamMembers[info['databaseID']] = avatarID

        VOIP.api().unsubscribeMemberStateObserversByType(
            consts.VOIP.MEMBER_STATUS_OBSERVER_TYPES.ARENA_HUD)
        VOIP.api().subscribeMemberStateObserver(
            consts.VOIP.MEMBER_STATUS_OBSERVER_TYPES.ARENA_HUD, teamMembers)
        self.__avatarsDataReceived = True
        self.onNewAvatarsInfo(newAvatarsList)
        return
コード例 #24
0
    def __call__(self, account, ob, **kw):
        if ob is None:
            return
        else:
            cmpUpgrade = None
            cmpUpgradeID = None
            weaponConfig = None
            slotID = None
            upgrade = None
            upgradeID = None
            plane = None
            _, typeList = splitIDTypeList(kw['idTypeList'])
            if isinstance(ob, list):
                for idx in xrange(0, len(typeList)):
                    if typeList[idx] == 'plane':
                        plane = ob[idx]
                    elif typeList[idx] == 'upgrade':
                        if upgradeID is None:
                            upgrade = ob[idx]
                            upgradeID = kw['idTypeList'][idx][0]
                        else:
                            cmpUpgrade = ob[idx]
                            cmpUpgradeID = kw['idTypeList'][idx][0]
                    elif typeList[idx] == 'weaponConfig':
                        weaponConfig = ob[idx]
                    elif typeList[idx] == 'weaponslot':
                        slotID = ob[idx].id

            else:
                upgrade = ob
            adaptedOb = super(IModuleDescriptionAdapter,
                              self).__call__(account, ob, **kw)
            if upgrade is not None:
                outName, specs, planesSet, shortDescription = getUpgradeSpecs(
                    upgrade, plane.id if plane is not None else None,
                    cmpUpgrade, slotID, weaponConfig)
            elif weaponConfig is None or slotID is None or cmpUpgradeID is None or cmpUpgrade.type not in UPGRADE_TYPE.WEAPON:
                return adaptedOb
            adaptedOb['configComparison'] = []
            adaptedOb['requiredModules'] = []
            dbInstance = db.DBLogic.g_instance
            cmpGlobalID = 0
            if cmpUpgradeID is not None:
                import BWPersonality
                lch = BWPersonality.g_lobbyCarouselHelper
                lobbyAirplane = lch.getCarouselAirplane(
                    plane.id) or getLobbyAirplane(plane.id)
                upgradeName = upgrade.name if upgrade is not None else None
                cmpName = cmpUpgrade.name if cmpUpgrade is not None else None
                if lobbyAirplane is not None:
                    upgrades = [
                        x['name']
                        for x in lobbyAirplane.modules.getInstalled()
                    ]
                    weaponList = lobbyAirplane.weapons.getInstalledWeaponsList(
                    )
                    if not upgrades:
                        planeConfig = airplanesConfigurations[
                            airplanesDefaultConfigurations[plane.id]]
                        upgrades = planeConfig.modules
                        weaponList = planeConfig.weaponSlots
                    cmpGlobalID, newUpgrades, newWeaponList = adjustPlaneConfig(
                        lobbyAirplane.planeID, upgrades, weaponList,
                        upgradeName, cmpName, slotID, weaponConfig)
                    oldGlobalID = db.DBLogic.createGlobalID(
                        lobbyAirplane.planeID, upgrades, weaponList)
                    requiredModules = getDiffModules(oldGlobalID, cmpGlobalID,
                                                     upgradeName,
                                                     (slotID, weaponConfig))
                    for upgradeName in requiredModules:
                        reqUpgrade = dbInstance.getUpgradeByName(upgradeName)
                        name, _, _, _ = getUpgradeSpecs(
                            reqUpgrade,
                            plane.id if plane is not None else None, None,
                            slotID, weaponConfig)
                        adaptedOb['requiredModules'].append(name)

                    cmpLobbyAirplane = lobbyAirplane.previewPreset(
                        newUpgrades, [{
                            'slot': x[0],
                            'configuration': x[1]
                        } for x in newWeaponList])
                    comparisonSpecs = cmpLobbyAirplane.getGroupedDescriptionFields(
                        True, lobbyAirplane, cmpGlobalID, False)
                    for el in comparisonSpecs:
                        for i, j in el.__dict__.iteritems():
                            if i != 'main':
                                continue
                            specObj = None
                            if j is not None:
                                specObj = j.__dict__
                            if specObj and specObj['comparisonValue']:
                                adaptedOb['configComparison'].append(specObj)

            if not adaptedOb['configComparison']:
                adaptedOb['configComparison'] = None
            if upgrade is not None:
                gunData = dbInstance.getGunData(upgrade.name)
                if gunData is None:
                    moduleType = localizeComponents(
                        MODULE_GROUP_NAME.get(
                            getattr(upgrade, 'moduleGroup', None),
                            MODULE_GROUP_NAME[upgrade.type]))
                else:
                    profileName = gunData.gunProfileName.upper()
                    if profileName == 'MACHINEGUN_SMALL':
                        profileName = 'MACHINE_GUN_LOW'
                    else:
                        profileName = profileName.replace(
                            'MACHINEGUN_SMALL', 'MACHINE_GUN')
                    profileName = profileName.replace('CANNON_HIGH_VULCAN',
                                                      'CANNON_HIGH')
                    moduleType = localizeLobby(
                        '{0}_DESCRIPTION'.format(profileName))
                adaptedOb['name'] = '{0} {1}'.format(moduleType, outName)
                adaptedOb['type'] = upgrade.type
                adaptedOb['description'] = shortDescription
                if hasattr(upgrade, 'level'):
                    adaptedOb['level'] = upgrade.level
                else:
                    adaptedOb['level'] = 0
                adaptedOb['specsList'] = [spec.__dict__ for spec in specs]
                adaptedOb['airplanesList'] = map(
                    lambda x: localizeAirplane(dbInstance.getAircraftName(x)),
                    filter(lambda x: x in planesSet,
                           dbInstance.getShopPlaneList()))
                adaptedOb['suitablePlaneIDs'] = list(planesSet)
                adaptedOb['icoPath'] = get48ModuleIconPath(
                    getattr(upgrade, 'iconPath', ICON_MODULE_DEFAULT_PATH))
                isArmoredTargetEffective = EFFECTIVE_AGAINST_ARMORED_OBJECTS.NORMAL
                if upgrade.type in [UPGRADE_TYPE.BOMB, UPGRADE_TYPE.ROCKET]:
                    isArmoredTargetEffective = EFFECTIVE_AGAINST_ARMORED_OBJECTS.IS_EFFECTIVE
                if upgrade.type == UPGRADE_TYPE.GUN:
                    isArmoredTargetEffective = EFFECTIVE_AGAINST_ARMORED_OBJECTS.NOT_EFFECTIVE if gunData.caliber < MIN_CALIBER else EFFECTIVE_AGAINST_ARMORED_OBJECTS.LOW_EFFECTIVE
                adaptedOb['armoredTargetEffective'] = isArmoredTargetEffective
                adaptedOb['buyAvailable'] = getattr(upgrade, 'buyAvailable',
                                                    True)
                if upgrade.type == UPGRADE_TYPE.GUN:
                    compData = gunData
                elif upgrade.type in UPGRADE_TYPE.SHELL:
                    compData = dbInstance.getComponentByName(
                        UPGRADE_TYPE_TO_COMPONENT_TYPE[upgrade.type],
                        upgrade.name)
                elif upgrade.type == UPGRADE_TYPE.TURRET:
                    turret = dbInstance.getTurretData(upgrade.name)
                    compData = dbInstance.getGunData(turret.hangarSimilarGun)
                else:
                    compData = None
                if compData is not None and hasattr(compData, 'tag'):
                    adaptedOb['propsList'] = [[localizeLobby(x.name), x.type]
                                              for x in compData.tag]
                else:
                    adaptedOb['propsList'] = []
                adaptedOb['cmpGlobalID'] = cmpGlobalID
            else:
                adaptedOb['name'] = ''
                adaptedOb['type'] = -1
                adaptedOb['description'] = ''
                adaptedOb['level'] = 0
                adaptedOb['specsList'] = []
                adaptedOb['airplanesList'] = []
                adaptedOb['suitablePlaneIDs'] = []
                adaptedOb['icoPath'] = ''
                adaptedOb['armoredTargetEffective'] = False
                adaptedOb['buyAvailable'] = False
                adaptedOb['cmpGlobalID'] = 0
            return adaptedOb
コード例 #25
0
 def setMessage(self, message):
     self.call_1('setWaitingMessage', localizeLobby(message))
コード例 #26
0
 def __call__(self, account, ob, **kw):
     from Helpers.i18n import localizeLobby
     adaptedOB = super(ILocalizationLanguageAdapter,
                       self).__call__(account, ob, **kw)
     adaptedOB['lang'] = localizeLobby('LOCALIZATION_LANGUAGE')
     return adaptedOB
コード例 #27
0
ファイル: cache.py プロジェクト: SEA-group/wowp_scripts
def deleteCache():
    memCacheUtility.deleteCache()
    cacheUtility.deleteCache()
    init()
    setToCache(EMPTY_IDTYPELIST, 'ILocalizationLanguage',
               dict(lang=localizeLobby('LOCALIZATION_LANGUAGE')))
コード例 #28
0
 def __getUpgradeGroupName(self, aircraftID, upgrade):
     if upgrade.type in UPGRADE_TYPE.MODULES:
         return localizeComponents(UPGRADE_TYPE.DESCRIPTION_MAP[upgrade.type])
     if upgrade.type in UPGRADE_TYPE.WEAPON:
         return localizeLobby('AMMO_SLOT_' + self.__db.getSlotsWeaponUpgrade(aircraftID, upgrade)[0].name)
コード例 #29
0
 def localizeMarket(self, id):
     return localizeLobby(
         self.__LOC_MARKET_TABLE[id][self.__measurementSystem])
コード例 #30
0
    def load(self, src, pList, settings, forceLoad):
        src.measurementSystem.data = [ localizeOptions(''.join(['SETTINGS_COMMON_MEASUREMENT_', ms])) for ms in MEASUREMENT_SYSTEMS ]
        src.measurementSystem.index = settings.getGameUI()['measurementSystem']
        src.heightMode.index = settings.getGameUI()['heightMode']
        src.heightMode.data = [localizeOptions('battleui/schema_height_v1'), localizeOptions('battleui/schema_height_v2'), localizeOptions('SETTINGS_ALTIMETER_DROPDOWN_MENU_VARIANT_BOTH')]
        for fKey, sKey in GAME_SETTINGS_MAIN_UI_DATA.iteritems():
            setattr(src, fKey, settings.getGameUI()[sKey])

        for fKey, sKey in GAME_SETTINGS_MAIN_DATA.iteritems():
            setattr(src, fKey, getattr(settings, sKey))

        for flashKey, SettingsKey in XMPP_CHAT_KEYS.iteritems():
            setattr(src, flashKey, settings.getXmppChatSettings()[SettingsKey])

        for key in Settings.REPLAY_KEYS.iterkeys():
            setattr(src, key, settings.getReplaySettings()[key])

        src.pathSaveBattleReplays = settings.getReplaysDirectory()
        src.pathSaveScreenshots = settings.getScreenShotDirectory()
        import BWPersonality
        import _warAction
        warAction = BWPersonality.gameParams.get('warAction', {})
        warActionEnabled = warAction.get('enabled', False)
        warActionState = warAction.get('state', WAR_STATE.UNDEFINED)
        src.radarSettings.radarState.data = [localizeOptions('SETTINGS_MARKERS_ZOOM_CLOSE'), localizeOptions('SETTINGS_MARKERS_ZOOM_MEDIUM'), localizeOptions('SETTINGS_MARKERS_ZOOM_FAR')]
        src.radarSettings.radarState.index = settings.getGameUI()['radarState']
        src.radarSettings.radarSize.data = [localizeOptions('SETTINGS_MARKERS_SMALL_SIZE'), localizeOptions('SETTINGS_MARKERS_MEDIUM_SIZE'), localizeOptions('SETTINGS_MARKERS_BIG_SIZE')]
        src.radarSettings.radarSize.index = settings.getGameUI()['radarSize']
        src.radarSettings.radarLockRotation.data = [localizeOptions('SETTINGS_ROTATE_RADAR-MINIMAP'), localizeOptions('SETTINGS_CHECKBOX_ROTATE_PLAYER_MINIMAP_FIXED')]
        src.radarSettings.radarLockRotation.index = settings.getGameUI()['radarLockRotation']
        src.radarSettings.showDefendersActive = settings.getGameUI()['showDefendersActive']
        src.attitudeIndicatorSettings.attitudeMode.data = [localizeOptions('SETTINGS_CHECKBOX_SHOW_ROLL_PLANE'), localizeOptions('SETTINGS_CHECKBOX_SHOW_ROLL_HORIZON')]
        src.attitudeIndicatorSettings.attitudeMode.index = settings.getGameUI()['attitudeMode']
        if warActionEnabled and warActionState not in [WAR_STATE.UNDEFINED, WAR_STATE.OFF, WAR_STATE.END]:
            return
        else:
            count = 0
            isEnableLobbyUI = gui.WindowsManager.g_windowsManager.getLobbyUI() is not None
            if isEnableLobbyUI:
                ad = IHangarSpacesAdapter('ICurrentHangarSpace')
                ob = ad(None, None)
                for i, spaceID in enumerate(ob['spaces']):
                    if DB.g_instance.userHangarSpaces.get(spaceID, None) is not None:
                        count += 1

            src.lobbySettings.isEnabled = (BWPersonality.g_initPlayerInfo.useGUIType == GUI_TYPES.PREMIUM or count > 1) and isEnableLobbyUI
            if src.lobbySettings.isEnabled:
                spaceData = DB.g_instance.userHangarSpaces.get(BWPersonality.g_settings.hangarSpaceSettings['spaceID'], None)
                src.lobbySettings.isEnabled = not spaceData.get('isModal', False)
            if src.lobbySettings.isEnabled:
                currentSpace = settings.getHangarSpaceSettings(BWPersonality.g_initPlayerInfo.databaseID)
                index = 0
                for spaceID in ob['spaces']:
                    spaceData = DB.g_instance.userHangarSpaces.get(spaceID, None)
                    skip = False
                    for ui in _warAction.WarAction.uiConfig.hangar:
                        skip = ui.name == spaceData['spaceID']
                        if skip:
                            break

                    if skip:
                        continue
                    if spaceData is not None:
                        kv = KeyValue()
                        kv.key = spaceID
                        kv.label = localizeLobby(spaceData['loc'])
                        src.lobbySettings.previewImg.append(spaceData['img'])
                        src.lobbySettings.hangar.data.append(kv)
                        if spaceID == currentSpace['spaceID']:
                            src.lobbySettings.hangar.index = index
                        index += 1

            self._isLoaded = True
            return