Пример #1
0
    def __onSettingsChanged(self, diff):
        addSettings = {}
        for item in diff:
            if item in _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES:
                key = _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES[item]
                self.__userPreferences[key] = bool(diff[item])
            elif item in _ADDITIONAL_USER_SETTINGS:
                addSettings[item] = diff[item]

        if addSettings:
            enabled = bool(
                addSettings.get(BATTLE_EVENTS.SHOW_IN_BATTLE,
                                self.__enabled)) and self.__arenaDP is not None
            self.__isWithRibbonName = bool(
                g_settingsCore.getSetting(BATTLE_EVENTS.EVENT_NAME))
            self.__isWithVehName = bool(
                g_settingsCore.getSetting(BATTLE_EVENTS.VEHICLE_INFO))
            self.__isExtendedAnim = g_settingsCore.getSetting(
                GRAPHICS.RENDER_PIPELINE) == _EXTENDED_RENDER_PIPELINE
            if self.__enabled != enabled:
                self.__enabled = enabled
                if self.__enabled:
                    self.__ribbonsAggregator.start()
                else:
                    self.__ribbonsAggregator.stop()
            self.as_setSettingsS(self.__enabled, self.__isExtendedAnim,
                                 self.__isWithRibbonName, self.__isWithVehName)
        return
Пример #2
0
 def __getVideoSettings(self):
     settings = {}
     settings["monitor"] = {
         "current": self.resolutions.monitorIndex,
         "real": self.resolutions.realMonitorIndex,
         "options": self.resolutions.monitorsList,
     }
     settings["fullScreen"] = g_settingsCore.getSetting("fullScreen")
     settings["windowSize"] = {
         "current": g_settingsCore.getSetting("windowSize"),
         "options": g_settingsCore.options.getSetting("windowSize").getOptions(),
     }
     settings["resolution"] = {
         "current": g_settingsCore.getSetting("resolution"),
         "options": g_settingsCore.options.getSetting("resolution").getOptions(),
     }
     settings["refreshRate"] = {
         "current": g_settingsCore.getSetting("refreshRate"),
         "options": g_settingsCore.options.getSetting("refreshRate").getOptions(),
     }
     settings["interfaceScale"] = {
         "current": g_settingsCore.getSetting("interfaceScale"),
         "options": g_settingsCore.options.getSetting("interfaceScale").getOptions(),
     }
     return settings
Пример #3
0
 def __onSettingsChanged(self, diff):
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if 'dynamicCamera' in diff or 'horStabilizationSnp' in diff:
         dynamicCamera = g_settingsCore.getSetting('dynamicCamera')
         horStabilizationSnp = g_settingsCore.getSetting(
             'horStabilizationSnp')
         self.enableDynamicCamera(dynamicCamera, horStabilizationSnp)
Пример #4
0
 def handleKey(self, key, isDown):
     if key in (Keys.KEY_MINUS,
                Keys.KEY_NUMPADMINUS) and BigWorld.isKeyDown(
                    Keys.KEY_RSHIFT
                ) and isDown and not g_settingsCore.getSetting(
                    GRAPHICS.DRR_AUTOSCALER_ENABLED):
         result = drr_scale.stepDown()
         if result is not None and self.__messages:
             self.__messages.showVehicleMessage(
                 'DRR_SCALE_STEP_DOWN',
                 {'scale': drr_scale.getPercent(result)})
             self.onDRRChanged()
         return True
     elif key in (Keys.KEY_EQUALS, Keys.KEY_ADD) and BigWorld.isKeyDown(
             Keys.KEY_RSHIFT) and isDown and not g_settingsCore.getSetting(
                 GRAPHICS.DRR_AUTOSCALER_ENABLED):
         result = drr_scale.stepUp()
         if result is not None and self.__messages:
             self.__messages.showVehicleMessage(
                 'DRR_SCALE_STEP_UP',
                 {'scale': drr_scale.getPercent(result)})
             self.onDRRChanged()
         return True
     else:
         return False
Пример #5
0
    def _populate(self):
        super(BattleRibbonsPanel, self)._populate()
        self.__enabled = bool(
            g_settingsCore.getSetting(
                BATTLE_EVENTS.SHOW_IN_BATTLE)) and self.__arenaDP is not None
        self.__isWithRibbonName = bool(
            g_settingsCore.getSetting(BATTLE_EVENTS.EVENT_NAME))
        self.__isWithVehName = bool(
            g_settingsCore.getSetting(BATTLE_EVENTS.VEHICLE_INFO))
        self.__isExtendedAnim = g_settingsCore.getSetting(
            GRAPHICS.RENDER_PIPELINE) == _EXTENDED_RENDER_PIPELINE
        for settingName in _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES:
            key = _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES[
                settingName]
            self.__userPreferences[key] = bool(
                g_settingsCore.getSetting(settingName))

        self.__setupView()
        g_settingsCore.onSettingsChanged += self.__onSettingsChanged
        g_eventBus.addListener(GameEvent.GUI_VISIBILITY,
                               self.__onGUIVisibilityChanged,
                               scope=EVENT_BUS_SCOPE.BATTLE)
        if self.__enabled:
            self.__ribbonsAggregator.start()
        return
Пример #6
0
 def __getVideoSettings(self):
     settings = {}
     settings['monitor'] = {
         'current': self.resolutions.monitorIndex,
         'real': self.resolutions.realMonitorIndex,
         'options': self.resolutions.monitorsList
     }
     settings['fullScreen'] = g_settingsCore.getSetting('fullScreen')
     settings['windowSize'] = {
         'current': g_settingsCore.getSetting('windowSize'),
         'options':
         g_settingsCore.options.getSetting('windowSize').getOptions()
     }
     settings['resolution'] = {
         'current': g_settingsCore.getSetting('resolution'),
         'options':
         g_settingsCore.options.getSetting('resolution').getOptions()
     }
     settings['refreshRate'] = {
         'current':
         g_settingsCore.getSetting('refreshRate'),
         'options':
         g_settingsCore.options.getSetting('refreshRate').getOptions()
     }
     settings['interfaceScale'] = {
         'current':
         g_settingsCore.getSetting('interfaceScale'),
         'options':
         g_settingsCore.options.getSetting('interfaceScale').getOptions()
     }
     return settings
Пример #7
0
 def __accs_onSettingsChanged(self, diff):
     self.colorManager.update()
     if 'isColorBlind' in diff:
         isColorBlind = diff['isColorBlind']
         self.__leftPlayersPanel.defineColorFlags(isColorBlind=isColorBlind)
         self.__rightPlayersPanel.defineColorFlags(
             isColorBlind=isColorBlind)
         self.updateFlagsColor()
         self.__markersManager.updateMarkers()
         self.__minimap.updateEntries()
     if 'enemy' in diff or 'dead' in diff or 'ally' in diff:
         markers = {
             'enemy': g_settingsCore.getSetting('enemy'),
             'dead': g_settingsCore.getSetting('dead'),
             'ally': g_settingsCore.getSetting('ally')
         }
         self.__markersManager.setMarkerSettings(markers)
         self.__markersManager.updateMarkerSettings()
     if 'showVehiclesCounter' in diff:
         self.isVehicleCountersVisible = diff['showVehiclesCounter']
         self.__fragCorrelation.showVehiclesCounter(
             self.isVehicleCountersVisible)
     if 'interfaceScale' in diff:
         self.__onRecreateDevice()
     self.__arenaCtrl.invalidateGUI()
     self.__arenaCtrl.invalidateArenaInfo()
