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
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
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)
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
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
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
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()
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
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}
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)
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
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')})
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
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
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}
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
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
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)
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']
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)
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])
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.')
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
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.')
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}
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
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.')
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))
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}
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)}
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)
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])
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))
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
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()
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))
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)
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}
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, }
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)
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')
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)
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.')
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
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}
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 }
def updateScale(self): index = g_settingsCore.getSetting( settings_constants.GRAPHICS.INTERFACE_SCALE) g_settingsCore.options.getSetting('interfaceScale').setSystemValue( index)
def _canBeShown(self): return self.clansCtrl.isEnabled() and self.clansCtrl.getAccountProfile( ) is not None and g_settingsCore.getSetting( 'receiveClanInvitesNotifications')
def getColorGroup(self): from account_helpers.settings_core.SettingsCore import g_settingsCore if g_settingsCore.getSetting('isColorBlind'): return 'color_blind' return 'default'
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()
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))