Пример #8
0
 def __readCfg(self, dataSec):
     if not dataSec:
         LOG_WARNING('Invalid section <sniperMode/camera> in avatar_input_handler.xml')
     self.__baseCfg = dict()
     bcfg = self.__baseCfg
     bcfg['keySensitivity'] = readFloat(dataSec, 'keySensitivity', 0, 10, 0.005)
     bcfg['sensitivity'] = readFloat(dataSec, 'sensitivity', 0, 10, 0.005)
     bcfg['scrollSensitivity'] = readFloat(dataSec, 'scrollSensitivity', 0, 10, 0.005)
     zooms = dataSec.readString('zooms', '2 4 8 16 25')
     bcfg['zooms'] = [ float(x) for x in zooms.split() ]
     ds = Settings.g_instance.userPrefs[Settings.KEY_CONTROL_MODE]
     if ds is not None:
         ds = ds['sniperMode/camera']
     self.__userCfg = dict()
     ucfg = self.__userCfg
     ucfg['horzInvert'] = g_settingsCore.getSetting('mouseHorzInvert')
     ucfg['vertInvert'] = g_settingsCore.getSetting('mouseVertInvert')
     ucfg['increasedZoom'] = g_settingsCore.getSetting('increasedZoom')
     maxZoom = bcfg['zooms'][-1] if ucfg['increasedZoom'] else bcfg['zooms'][:3][-1]
     ucfg['zoom'] = readFloat(ds, 'zoom', 0.0, maxZoom, bcfg['zooms'][0])
     ucfg['sniperModeByShift'] = g_settingsCore.getSetting('sniperModeByShift')
     ucfg['keySensitivity'] = readFloat(ds, 'keySensitivity', 0.0, 10.0, 1.0)
     ucfg['sensitivity'] = readFloat(ds, 'sensitivity', 0.0, 10.0, 1.0)
     ucfg['scrollSensitivity'] = readFloat(ds, 'scrollSensitivity', 0.0, 10.0, 1.0)
     self.__cfg = dict()
     cfg = self.__cfg
     cfg['keySensitivity'] = bcfg['keySensitivity']
     cfg['sensitivity'] = bcfg['sensitivity']
     cfg['scrollSensitivity'] = bcfg['scrollSensitivity']
     cfg['zooms'] = bcfg['zooms']
     cfg['keySensitivity'] *= ucfg['keySensitivity']
     cfg['sensitivity'] *= ucfg['sensitivity']
     cfg['scrollSensitivity'] *= ucfg['scrollSensitivity']
     cfg['horzInvert'] = ucfg['horzInvert']
     cfg['vertInvert'] = ucfg['vertInvert']
     cfg['zoom'] = ucfg['zoom']
     cfg['increasedZoom'] = ucfg['increasedZoom']
     cfg['sniperModeByShift'] = ucfg['sniperModeByShift']
     dynamicsSection = dataSec['dynamics']
     self.__impulseOscillator = createOscillatorFromSection(dynamicsSection['impulseOscillator'])
     self.__movementOscillator = createOscillatorFromSection(dynamicsSection['movementOscillator'])
     self.__noiseOscillator = createOscillatorFromSection(dynamicsSection['randomNoiseOscillatorSpherical'])
     self.__dynamicCfg.readImpulsesConfig(dynamicsSection)
     self.__dynamicCfg['accelerationSensitivity'] = readVec3(dynamicsSection, 'accelerationSensitivity', (-1000, -1000, -1000), (1000, 1000, 1000), (0.5, 0.5, 0.5))
     accelerationThreshold = readFloat(dynamicsSection, 'accelerationThreshold', 0.0, 1000.0, 0.1)
     self.__dynamicCfg['accelerationThreshold'] = accelerationThreshold
     self.__dynamicCfg['accelerationMax'] = readFloat(dynamicsSection, 'accelerationMax', 0.0, 1000.0, 0.1)
     self.__dynamicCfg['maxShotImpulseDistance'] = readFloat(dynamicsSection, 'maxShotImpulseDistance', 0.0, 1000.0, 10.0)
     self.__dynamicCfg['maxExplosionImpulseDistance'] = readFloat(dynamicsSection, 'maxExplosionImpulseDistance', 0.0, 1000.0, 10.0)
     self.__dynamicCfg['impulsePartToRoll'] = readFloat(dynamicsSection, 'impulsePartToRoll', 0.0, 1000.0, 0.3)
     self.__dynamicCfg['pivotShift'] = Vector3(0, readFloat(dynamicsSection, 'pivotShift', -1000, 1000, -0.5), 0)
     self.__dynamicCfg['aimMarkerDistance'] = readFloat(dynamicsSection, 'aimMarkerDistance', -1000, 1000, 1.0)
     rawZoomExposure = dynamicsSection.readString('zoomExposure', '0.6 0.5 0.4 0.3 0.2')
     self.__dynamicCfg['zoomExposure'] = [ float(x) for x in rawZoomExposure.split() ]
     accelerationFilter = mathUtils.RangeFilter(self.__dynamicCfg['accelerationThreshold'], self.__dynamicCfg['accelerationMax'], 100, mathUtils.SMAFilter(SniperCamera._FILTER_LENGTH))
     maxAccelerationDuration = readFloat(dynamicsSection, 'maxAccelerationDuration', 0.0, 10000.0, SniperCamera._DEFAULT_MAX_ACCELERATION_DURATION)
     self.__accelerationSmoother = AccelerationSmoother(accelerationFilter, maxAccelerationDuration)
     return
Пример #9
0
 def __readCfg(self, dataSec):
     if not dataSec:
         LOG_WARNING('Invalid section <sniperMode/camera> in avatar_input_handler.xml')
     self.__baseCfg = dict()
     bcfg = self.__baseCfg
     bcfg['keySensitivity'] = readFloat(dataSec, 'keySensitivity', 0, 10, 0.005)
     bcfg['sensitivity'] = readFloat(dataSec, 'sensitivity', 0, 10, 0.005)
     bcfg['scrollSensitivity'] = readFloat(dataSec, 'scrollSensitivity', 0, 10, 0.005)
     zooms = dataSec.readString('zooms', '2 4 8 16 25')
     bcfg['zooms'] = [ float(x) for x in zooms.split() ]
     ds = Settings.g_instance.userPrefs[Settings.KEY_CONTROL_MODE]
     if ds is not None:
         ds = ds['sniperMode/camera']
     self.__userCfg = dict()
     ucfg = self.__userCfg
     ucfg['horzInvert'] = g_settingsCore.getSetting('mouseHorzInvert')
     ucfg['vertInvert'] = g_settingsCore.getSetting('mouseVertInvert')
     ucfg['increasedZoom'] = g_settingsCore.getSetting('increasedZoom')
     maxZoom = bcfg['zooms'][-1] if ucfg['increasedZoom'] else bcfg['zooms'][:3][-1]
     ucfg['zoom'] = readFloat(ds, 'zoom', 0.0, maxZoom, bcfg['zooms'][0])
     ucfg['sniperModeByShift'] = g_settingsCore.getSetting('sniperModeByShift')
     ucfg['keySensitivity'] = readFloat(ds, 'keySensitivity', 0.0, 10.0, 1.0)
     ucfg['sensitivity'] = readFloat(ds, 'sensitivity', 0.0, 10.0, 1.0)
     ucfg['scrollSensitivity'] = readFloat(ds, 'scrollSensitivity', 0.0, 10.0, 1.0)
     self.__cfg = dict()
     cfg = self.__cfg
     cfg['keySensitivity'] = bcfg['keySensitivity']
     cfg['sensitivity'] = bcfg['sensitivity']
     cfg['scrollSensitivity'] = bcfg['scrollSensitivity']
     cfg['zooms'] = bcfg['zooms']
     cfg['keySensitivity'] *= ucfg['keySensitivity']
     cfg['sensitivity'] *= ucfg['sensitivity']
     cfg['scrollSensitivity'] *= ucfg['scrollSensitivity']
     cfg['horzInvert'] = ucfg['horzInvert']
     cfg['vertInvert'] = ucfg['vertInvert']
     cfg['zoom'] = ucfg['zoom']
     cfg['increasedZoom'] = ucfg['increasedZoom']
     cfg['sniperModeByShift'] = ucfg['sniperModeByShift']
     dynamicsSection = dataSec['dynamics']
     self.__impulseOscillator = createOscillatorFromSection(dynamicsSection['impulseOscillator'])
     self.__movementOscillator = createOscillatorFromSection(dynamicsSection['movementOscillator'])
     self.__noiseOscillator = createOscillatorFromSection(dynamicsSection['randomNoiseOscillatorSpherical'])
     self.__dynamicCfg.readImpulsesConfig(dynamicsSection)
     self.__dynamicCfg['accelerationSensitivity'] = readVec3(dynamicsSection, 'accelerationSensitivity', (-1000, -1000, -1000), (1000, 1000, 1000), (0.5, 0.5, 0.5))
     accelerationThreshold = readFloat(dynamicsSection, 'accelerationThreshold', 0.0, 1000.0, 0.1)
     self.__dynamicCfg['accelerationThreshold'] = accelerationThreshold
     self.__dynamicCfg['accelerationMax'] = readFloat(dynamicsSection, 'accelerationMax', 0.0, 1000.0, 0.1)
     self.__dynamicCfg['maxShotImpulseDistance'] = readFloat(dynamicsSection, 'maxShotImpulseDistance', 0.0, 1000.0, 10.0)
     self.__dynamicCfg['maxExplosionImpulseDistance'] = readFloat(dynamicsSection, 'maxExplosionImpulseDistance', 0.0, 1000.0, 10.0)
     self.__dynamicCfg['impulsePartToRoll'] = readFloat(dynamicsSection, 'impulsePartToRoll', 0.0, 1000.0, 0.3)
     self.__dynamicCfg['pivotShift'] = Vector3(0, readFloat(dynamicsSection, 'pivotShift', -1000, 1000, -0.5), 0)
     self.__dynamicCfg['aimMarkerDistance'] = readFloat(dynamicsSection, 'aimMarkerDistance', -1000, 1000, 1.0)
     rawZoomExposure = dynamicsSection.readString('zoomExposure', '0.6 0.5 0.4 0.3 0.2')
     self.__dynamicCfg['zoomExposure'] = [ float(x) for x in rawZoomExposure.split() ]
     accelerationFilter = mathUtils.RangeFilter(self.__dynamicCfg['accelerationThreshold'], self.__dynamicCfg['accelerationMax'], 100, mathUtils.SMAFilter(SniperCamera._FILTER_LENGTH))
     maxAccelerationDuration = readFloat(dynamicsSection, 'maxAccelerationDuration', 0.0, 10000.0, SniperCamera._DEFAULT_MAX_ACCELERATION_DURATION)
     self.__accelerationSmoother = AccelerationSmoother(accelerationFilter, maxAccelerationDuration)
     return
Пример #10
0
 def _makeHash(self, index, playerFullName, vInfoVO, vStatsVO, ctx, playerAccountID, inviteSendingProhibited, invitesReceivingProhibited, isEnemy):
     vehicleID = vInfoVO.vehicleID
     vTypeVO = vInfoVO.vehicleType
     playerVO = vInfoVO.player
     dbID = playerVO.accountDBID
     user = self._userGetter(dbID)
     if user:
         roster = _getRoster(user)
         isMuted = user.isMuted()
         isIgnored = user.isIgnored()
     else:
         isIgnored = False
         roster = 0
         isMuted = False
     squadIndex = ctx.getSquadIndex(vInfoVO)
     himself = ctx.isPlayerSelected(vInfoVO)
     isActionsDisabled = vInfoVO.isActionsDisabled()
     isInvitesForbidden = inviteSendingProhibited or himself or playerVO.forbidInBattleInvitations or isIgnored or isActionsDisabled
     isPlayerInSquad = playerAccountID == dbID and vInfoVO.isSquadMan()
     squadNoSound = False
     if isPlayerInSquad and self._arenaVisitor.gui.isRandomBattle() and not IS_CHINA and not BattleReplay.isPlaying():
         squadNoSound = not g_settingsCore.getSetting(SOUND.VOIP_ENABLE)
     return {'position': index + 1,
      'label': playerFullName,
      'userName': playerVO.getPlayerLabel(),
      'icon': vTypeVO.iconPath,
      'vehicle': vTypeVO.shortName,
      'vehicleState': vInfoVO.vehicleStatus,
      'frags': vStatsVO.frags,
      'squad': squadIndex,
      'clanAbbrev': playerVO.clanAbbrev,
      'speaking': self._isSpeaking(dbID),
      'uid': dbID,
      'himself': himself,
      'roster': roster,
      'muted': isMuted,
      'vipKilled': 0,
      'VIP': False,
      'teamKiller': ctx.isTeamKiller(vInfoVO),
      'denunciations': ctx.denunciationsLeft,
      'isPostmortemView': ctx.isPostmortemView(vInfoVO),
      'level': vTypeVO.level if g_settingsCore.getSetting('ppShowLevels') else 0,
      'vehAction': ctx.getAction(vInfoVO),
      'team': vInfoVO.team,
      'vehId': vehicleID,
      'isIGR': vTypeVO.isPremiumIGR,
      'igrType': playerVO.igrType,
      'igrLabel': vInfoVO.getIGRLabel(),
      'isEnabledInRoaming': self._isMenuEnabled(dbID),
      'region': self._regionGetter(dbID),
      'isPrebattleCreator': playerVO.isPrebattleCreator,
      'dynamicSquad': self._getDynamicSquadData(dbID, playerAccountID, isInSquad=squadIndex > 0, inviteSendingProhibited=isInvitesForbidden, invitesReceivingProhibited=invitesReceivingProhibited),
      'vehicleType': vTypeVO.getClassName(),
      'teamColorScheme': 'vm_enemy' if isEnemy else 'vm_ally',
      'vLevel': vTypeVO.level,
      'contextMenuDisabled': isActionsDisabled or self._isReplayPlaying,
      'squadNoSound': squadNoSound}
Пример #11
0
 def __updateSettings(self):
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     from account_helpers.settings_core import settings_constants
     setting = g_settingsCore.options.getSetting(settings_constants.GAME.SHOW_VEH_MODELS_ON_MAP)
     value = setting.get()
     valueName = setting.VEHICLE_MODELS_TYPES[value]
     self.__permanentNamesShow = valueName == setting.OPTIONS.ALWAYS
     self.__onAltNamesShow = valueName == setting.OPTIONS.ALT
     self.__showDirectionLine = g_settingsCore.getSetting(settings_constants.GAME.SHOW_VECTOR_ON_MAP)
     self.__showSectorLine = g_settingsCore.getSetting(settings_constants.GAME.SHOW_SECTOR_ON_MAP)
Пример #12
0
 def __getVideoSettings(self):
     settings = {}
     settings['monitor'] = {'current': self.resolutions.monitorIndex,
      'real': self.resolutions.realMonitorIndex,
      'options': self.resolutions.monitorsList}
     settings['fullScreen'] = g_settingsCore.getSetting('fullScreen')
     settings['windowSize'] = {'current': g_settingsCore.getSetting('windowSize'),
      'options': g_settingsCore.options.getSetting('windowSize').getOptions()}
     settings['resolution'] = {'current': g_settingsCore.getSetting('resolution'),
      'options': g_settingsCore.options.getSetting('resolution').getOptions()}
     settings['refreshRate'] = {'current': g_settingsCore.getSetting('refreshRate'),
      'options': g_settingsCore.options.getSetting('refreshRate').getOptions()}
     return settings
Пример #13
0
 def updateColors(self):
     """
     update color based on the current player account.
     :param place: '' for battle, 'hangar' when in hangar
     :return:
     """
     self.__changeColor({'isColorBlind': g_settingsCore.getSetting('isColorBlind')})
Пример #14
0
    def _populate(self):
        super(BattleRibbonsPanel, self)._populate()
        self.__enabled = bool(g_settingsCore.getSetting(BATTLE_EVENTS.SHOW_IN_BATTLE)) and self.__arenaDP is not None
        self.__isWithRibbonName = bool(g_settingsCore.getSetting(BATTLE_EVENTS.EVENT_NAME))
        self.__isWithVehName = bool(g_settingsCore.getSetting(BATTLE_EVENTS.VEHICLE_INFO))
        self.__isExtendedAnim = g_settingsCore.getSetting(GRAPHICS.RENDER_PIPELINE) == _EXTENDED_RENDER_PIPELINE
        for settingName in _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES:
            key = _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES[settingName]
            self.__userPreferences[key] = bool(g_settingsCore.getSetting(settingName))

        self.__setupView()
        g_settingsCore.onSettingsChanged += self.__onSettingsChanged
        g_eventBus.addListener(GameEvent.GUI_VISIBILITY, self.__onGUIVisibilityChanged, scope=EVENT_BUS_SCOPE.BATTLE)
        if self.__enabled:
            self.__ribbonsAggregator.start()
        return
Пример #15
0
 def __init__(self, hitsCount):
     names = tuple(
         map(lambda i: _DAMAGE_INDICATOR_MC_NAME.format(i),
             xrange(hitsCount)))
     super(_DamageIndicator,
           self).__init__(_DAMAGE_INDICATOR_SWF,
                          _DAMAGE_INDICATOR_COMPONENT, (names, ),
                          SCALEFORM_SWF_PATH_V3)
     self.__voBuilderFactoryMethod = None
     self.__updateMethod = None
     self.component.wg_inputKeyMode = 2
     self.component.position.z = DEPTH_OF_Aim
     self.movie.backgroundAlpha = 0.0
     self.component.focus = False
     self.component.moveFocus = False
     self.component.heightMode = 'PIXEL'
     self.component.widthMode = 'PIXEL'
     self.movie.scaleMode = 'NoScale'
     self.__isBlind = bool(g_settingsCore.getSetting(GRAPHICS.COLOR_BLIND))
     self.__setUpVOBuilderFactoryAndUpdateMethod(
         _DEFAULT_DAMAGE_INDICATOR_TYPE)
     g_settingsCore.interfaceScale.onScaleChanged += self.__setMarkersScale
     ctrl = g_sessionProvider.shared.crosshair
     if ctrl is not None:
         ctrl.onCrosshairOffsetChanged += self.__onCrosshairOffsetChanged
         self.__onCrosshairOffsetChanged(*ctrl.getOffset())
     self.__setMarkersScale()
     self.active(True)
     return
Пример #16
0
    def makeVO(self, contact, includeIcons = True):
        dbID = contact.getID()
        tags = contact.getTags()
        note = contact.getNote()
        isOnline = contact.isOnline()
        if USER_TAG.CLAN_MEMBER in tags:
            pass
        elif contact.getClanAbbrev():
            tags.add(USER_TAG.OTHER_CLAN_MEMBER)
        baseUserProps = self.makeBaseUserProps(contact)
        baseUserProps['rgb'] = self.getColor(tags, isOnline)
        baseUserProps['icons'] = self.getIcons(tags, note)
        baseUserProps['tags'] = list(tags)
        resourceId = contact.getResourceID() or WG_GAMES.TANKS
        if resourceId != WG_GAMES.TANKS:
            for prefix in WG_GAMES.ALL:
                if prefix != WG_GAMES.TANKS:
                    if prefix in resourceId:
                        resourceId = prefix
                        break

        return {'userProps': baseUserProps,
         'dbID': dbID,
         'note': escape(note),
         'isOnline': isOnline,
         'isColorBlind': g_settingsCore.getSetting('isColorBlind'),
         'resource': resourceId}
Пример #17
0
 def startControl(self):
     g_eventBus.addListener(GameEvent.GUI_VISIBILITY,
                            self.__handleGUIVisibility,
                            scope=EVENT_BUS_SCOPE.BATTLE)
     self.__damageIndicatorPreset = g_settingsCore.getSetting(
         DAMAGE_INDICATOR.PRESETS)
     g_settingsCore.onSettingsChanged += self.__onSettingsChanged
Пример #18
0
 def start(self):
     if self.__isStarted:
         return
     elif self.__maxTurretRotationSpeed is None:
         return
     elif not self.__avatar.isOnArena or not self.__avatar.isVehicleAlive:
         return
     else:
         from account_helpers.settings_core.SettingsCore import g_settingsCore
         g_settingsCore.onSettingsChanged += self.applySettings
         self.showServerMarker = g_settingsCore.getSetting('useServerAim')
         self.__isStarted = True
         self.__updateGunMarker()
         self.__timerID = BigWorld.callback(self.__ROTATION_TICK_LENGTH,
                                            self.__onTick)
         if self.__clientMode:
             self.__time = BigWorld.time()
             if self.__showServerMarker:
                 self.__avatar.inputHandler.showGunMarker2(True)
         if self.__turretRotationSoundEffect is None and not gEffectsDisabled:
             self.__turretRotationSoundEffect = _PlayerTurretRotationSoundEffectWWISE(
             )
         BigWorld.player(
         ).inputHandler.onCameraChanged += self.__onCameraChanged
         return
Пример #19
0
 def __readCfg(self, dataSec):
     if not dataSec:
         LOG_WARNING(
             'Invalid section <strategicMode/camera> in avatar_input_handler.xml'
         )
     self.__baseCfg = dict()
     bcfg = self.__baseCfg
     bcfg['keySensitivity'] = readFloat(dataSec, 'keySensitivity', 0.005,
                                        10, 0.025)
     bcfg['sensitivity'] = readFloat(dataSec, 'sensitivity', 0.005, 10,
                                     0.025)
     bcfg['scrollSensitivity'] = readFloat(dataSec, 'scrollSensitivity',
                                           0.005, 10, 0.025)
     bcfg['distRange'] = readVec2(dataSec, 'distRange', (1, 1),
                                  (10000, 10000), (2, 30))
     ds = Settings.g_instance.userPrefs[Settings.KEY_CONTROL_MODE]
     if ds is not None:
         ds = ds['strategicMode/camera']
     self.__userCfg = dict()
     ucfg = self.__userCfg
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     ucfg['horzInvert'] = g_settingsCore.getSetting('mouseHorzInvert')
     ucfg['vertInvert'] = g_settingsCore.getSetting('mouseVertInvert')
     ucfg['keySensitivity'] = readFloat(ds, 'keySensitivity', 0.0, 10.0,
                                        1.0)
     ucfg['sensitivity'] = readFloat(ds, 'sensitivity', 0.0, 10.0, 1.0)
     ucfg['scrollSensitivity'] = readFloat(ds, 'scrollSensitivity', 0.0,
                                           10.0, 1.0)
     ucfg['camDist'] = readFloat(ds, 'camDist', 0.0, 60.0, 0)
     self.__cfg = dict()
     cfg = self.__cfg
     cfg['keySensitivity'] = bcfg['keySensitivity']
     cfg['sensitivity'] = bcfg['sensitivity']
     cfg['scrollSensitivity'] = bcfg['scrollSensitivity']
     cfg['distRange'] = bcfg['distRange']
     cfg['camDist'] = ucfg['camDist']
     cfg['keySensitivity'] *= ucfg['keySensitivity']
     cfg['sensitivity'] *= ucfg['sensitivity']
     cfg['scrollSensitivity'] *= ucfg['scrollSensitivity']
     cfg['horzInvert'] = ucfg['horzInvert']
     cfg['vertInvert'] = ucfg['vertInvert']
     dynamicsSection = dataSec['dynamics']
     self.__dynamicCfg.readImpulsesConfig(dynamicsSection)
     self.__positionOscillator = createOscillatorFromSection(
         dynamicsSection['oscillator'], False)
     self.__positionNoiseOscillator = createOscillatorFromSection(
         dynamicsSection['randomNoiseOscillatorFlat'], False)
Пример #20
0
 def onSettingsChanged(self, diff = None):
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if self.mode in self._AIM_TYPES and (diff is None or self.mode in diff):
         self.__aimSettings = g_settingsCore.getSetting(self.mode)
         self.applySettings()
     if diff is not None:
         if 'isColorBlind' in diff:
             self.__isColorBlind = diff['isColorBlind']
Пример #21
0
 def _updateProviderType(self):
     isSimplified = g_settingsCore.getSetting(settings_constants.GAME.SIMPLIFIED_TTC)
     if isSimplified:
         alias = HANGAR_ALIASES.VEH_PARAMS_RENDERER_UI
     else:
         alias = HANGAR_ALIASES.VEH_PARAMS_RENDERER_BASE_UI
     self.as_setRendererLnkS(alias)
     self._vehParamsDP.setIsSimplified(isSimplified)
Пример #22
0
 def onApplySettings(self, callbackId, settings):
     monitorIndex, presetIndex, settingsList, fullscreen, masterVolumeToggle, soundQuality = settings
     if (not self.resolutions.isVideoWindowed or fullscreen) and (
             monitorIndex != self.resolutions.realMonitorIndex
             or self.resolutions.monitorChanged):
         self.call('SettingsDialog.ApplySettings', ['restartNeeded'])
         return
     isSoundChanged = masterVolumeToggle is not g_settingsCore.getSetting(
         SOUND.MASTER_TOGGLE
     ) or soundQuality is not g_settingsCore.getSetting(SOUND.SOUND_QUALITY)
     applyMethod = g_settingsCore.options.getApplyMethod(settingsList)
     method = 'apply'
     if applyMethod == APPLY_METHOD.RESTART or isSoundChanged:
         method = 'restartNeeded'
     elif applyMethod == APPLY_METHOD.DELAYED:
         method = 'hasPendingSettings'
     self.call('SettingsDialog.ApplySettings', [method])
Пример #23
0
 def _updateProviderType(self):
     isSimplified = g_settingsCore.getSetting(settings_constants.GAME.SIMPLIFIED_TTC)
     if isSimplified:
         alias = HANGAR_ALIASES.VEH_PARAMS_RENDERER_UI
     else:
         alias = HANGAR_ALIASES.VEH_PARAMS_RENDERER_BASE_UI
     self.as_setRendererLnkS(alias)
     self._vehParamsDP.setIsSimplified(isSimplified)
Пример #24
0
 def __init__(self):
     super(ServersDataProvider, self).__init__()
     self._list = []
     self._listMapping = {}
     self.__mapping = {}
     self.__selectedID = None
     self.__isColorBlind = g_settingsCore.getSetting('isColorBlind')
     g_settingsCore.onSettingsChanged += self.__onSettingsChanged
     return
Пример #25
0
 def __init__(self):
     super(ServersDataProvider, self).__init__()
     self._list = []
     self._listMapping = {}
     self.__mapping = {}
     self.__selectedID = None
     self.__isColorBlind = g_settingsCore.getSetting('isColorBlind')
     g_settingsCore.onSettingsChanged += self.__onSettingsChanged
     return
def hook_start(self):
    self._BattleRibbonsPanel__flashObject = self._BattleRibbonsPanel__ui.getMember('_level0.ribbonsPanel')
    if BattleReplay.g_replayCtrl.isPlaying and config.enable: self._BattleRibbonsPanel__enabled = True
    else: self._BattleRibbonsPanel__enabled = bool(g_settingsCore.getSetting(GAME.SHOW_BATTLE_EFFICIENCY_RIBBONS))
    if self._BattleRibbonsPanel__flashObject:
        self._BattleRibbonsPanel__flashObject.resync()
        self._BattleRibbonsPanel__flashObject.script = self
        self._BattleRibbonsPanel__flashObject.setup(self._BattleRibbonsPanel__enabled, _RIBBON_SOUNDS_ENABLED, *_POS_COEFF)
        self._BattleRibbonsPanel__addListeners()
    else: LOG_ERROR('Display object is not found in the swf file.')
Пример #27
0
def _getStatusIcon(contact):
    if USER_TAG.PRESENCE_DND in contact.getTags():
        if g_settingsCore.getSetting('isColorBlind'):
            return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_BUSYBLIND
        else:
            return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_BUSY
    else:
        if contact.isOnline():
            return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_ONLINE
        return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_OFFLINE
Пример #28
0
def _getStatusIcon(contact):
    if USER_TAG.PRESENCE_DND in contact.getTags():
        if g_settingsCore.getSetting('isColorBlind'):
            return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_BUSYBLIND
        else:
            return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_BUSY
    else:
        if contact.isOnline():
            return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_ONLINE
        return RES_ICONS.MAPS_ICONS_LIBRARY_USERSTATUS_SMALL_OFFLINE
Пример #29
0
 def start(self):
     self.__flashObject = self.__ui.getMember('_level0.ribbonsPanel')
     self.__enabled = bool(g_settingsCore.getSetting(GAME.SHOW_BATTLE_EFFICIENCY_RIBBONS))
     if self.__flashObject:
         self.__flashObject.resync()
         self.__flashObject.script = self
         self.__flashObject.setup(self.__enabled, _RIBBON_SOUNDS_ENABLED, *_POS_COEFF)
         self.__addListeners()
     else:
         LOG_ERROR('Display object is not found in the swf file.')
Пример #30
0
 def __makeTeamValues(self, ctx, pNamesList, fragsList, vNamesList, valuesHashes):
     return {'team': 'team%d' % ctx.team,
      'playerID': ctx.playerVehicleID,
      'squadID': ctx.prebattleID,
      'denunciationsLeft': ctx.denunciationsLeft,
      'isColorBlind': g_settingsCore.getSetting('isColorBlind'),
      'knownPlayersCount': None,
      'namesStr': ''.join(pNamesList),
      'fragsStr': ''.join(fragsList),
      'vehiclesStr': ''.join(vNamesList),
      'valuesHashes': valuesHashes}
Пример #31
0
 def __init__(self, indicator, shapes, position):
     super(_DirectionIndicatorCtrl, self).__init__()
     self.__shapes = shapes
     shape = self.__shapes[0]
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if g_settingsCore.getSetting('isColorBlind'):
         shape = self.__shapes[1]
     self.__indicator = indicator
     self.__indicator.setShape(shape)
     self.__indicator.track(position)
     g_settingsCore.onSettingsChanged += self.__as_onSettingsChanged
Пример #32
0
 def __init__(self, indicator, shapes, position):
     super(_DirectionIndicatorCtrl, self).__init__()
     self.__shapes = shapes
     shape = self.__shapes[0]
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if g_settingsCore.getSetting('isColorBlind'):
         shape = self.__shapes[1]
     self.__indicator = indicator
     self.__indicator.setShape(shape)
     self.__indicator.track(position)
     g_settingsCore.onSettingsChanged += self.__as_onSettingsChanged
Пример #33
0
 def start(self):
     self.__flashObject = self.__ui.getMember('_level0.ribbonsPanel')
     self.__enabled = bool(
         g_settingsCore.getSetting(GAME.SHOW_BATTLE_EFFICIENCY_RIBBONS))
     if self.__flashObject:
         self.__flashObject.resync()
         self.__flashObject.script = self
         self.__flashObject.setup(self.__enabled, _RIBBON_SOUNDS_ENABLED,
                                  *_POS_COEFF)
         self.__addListeners()
     else:
         LOG_ERROR('Display object is not found in the swf file.')
Пример #34
0
    def updateFlagsColor(self):
        isColorBlind = g_settingsCore.getSetting('isColorBlind')
        colorGreen = self.colorManager.getSubScheme('flag_team_green', isColorBlind=isColorBlind)['rgba']
        colorRed = self.colorManager.getSubScheme('flag_team_red', isColorBlind=isColorBlind)['rgba']
        arenaDP = g_sessionProvider.getArenaDP()
        teamsOnArena = arenaDP.getTeamsOnArena()
        for teamIdx in teamsOnArena:
            color = colorGreen if arenaDP.isAllyTeam(teamIdx) else colorRed
            BigWorld.wg_setFlagColor(teamIdx, color / 255)

        for teamIdx in [0] + teamsOnArena:
            BigWorld.wg_setFlagEmblem(teamIdx, 'system/maps/wg_emblem.dds', Math.Vector4(0.0, 0.1, 0.5, 0.9))
Пример #35
0
    def updateFlagsColor(self):
        isColorBlind = g_settingsCore.getSetting('isColorBlind')
        colorGreen = self.colorManager.getSubScheme('flag_team_green', isColorBlind=isColorBlind)['rgba']
        colorRed = self.colorManager.getSubScheme('flag_team_red', isColorBlind=isColorBlind)['rgba']
        arenaDP = g_sessionProvider.getArenaDP()
        teamsOnArena = arenaDP.getTeamsOnArena()
        for teamIdx in teamsOnArena:
            color = colorGreen if arenaDP.isAllyTeam(teamIdx) else colorRed
            BigWorld.wg_setFlagColor(teamIdx, color / 255)

        for teamIdx in [0] + teamsOnArena:
            BigWorld.wg_setFlagEmblem(teamIdx, 'system/maps/wg_emblem.dds', Math.Vector4(0.0, 0.1, 0.5, 0.9))
Пример #36
0
 def _makeTeamValues(self, isEnemy, ctx, pNamesList, fragsList, vNamesList, additionalDatas, valuesHashes):
     return {'isEnemy': isEnemy,
      'team': 'team%d' % ctx.team,
      'playerID': ctx.playerVehicleID,
      'squadID': ctx.prebattleID,
      'denunciationsLeft': ctx.denunciationsLeft,
      'isColorBlind': g_settingsCore.getSetting('isColorBlind'),
      'knownPlayersCount': None,
      'namesStr': ''.join(pNamesList),
      'fragsStr': ''.join(fragsList),
      'vehiclesStr': ''.join(vNamesList),
      'valuesHashes': valuesHashes}
Пример #37
0
 def __makeHash(self, index, playerFullName, vInfoVO, vStatsVO, viStatsVO, ctx, userGetter, isSpeaking, isMenuEnabled, regionGetter, playerAccountID, inviteSendingProhibited, invitesReceivingProhibited):
     vehicleID = vInfoVO.vehicleID
     vTypeVO = vInfoVO.vehicleType
     playerVO = vInfoVO.player
     dbID = playerVO.accountDBID
     user = userGetter(dbID)
     if user:
         roster = _getRoster(user)
         isMuted = user.isMuted()
         isIgnored = user.isIgnored()
     else:
         isIgnored = False
         roster = 0
         isMuted = False
     squadIndex = ctx.getSquadIndex(vInfoVO)
     himself = ctx.isPlayerSelected(vInfoVO)
     isInvitesForbidden = inviteSendingProhibited or himself or playerVO.forbidInBattleInvitations or isIgnored
     LOG_DEBUG('!!!', playerVO.getPlayerLabel(), inviteSendingProhibited, himself, playerVO.forbidInBattleInvitations, isIgnored)
     return {'position': index + 1,
      'label': playerFullName,
      'userName': playerVO.getPlayerLabel(),
      'icon': vTypeVO.iconPath,
      'vehicle': vTypeVO.shortName,
      'vehicleState': vInfoVO.vehicleStatus,
      'frags': vStatsVO.frags,
      'squad': squadIndex,
      'clanAbbrev': playerVO.clanAbbrev,
      'speaking': isSpeaking(dbID),
      'uid': dbID,
      'himself': himself,
      'roster': roster,
      'muted': isMuted,
      'vipKilled': 0,
      'VIP': False,
      'teamKiller': ctx.isTeamKiller(vInfoVO),
      'denunciations': ctx.denunciationsLeft,
      'isPostmortemView': ctx.isPostmortemView(vInfoVO),
      'level': vTypeVO.level if g_settingsCore.getSetting('ppShowLevels') else 0,
      'vehAction': ctx.getAction(vInfoVO),
      'team': vInfoVO.team,
      'vehId': vehicleID,
      'isIGR': playerVO.isIGR(),
      'igrType': playerVO.igrType,
      'igrLabel': playerVO.getIGRLabel(),
      'isEnabledInRoaming': isMenuEnabled(dbID),
      'region': regionGetter(dbID),
      'victoryScore': BigWorld.wg_getNiceNumberFormat(viStatsVO.winPoints),
      'flags': BigWorld.wg_getNiceNumberFormat(viStatsVO.flagActions[FLAG_ACTION.CAPTURED]),
      'damage': BigWorld.wg_getNiceNumberFormat(viStatsVO.damageDealt),
      'deaths': BigWorld.wg_getNiceNumberFormat(viStatsVO.deathCount),
      'isPrebattleCreator': playerVO.isPrebattleCreator,
      'dynamicSquad': self.__getDynamicSquadData(dbID, playerAccountID, isInSquad=squadIndex > 0, inviteSendingProhibited=isInvitesForbidden, invitesReceivingProhibited=invitesReceivingProhibited)}
Пример #38
0
 def update(self):
     if Account.g_accountRepository:
         settings = Account.g_accountRepository.serverSettings
     else:
         settings = {}
     self.server.update(settings)
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if g_settingsCore.getSetting('isColorBlind'):
         csName = 'colorBlind'
     else:
         csName = 'default'
     for colorScheme in self.__colorsSchemes.itervalues():
         colorScheme.setCurrent(csName)
Пример #39
0
 def onApplySettings(self, callbackId, settings):
     monitorIndex, presetIndex, settingsList, fullscreen, masterVolumeToggle, soundQuality = settings
     if (not self.resolutions.isVideoWindowed or fullscreen) and (monitorIndex != self.resolutions.realMonitorIndex or self.resolutions.monitorChanged):
         self.call('SettingsDialog.ApplySettings', ['restartNeeded'])
         return
     isSoundChanged = masterVolumeToggle is not g_settingsCore.getSetting(SOUND.MASTER_TOGGLE) or soundQuality is not g_settingsCore.getSetting(SOUND.SOUND_QUALITY)
     applyMethod = g_settingsCore.options.getApplyMethod(settingsList)
     method = 'apply'
     if applyMethod == APPLY_METHOD.RESTART or isSoundChanged:
         method = 'restartNeeded'
     elif applyMethod == APPLY_METHOD.DELAYED:
         method = 'hasPendingSettings'
     self.call('SettingsDialog.ApplySettings', [method])
Пример #40
0
 def initialize(self, domain, callback):
     if self.ready:
         callback(True)
         return
     if domain == '':
         LOG_WARNING('Initialize. Vivox is not supported')
         return
     self.__callbacks.append(callback)
     if self.state == ChannelsMgr.STATE_INITIALIZING:
         return
     voipMgr = getVOIPManager()
     voipMgr.initialize(domain)
     voipMgr.enable(g_settingsCore.getSetting(SOUND.VOIP_ENABLE))
Пример #41
0
    def __onSettingsChanged(self, diff):
        addSettings = {}
        for item in diff:
            if item in _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES:
                key = _BATTLE_EVENTS_SETTINGS_TO_BATTLE_EFFICIENCY_TYPES[item]
                self.__userPreferences[key] = bool(diff[item])
            elif item in _ADDITIONAL_USER_SETTINGS:
                addSettings[item] = diff[item]

        if addSettings:
            enabled = bool(addSettings.get(BATTLE_EVENTS.SHOW_IN_BATTLE, self.__enabled)) and self.__arenaDP is not None
            self.__isWithRibbonName = bool(g_settingsCore.getSetting(BATTLE_EVENTS.EVENT_NAME))
            self.__isWithVehName = bool(g_settingsCore.getSetting(BATTLE_EVENTS.VEHICLE_INFO))
            self.__isExtendedAnim = g_settingsCore.getSetting(GRAPHICS.RENDER_PIPELINE) == _EXTENDED_RENDER_PIPELINE
            if self.__enabled != enabled:
                self.__enabled = enabled
                if self.__enabled:
                    self.__ribbonsAggregator.start()
                else:
                    self.__ribbonsAggregator.stop()
            self.as_setSettingsS(self.__enabled, self.__isExtendedAnim, self.__isWithRibbonName, self.__isWithVehName)
        return
Пример #42
0
 def __accs_onSettingsChanged(self, diff):
     self.colorManager.update()
     if 'isColorBlind' in diff:
         isColorBlind = diff['isColorBlind']
         self.__leftPlayersPanel.defineColorFlags(isColorBlind=isColorBlind)
         self.__rightPlayersPanel.defineColorFlags(isColorBlind=isColorBlind)
         self.updateFlagsColor()
         self.__markersManager.updateMarkers()
         self.__minimap.updateEntries()
     if 'enemy' in diff or 'dead' in diff or 'ally' in diff:
         markers = {'enemy': g_settingsCore.getSetting('enemy'),
          'dead': g_settingsCore.getSetting('dead'),
          'ally': g_settingsCore.getSetting('ally')}
         self.__markersManager.setMarkerSettings(markers)
         self.__markersManager.updateMarkerSettings()
     if 'showVehiclesCounter' in diff:
         self.isVehicleCountersVisible = diff['showVehiclesCounter']
         self.__fragCorrelation.showVehiclesCounter(self.isVehicleCountersVisible)
     if 'interfaceScale' in diff:
         self.__onRecreateDevice()
     self.__arenaCtrl.invalidateGUI()
     self.__arenaCtrl.invalidateArenaInfo()
Пример #43
0
 def initialize(self, domain, callback):
     if self.ready:
         callback(True)
         return 
     if domain == '':
         LOG_WARNING('Initialize. Vivox is not supported')
         return 
     self._VoiceChatManager__callbacks.append(callback)
     voipMgr = getVOIPManager()
     if not voipMgr.isNotInitialized():
         return 
     voipMgr.initialize(domain)
     voipMgr.enable(g_settingsCore.getSetting(SOUND.VOIP_ENABLE))
Пример #44
0
 def update(self):
     repository = _getAccountRepository()
     if repository:
         settings = repository.serverSettings
     else:
         settings = {}
     self.server.update(settings)
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if g_settingsCore.getSetting('isColorBlind'):
         csName = 'colorBlind'
     else:
         csName = 'default'
     for colorScheme in self.__colorsSchemes.itervalues():
         colorScheme.setCurrent(csName)
Пример #45
0
 def _makeHash(self, index, playerFullName, vInfoVO, vStatsVO, viStatsVO, ctx, playerAccountID, inviteSendingProhibited, invitesReceivingProhibited, isEnemy):
     vehicleID = vInfoVO.vehicleID
     vTypeVO = vInfoVO.vehicleType
     playerVO = vInfoVO.player
     dbID = playerVO.accountDBID
     user = self._userGetter(dbID)
     if user:
         roster = _getRoster(user)
         isMuted = user.isMuted()
         isIgnored = user.isIgnored()
     else:
         isIgnored = False
         roster = 0
         isMuted = False
     squadIndex = ctx.getSquadIndex(vInfoVO)
     himself = ctx.isPlayerSelected(vInfoVO)
     isInvitesForbidden = inviteSendingProhibited or himself or playerVO.forbidInBattleInvitations or isIgnored
     return {'position': index + 1,
      'label': playerFullName,
      'userName': playerVO.getPlayerLabel(),
      'icon': vTypeVO.iconPath,
      'vehicle': vTypeVO.shortName,
      'vehicleState': vInfoVO.vehicleStatus,
      'frags': vStatsVO.frags,
      'squad': squadIndex,
      'clanAbbrev': playerVO.clanAbbrev,
      'speaking': self._isSpeaking(dbID),
      'uid': dbID,
      'himself': himself,
      'roster': roster,
      'muted': isMuted,
      'vipKilled': 0,
      'VIP': False,
      'teamKiller': ctx.isTeamKiller(vInfoVO),
      'denunciations': ctx.denunciationsLeft,
      'isPostmortemView': ctx.isPostmortemView(vInfoVO),
      'level': vTypeVO.level if g_settingsCore.getSetting('ppShowLevels') else 0,
      'vehAction': ctx.getAction(vInfoVO),
      'team': vInfoVO.team,
      'vehId': vehicleID,
      'isIGR': playerVO.isIGR(),
      'igrType': playerVO.igrType,
      'igrLabel': playerVO.getIGRLabel(),
      'isEnabledInRoaming': self._isMenuEnabled(dbID),
      'region': self._regionGetter(dbID),
      'isPrebattleCreator': playerVO.isPrebattleCreator,
      'dynamicSquad': self._getDynamicSquadData(dbID, playerAccountID, isInSquad=squadIndex > 0, inviteSendingProhibited=isInvitesForbidden, invitesReceivingProhibited=invitesReceivingProhibited),
      'vehicleType': vTypeVO.getClassName(),
      'teamColorScheme': 'vm_enemy' if isEnemy else 'vm_ally',
      'vLevel': vTypeVO.level}
Пример #46
0
 def _makeTeamValues(self, isEnemy, ctx, pNamesList, fragsList, vNamesList, additionalDatas, valuesHashes):
     return {
         "isEnemy": isEnemy,
         "team": "team%d" % ctx.team,
         "playerID": ctx.playerVehicleID,
         "squadID": ctx.prebattleID,
         "denunciationsLeft": ctx.denunciationsLeft,
         "isColorBlind": g_settingsCore.getSetting("isColorBlind"),
         "knownPlayersCount": None,
         "namesStr": "".join(pNamesList),
         "fragsStr": "".join(fragsList),
         "vehiclesStr": "".join(vNamesList),
         "valuesHashes": valuesHashes,
     }
Пример #47
0
 def __readCfg(self, dataSec):
     if not dataSec:
         LOG_WARNING('Invalid section <strategicMode/camera> in avatar_input_handler.xml')
     self.__baseCfg = dict()
     bcfg = self.__baseCfg
     bcfg['keySensitivity'] = readFloat(dataSec, 'keySensitivity', 0.005, 10, 0.025)
     bcfg['sensitivity'] = readFloat(dataSec, 'sensitivity', 0.005, 10, 0.025)
     bcfg['scrollSensitivity'] = readFloat(dataSec, 'scrollSensitivity', 0.005, 10, 0.025)
     bcfg['distRange'] = readVec2(dataSec, 'distRange', (1, 1), (10000, 10000), (2, 30))
     ds = Settings.g_instance.userPrefs[Settings.KEY_CONTROL_MODE]
     if ds is not None:
         ds = ds['strategicMode/camera']
     self.__userCfg = dict()
     ucfg = self.__userCfg
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     ucfg['horzInvert'] = g_settingsCore.getSetting('mouseHorzInvert')
     ucfg['vertInvert'] = g_settingsCore.getSetting('mouseVertInvert')
     ucfg['keySensitivity'] = readFloat(ds, 'keySensitivity', 0.0, 10.0, 1.0)
     ucfg['sensitivity'] = readFloat(ds, 'sensitivity', 0.0, 10.0, 1.0)
     ucfg['scrollSensitivity'] = readFloat(ds, 'scrollSensitivity', 0.0, 10.0, 1.0)
     ucfg['camDist'] = readFloat(ds, 'camDist', 0.0, 60.0, 0)
     self.__cfg = dict()
     cfg = self.__cfg
     cfg['keySensitivity'] = bcfg['keySensitivity']
     cfg['sensitivity'] = bcfg['sensitivity']
     cfg['scrollSensitivity'] = bcfg['scrollSensitivity']
     cfg['distRange'] = bcfg['distRange']
     cfg['camDist'] = ucfg['camDist']
     cfg['keySensitivity'] *= ucfg['keySensitivity']
     cfg['sensitivity'] *= ucfg['sensitivity']
     cfg['scrollSensitivity'] *= ucfg['scrollSensitivity']
     cfg['horzInvert'] = ucfg['horzInvert']
     cfg['vertInvert'] = ucfg['vertInvert']
     dynamicsSection = dataSec['dynamics']
     self.__dynamicCfg.readImpulsesConfig(dynamicsSection)
     self.__positionOscillator = createOscillatorFromSection(dynamicsSection['oscillator'], False)
     self.__positionNoiseOscillator = createOscillatorFromSection(dynamicsSection['randomNoiseOscillatorFlat'], False)
Пример #48
0
 def __init__(self, mode, offset):
     Flash.__init__(self, 'crosshair_panel_{0:>s}.swf'.format(mode), self.__FLASH_CLASS)
     self.component.wg_inputKeyMode = 2
     self.component.position.z = DEPTH_OF_Aim
     self.component.focus = False
     self.component.moveFocus = False
     self.component.heightMode = 'PIXEL'
     self.component.widthMode = 'PIXEL'
     self.movie.backgroundAlpha = 0
     self.flashSize = GUI.screenResolution()
     self._offset = offset
     self._isLoaded = False
     self.mode = mode
     self.__timeInterval = _TimeInterval(Aim._UPDATE_INTERVAL, '_update', weakref.proxy(self))
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     self.__aimSettings = None
     self.__isColorBlind = g_settingsCore.getSetting('isColorBlind')
Пример #49
0
 def start(self):
     if self.__isStarted:
         return 
     if self.__maxTurretRotationSpeed is None:
         return 
     if not self.__avatar.isOnArena or not self.__avatar.isVehicleAlive:
         return 
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     g_settingsCore.onSettingsChanged += self.applySettings
     self.showServerMarker = g_settingsCore.getSetting('useServerAim')
     self.__isStarted = True
     self.__updateGunMarker()
     self.__timerID = BigWorld.callback(self.__ROTATION_TICK_LENGTH, self.__onTick)
     if self.__clientMode:
         self.__time = BigWorld.time()
         if self.__showServerMarker:
             self.__avatar.inputHandler.showGunMarker2(True)
Пример #50
0
def hook_start(self):
    self._BattleRibbonsPanel__flashObject = self._BattleRibbonsPanel__ui.getMember(
        '_level0.ribbonsPanel')
    if BattleReplay.g_replayCtrl.isPlaying and config.enable:
        self._BattleRibbonsPanel__enabled = True
    else:
        self._BattleRibbonsPanel__enabled = bool(
            g_settingsCore.getSetting(GAME.SHOW_BATTLE_EFFICIENCY_RIBBONS))
    if self._BattleRibbonsPanel__flashObject:
        self._BattleRibbonsPanel__flashObject.resync()
        self._BattleRibbonsPanel__flashObject.script = self
        self._BattleRibbonsPanel__flashObject.setup(
            self._BattleRibbonsPanel__enabled, _RIBBON_SOUNDS_ENABLED,
            *_POS_COEFF)
        self._BattleRibbonsPanel__addListeners()
    else:
        LOG_ERROR('Display object is not found in the swf file.')
Пример #51
0
 def __init__(self, spaceId, vEntityId):
     self.__isLoaded = False
     self.__curBuildInd = 0
     self.__vDesc = None
     self.__vState = None
     self.__componentIDs = {}
     self.__spaceId = spaceId
     self.__vEntityId = vEntityId
     self.__onLoadedCallback = None
     self.__emblemsAlpha = _CFG['emblems_alpha_undamaged']
     self.__models = ()
     self.__vehicleStickers = None
     self.__isVehicleDestroyed = False
     self.__smCb = None
     self.__smRemoveCb = None
     self.__removeHangarShadowMap()
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     self.__showMarksOnGun = g_settingsCore.getSetting('showMarksOnGun')
     g_settingsCore.onSettingsChanged += self.__onSettingsChanged
     g_itemsCache.onSyncCompleted += self.__onItemsCacheSyncCompleted
Пример #52
0
    def makeVO(self, contact, includeIcons = True):
        dbID = contact.getID()
        tags = contact.getTags()
        note = contact.getNote()
        isOnline = contact.isOnline()
        baseUserProps = self.makeBaseUserProps(contact)
        baseUserProps['rgb'] = self.getColor(tags, isOnline)
        resourceId = contact.getResourceID() or WG_GAMES.TANKS
        if resourceId != WG_GAMES.TANKS:
            for prefix in WG_GAMES.ALL:
                if prefix != WG_GAMES.TANKS:
                    if prefix in resourceId:
                        resourceId = prefix
                        break

        return {'userProps': baseUserProps,
         'dbID': dbID,
         'note': escape(note),
         'isOnline': isOnline,
         'isColorBlind': g_settingsCore.getSetting('isColorBlind'),
         'resource': resourceId}
Пример #53
0
    def makeVO(self, contact, includeIcons=True):
        dbID = contact.getID()
        tags = contact.getTags()
        note = contact.getNote()
        isOnline = contact.isOnline()
        baseUserProps = self.makeBaseUserProps(contact)
        baseUserProps['rgb'] = self.getColor(tags, isOnline)
        resourceId = contact.getResourceID() or WG_GAMES.TANKS
        if resourceId != WG_GAMES.TANKS:
            for prefix in WG_GAMES.ALL:
                if prefix != WG_GAMES.TANKS:
                    if prefix in resourceId:
                        resourceId = prefix
                        break

        return {
            'userProps': baseUserProps,
            'dbID': dbID,
            'note': escape(note),
            'isOnline': isOnline,
            'isColorBlind': g_settingsCore.getSetting('isColorBlind'),
            'resource': resourceId
        }
Пример #54
0
 def updateScale(self):
     index = g_settingsCore.getSetting(
         settings_constants.GRAPHICS.INTERFACE_SCALE)
     g_settingsCore.options.getSetting('interfaceScale').setSystemValue(
         index)
Пример #55
0
 def _canBeShown(self):
     return self.clansCtrl.isEnabled() and self.clansCtrl.getAccountProfile(
     ) is not None and g_settingsCore.getSetting(
         'receiveClanInvitesNotifications')
Пример #56
0
 def getColorGroup(self):
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     if g_settingsCore.getSetting('isColorBlind'):
         return 'color_blind'
     return 'default'
Пример #57
0
 def update(self):
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     isColorBlind = g_settingsCore.getSetting('isColorBlind')
     self.__colorGroup = 'color_blind' if isColorBlind else 'default'
     self.__notifyFlash()
Пример #58
0
 def afterCreate(self):
     event = events.AppLifeCycleEvent
     g_eventBus.handleEvent(event(self.__ns, event.INITIALIZING))
     player = BigWorld.player()
     LOG_DEBUG('[Battle] afterCreate')
     setattr(self.movie, '_global.wg_isShowLanguageBar',
             GUI_SETTINGS.isShowLanguageBar)
     setattr(self.movie, '_global.wg_isShowServerStats',
             constants.IS_SHOW_SERVER_STATS)
     setattr(self.movie, '_global.wg_isShowVoiceChat',
             GUI_SETTINGS.voiceChat)
     setattr(self.movie, '_global.wg_voiceChatProvider',
             self.__getVoiceChatProvider())
     setattr(self.movie, '_global.wg_isChina', constants.IS_CHINA)
     setattr(self.movie, '_global.wg_isKorea', constants.IS_KOREA)
     setattr(self.movie, '_global.wg_isReplayPlaying',
             BattleReplay.g_replayCtrl.isPlaying)
     BattleWindow.afterCreate(self)
     addListener = g_eventBus.addListener
     addListener(events.GameEvent.HELP, self.toggleHelpWindow, scope=_SCOPE)
     addListener(events.GameEvent.TOGGLE_GUI, self.showAll, scope=_SCOPE)
     player.inputHandler.onPostmortemVehicleChanged += self.onPostmortemVehicleChanged
     player.inputHandler.onCameraChanged += self.onCameraChanged
     g_settingsCore.onSettingsChanged += self.__accs_onSettingsChanged
     g_settingsCore.interfaceScale.onScaleChanged += self.__onRecreateDevice
     visitor = g_sessionProvider.arenaVisitor
     isMutlipleTeams = visitor.gui.isFalloutMultiTeam()
     isFallout = visitor.gui.isFalloutBattle()
     self.proxy = weakref.proxy(self)
     self.__battle_flashObject = self.proxy.getMember('_level0')
     if self.__battle_flashObject:
         self.__battle_flashObject.resync()
     voice = g_messengerEvents.voip
     voice.onPlayerSpeaking += self.setPlayerSpeaking
     voice.onVoiceChatInitFailed += self.onVoiceChatInitFailed
     self.colorManager = ColorSchemeManager._ColorSchemeManager()
     self.colorManager.populateUI(self.proxy)
     self.movingText = MovingText()
     self.movingText.populateUI(self.proxy)
     self.__settingsInterface = SettingsInterface()
     self.__settingsInterface.populateUI(self.proxy)
     self.__soundManager = SoundManager()
     self.__soundManager.populateUI(self.proxy)
     self.__debugPanel = DebugPanel()
     self.__timersBar = TimersBar(self.proxy, isFallout)
     if visitor.isBattleEndWarningEnabled():
         self.__battleEndWarningPanel = BattleEndWarningPanel(
             self.proxy, visitor.type, SoundGroups.g_instance)
     else:
         self.__battleEndWarningPanel = BattleEndWarningEmptyObject(
             self.proxy, visitor.type, SoundGroups.g_instance)
     self.__teamBasesPanel = TeamBasesPanel(self.proxy)
     self.__consumablesPanel = ConsumablesPanel(self.proxy)
     self.__damagePanel = DamagePanel(self.proxy)
     self.__markersManager = MarkersManager(self.proxy)
     self.__ingameHelp = IngameHelp(self.proxy)
     self.__minimap = Minimap(self.proxy)
     self.__radialMenu = RadialMenu(self.proxy)
     self.__ribbonsPanel = BattleRibbonsPanel(self.proxy)
     self.__ppSwitcher = PlayersPanelsSwitcher(self.proxy)
     isColorBlind = g_settingsCore.getSetting('isColorBlind')
     self.__leftPlayersPanel = playersPanelFactory(self.proxy, True,
                                                   isColorBlind, isFallout,
                                                   isMutlipleTeams)
     self.__rightPlayersPanel = playersPanelFactory(self.proxy, False,
                                                    isColorBlind, isFallout,
                                                    isMutlipleTeams)
     self.__damageInfoPanel = VehicleDamageInfoPanel(self.proxy)
     self.__damageInfoPanel.start()
     self.__fragCorrelation = scorePanelFactory(self.proxy, isFallout,
                                                isMutlipleTeams)
     self.__statsForm = statsFormFactory(self.proxy, isFallout,
                                         isMutlipleTeams)
     self.__plugins.init()
     self.isVehicleCountersVisible = g_settingsCore.getSetting(
         'showVehiclesCounter')
     self.__fragCorrelation.showVehiclesCounter(
         self.isVehicleCountersVisible)
     self.__vErrorsPanel = VehicleErrorMessages(self.proxy)
     self.__vMsgsPanel = VehicleMessages(self.proxy)
     self.__pMsgsPanel = PlayerMessages(self.proxy)
     self.__plugins.start()
     self.__consumablesPanel.start()
     self.__damagePanel.start()
     self.__ingameHelp.start()
     self.__vErrorsPanel.start()
     self.__vMsgsPanel.start()
     self.__pMsgsPanel.start()
     self.__markersManager.start()
     self.__markersManager.setMarkerDuration(
         GUI_SETTINGS.markerHitSplashDuration)
     markers = {
         'enemy': g_settingsCore.getSetting('enemy'),
         'dead': g_settingsCore.getSetting('dead'),
         'ally': g_settingsCore.getSetting('ally')
     }
     self.__markersManager.setMarkerSettings(markers)
     self.__crosshairPanel = CrosshairPanel()
     self.__crosshairPanel.active(True)
     MessengerEntry.g_instance.gui.invoke('populateUI', self.proxy)
     g_guiResetters.add(self.__onRecreateDevice)
     g_repeatKeyHandlers.add(self.component.handleKeyEvent)
     self.__onRecreateDevice()
     self.__statsForm.populate()
     self.__leftPlayersPanel.populateUI(self.proxy)
     self.__rightPlayersPanel.populateUI(self.proxy)
     self.__debugPanel.populateUI(self.proxy)
     if BattleReplay.g_replayCtrl.isPlaying:
         BattleReplay.g_replayCtrl.onBattleSwfLoaded()
     self.__populateData()
     self.__minimap.start()
     self.__radialMenu.setSettings(self.__settingsInterface)
     self.__radialMenu.populateUI(self.proxy)
     self.__ribbonsPanel.start()
     add = g_sessionProvider.addViewComponent
     add('legacy/hitDirection',
         indicators.createDamageIndicator(),
         rule=VIEW_COMPONENT_RULE.NONE)
     add('legacy/teamBasesPanel', self.__teamBasesPanel)
     add('legacy/debugPanel', self.__debugPanel)
     add('legacy/battleTimer', self.__timersBar)
     add('legacy/prebattleTimer', self.__timersBar)
     add('legacy/ppSwitcher', self.__ppSwitcher)
     add(_BATTLE_END_WARNING_COMPONENT, self.__battleEndWarningPanel)
     self.__arenaCtrl = battleArenaControllerFactory(
         self, isFallout, isMutlipleTeams)
     g_sessionProvider.addArenaCtrl(self.__arenaCtrl)
     self.updateFlagsColor()
     self.movie.setFocussed(SCALEFORM_SWF_PATH)
     self.call(
         'battle.initDynamicSquad',
         self.__getDynamicSquadsInitParams(
             enableButton=not BattleReplay.g_replayCtrl.isPlaying))
     self.call('sixthSenseIndicator.setDuration',
               [GUI_SETTINGS.sixthSenseDuration])
     keyCode = CommandMapping.g_instance.get('CMD_VOICECHAT_MUTE')
     if not BigWorld.isKeyDown(keyCode):
         VOIP.getVOIPManager().setMicMute(True)
     ctrl = g_sessionProvider.shared.vehicleState
     ctrl.onVehicleStateUpdated += self.__onVehicleStateUpdated
     ctrl.onPostMortemSwitched += self.__onPostMortemSwitched
     if BattleReplay.g_replayCtrl.isPlaying:
         self.__dynSquadListener = ReplayDynSquadViewListener(self.proxy)
     elif BattleReplay.g_replayCtrl.isRecording:
         self.__dynSquadListener = RecordDynSquadViewListener(self.proxy)
     else:
         self.__dynSquadListener = DynSquadViewListener(self.proxy)
     g_eventBus.handleEvent(event(self.__ns, event.INITIALIZED))