def addVehicleMarker(self, vProxy, vInfo, guiProps): vTypeDescr = vProxy.typeDescriptor maxHealth = vTypeDescr.maxHealth mProv = vProxy.model.node('HP_gui') isAlly = guiProps.isFriend speaking = False if GUI_SETTINGS.voiceChat: speaking = VoiceChatInterface.g_instance.isPlayerSpeaking(vInfo.player.accountDBID) hunting = VehicleActions.isHunting(vInfo.events) markerID = self._createVehicleMarker(isAlly, mProv) self.__markers[vInfo.vehicleID] = _VehicleMarker(markerID, vProxy, self.__ownUIProxy) battleCtx = g_sessionProvider.getCtx() result = battleCtx.getPlayerFullNameParts(vProxy.id) vType = vInfo.vehicleType teamIdx = -1 if arena_info.isFalloutMultiTeam() and vInfo.isSquadMan(): teamIdx = g_sessionProvider.getArenaDP().getMultiTeamsIndexes()[vInfo.team] self.invokeMarker(markerID, 'init', [vType.classTag, vType.iconPath, result.vehicleName, vType.level, result.playerFullName, result.playerName, result.clanAbbrev, result.regionCode, vProxy.health, maxHealth, guiProps.name(), speaking, hunting, guiProps.base, g_ctfManager.getVehicleCarriedFlagID(vInfo.vehicleID) is not None, teamIdx]) return markerID
def start(self): player = BigWorld.player() playerVehicleID = player.playerVehicleID arena = player.arena arenaType = arena.arenaType self.__playerTeam = player.team self.__isTeamPlayer = self.__playerTeam in arenaType.squadTeamNumbers if arena_info.isFalloutMultiTeam() else True self.__capturePoints = arenaType.flagAbsorptionPoints self.__spawnPoints = arenaType.flagSpawnPoints isFlagBearer = False for flagID, flagInfo in g_ctfManager.getFlags(): vehicleID = flagInfo['vehicle'] if vehicleID is None: flagState = flagInfo['state'] if flagState == constants.FLAG_STATE.WAITING_FIRST_SPAWN: self.__onFlagSpawning(flagID, flagInfo['respawnTime']) elif flagState in (constants.FLAG_STATE.ON_GROUND, constants.FLAG_STATE.ON_SPAWN): self.__onSpawnedAtBase(flagID, flagInfo['team'], flagInfo['minimapPos']) elif vehicleID == playerVehicleID: isFlagBearer = True if isFlagBearer: self.__addCaptureMarkers() super(_FlagsMarkerPlugin, self).start() return
def start(self): player = BigWorld.player() playerVehicleID = player.playerVehicleID arena = player.arena arenaType = arena.arenaType self.__playerTeam = player.team self.__isTeamPlayer = self.__playerTeam in arenaType.squadTeamNumbers if arena_info.isFalloutMultiTeam( ) else True self.__capturePoints = arenaType.flagAbsorptionPoints self.__spawnPoints = arenaType.flagSpawnPoints isFlagBearer = False for flagID, flagInfo in g_ctfManager.getFlags(): vehicleID = flagInfo['vehicle'] if vehicleID is None: flagState = flagInfo['state'] if flagState == constants.FLAG_STATE.WAITING_FIRST_SPAWN: self.__onFlagSpawning(flagID, flagInfo['respawnTime']) elif flagState in (constants.FLAG_STATE.ON_GROUND, constants.FLAG_STATE.ON_SPAWN): self.__onSpawnedAtBase(flagID, flagInfo['team'], flagInfo['minimapPos']) elif vehicleID == playerVehicleID: isFlagBearer = True if isFlagBearer: self.__addCaptureMarkers() super(_FlagsMarkerPlugin, self).start() return
def addVehicleMarker(self, vProxy, vInfo, guiProps): vTypeDescr = vProxy.typeDescriptor maxHealth = vTypeDescr.maxHealth mProv = vProxy.model.node('HP_gui') isAlly = guiProps.isFriend speaking = False if GUI_SETTINGS.voiceChat: speaking = VoiceChatInterface.g_instance.isPlayerSpeaking( vInfo.player.accountDBID) hunting = VehicleActions.isHunting(vInfo.events) markerID = self._createVehicleMarker(isAlly, mProv) self.__markers[vInfo.vehicleID] = _VehicleMarker( markerID, vProxy, self.__ownUIProxy) battleCtx = g_sessionProvider.getCtx() result = battleCtx.getPlayerFullNameParts(vProxy.id) vType = vInfo.vehicleType teamIdx = -1 if arena_info.isFalloutMultiTeam() and vInfo.isSquadMan(): teamIdx = g_sessionProvider.getArenaDP().getMultiTeamsIndexes()[ vInfo.team] self.invokeMarker(markerID, 'init', [ vType.classTag, vType.iconPath, result.vehicleName, vType.level, result.playerFullName, result.playerName, result.clanAbbrev, result.regionCode, vProxy.health, maxHealth, guiProps.name(), speaking, hunting, guiProps.base, g_ctfManager.getVehicleCarriedFlagID( vInfo.vehicleID) is not None, teamIdx ]) return markerID
def getHelpTextAsDicts(arenaType = None, arenaBonusType = None): pointsObjective = hasResourcePoints(arenaType, arenaBonusType) isMultiteam = isFalloutMultiTeam() if pointsObjective: objectiveHead = neutral(FALLOUT.INFOPANEL_RESOURCEPOINTS_HEAD) objectiveDescr = main(FALLOUT.INFOPANEL_RESOURCEPOINTS_DESCR) else: objectiveHead = neutral(FALLOUT.INFOPANEL_GETFLAGS_HEAD) objectiveDescr = main(FALLOUT.INFOPANEL_GETFLAGS_DESCR) secretsWinHead = neutral(FALLOUT.INFOPANEL_SECRETWIN_HEAD) secretsWinDescr = main(FALLOUT.INFOPANEL_SECRETWIN_DESCR) repairHead = neutral(FALLOUT.INFOPANEL_REPAIR_HEAD) repairDescr = main(FALLOUT.INFOPANEL_REPAIR_DESCR) if isMultiteam: garageHead = neutral(FALLOUT.INFOPANEL_GARAGEMULTITEAM_HEAD) garageDescr = main(FALLOUT.INFOPANEL_GARAGEMULTITEAM_DESCR) else: garageHead = neutral(FALLOUT.INFOPANEL_GARAGE_HEAD) garageDescr = main(FALLOUT.INFOPANEL_GARAGE_DESCR) return [{'head': objectiveHead, 'descr': objectiveDescr}, {'head': secretsWinHead, 'descr': secretsWinDescr}, {'head': repairHead, 'descr': repairDescr}, {'head': garageHead, 'descr': garageDescr}]
def _setWinCondition(self): from gui.battle_control import g_sessionProvider arenaSubType = getArenaSubTypeName(BigWorld.player().arenaTypeID) arenaDP = g_sessionProvider.getArenaDP() if self._preBattleTimerUI is not None: if not arena_info.isFalloutBattle(): winText = getBattleSubTypeWinText(BigWorld.player().arenaTypeID, arenaDP.getNumberOfTeam()) elif arena_info.isFalloutMultiTeam(): winText = i18n.makeString(ARENAS.TYPE_FALLOUTMUTLITEAM_DESCRIPTION) else: winText = i18n.makeString('#arenas:type/%s/description' % arenaSubType) self._preBattleTimerUI.setWinConditionText(winText) return
def start(self, ui): self.__ui = weakref.proxy(ui) player = BigWorld.player() self.__playerVehicleID = player.playerVehicleID self.__playerTeam = player.team self.__soundNotifications = weakref.proxy(getSoundNotifications()) arena = player.arena arenaType = arena.arenaType self.__isTeamPlayer = self.__playerTeam in arenaType.squadTeamNumbers if isFalloutMultiTeam() else True g_ctfManager.onFlagCapturedByVehicle += self.__onFlagCapturedByVehicle g_ctfManager.onFlagAbsorbed += self.__onFlagAbsorbed g_ctfManager.onFlagDroppedToGround += self.__onFlagDroppedToGround g_ctfManager.onFlagRemoved += self.__onFlagRemoved if g_ctfManager.isFlagBearer(self.__playerVehicleID): self.__ui.showFlagCaptured()
def start(self, ui): self.__ui = weakref.proxy(ui) player = BigWorld.player() self.__playerVehicleID = player.playerVehicleID self.__playerTeam = player.team self.__soundNotifications = weakref.proxy(getSoundNotifications()) arena = player.arena arenaType = arena.arenaType self.__isTeamPlayer = self.__playerTeam in arenaType.squadTeamNumbers if isFalloutMultiTeam( ) else True g_ctfManager.onFlagCapturedByVehicle += self.__onFlagCapturedByVehicle g_ctfManager.onFlagAbsorbed += self.__onFlagAbsorbed g_ctfManager.onFlagDroppedToGround += self.__onFlagDroppedToGround g_ctfManager.onFlagRemoved += self.__onFlagRemoved if g_ctfManager.getVehicleCarriedFlagID( self.__playerVehicleID) is not None: self.__ui.showFlagCaptured() return
def addVehicleMarker(self, vProxy, vInfo, guiProps): vTypeDescr = vProxy.typeDescriptor maxHealth = vTypeDescr.maxHealth mProv = vProxy.model.node('HP_gui') isAlly = guiProps.isFriend speaking = False if GUI_SETTINGS.voiceChat: speaking = VoiceChatInterface.g_instance.isPlayerSpeaking(vInfo.player.accountDBID) hunting = VehicleActions.isHunting(vInfo.events) markerID = self._createVehicleMarker(isAlly, mProv) self.__markers[vInfo.vehicleID] = _VehicleMarker(markerID, vProxy, self.__ownUIProxy) battleCtx = g_sessionProvider.getCtx() fullName, pName, clanAbbrev, regionCode, vehShortName = battleCtx.getFullPlayerNameWithParts(vProxy.id) vType = vInfo.vehicleType squadIcon = '' if arena_info.isFalloutMultiTeam() and vInfo.isSquadMan(): teamIdx = g_sessionProvider.getArenaDP().getMultiTeamsIndexes()[vInfo.team] squadIconTemplate = '%s%d' if guiProps.name() == 'squadman': squadTeam = 'my' elif isAlly: squadTeam = 'ally' else: squadTeam = 'enemy' squadIcon = squadIconTemplate % (squadTeam, teamIdx) self.invokeMarker(markerID, 'init', [vType.classTag, vType.iconPath, vehShortName, vType.level, fullName, pName, clanAbbrev, regionCode, vProxy.health, maxHealth, guiProps.name(), speaking, hunting, guiProps.base, g_ctfManager.isFlagBearer(vInfo.vehicleID), squadIcon]) return markerID
def __getHelpText(self): arena = BigWorld.player().arena arenaType = arena.arenaType isSolo = len(list(g_sessionProvider.getArenaDP().getVehiclesIterator())) == 1 plusStr = makeString(FALLOUT.INFOPANEL_SINGLEHELPTEXT_PLUS) isMultiteam = isFalloutMultiTeam() headerStr = makeHtmlString(_HTML_TEMPLATE_FALLOUT_INFO_KEY, 'header', makeString(FALLOUT.INFOPANEL_SECRETWIN_HEAD)) additionalBlockTemplate = makeHtmlString(_HTML_TEMPLATE_FALLOUT_INFO_KEY, 'winPoints') costKill, costFlags, costDamage = getCosts(arenaType, isSolo, True) helpStr = '' if hasFlags(arenaType, arena.bonusType) and len(costFlags) > 0: costFlags = list(costFlags)[0] helpStr = self.__getAdditionalBlockStr(additionalBlockTemplate, FALLOUT.INFOPANEL_SINGLEHELPTEXT_WINPOINTS_FLAGCAPTURE, warning(plusStr + str(costFlags))) if isMultiteam and isSolo: helpStr = self.__getAdditionalBlockStr(additionalBlockTemplate, FALLOUT.INFOPANEL_SINGLEHELPTEXT_WINPOINTS_FLAGDESTROY, warning(plusStr + str(costFlags))) helpStr += self.__getAdditionalBlockStr(additionalBlockTemplate, FALLOUT.INFOPANEL_SINGLEHELPTEXT_WINPOINTS_KILL, warning(plusStr + str(costKill))) damageDealt, points = costDamage points = warning(plusStr + str(points)) helpStr += additionalBlockTemplate % makeString(FALLOUT.INFOPANEL_SINGLEHELPTEXT_WINPOINTS_DAMAGE, points=points, damageDealt=damageDealt) return headerStr + helpStr
def __populateData(self): arena = avatar_getter.getArena() arenaDP = g_sessionProvider.getArenaDP() arenaData = ['', 0, '', '', ''] if arena: arenaData = [toUpper(arena.arenaType.name)] descExtra = getPrebattleFullDescription(arena.extraData or {}) arenaSubType = getArenaSubTypeName(BigWorld.player().arenaTypeID) if descExtra: arenaData.extend([arena.guiType + 1, descExtra]) elif arena.guiType in [constants.ARENA_GUI_TYPE.RANDOM, constants.ARENA_GUI_TYPE.TRAINING]: arenaTypeName = '#arenas:type/%s/name' % arenaSubType arenaData.extend([getNecessaryArenaFrameName(arenaSubType, isBaseExists(BigWorld.player().arenaTypeID, BigWorld.player().team)), arenaTypeName]) elif arena.guiType in constants.ARENA_GUI_TYPE.RANGE: arenaData.append(constants.ARENA_GUI_TYPE_LABEL.LABELS[arena.guiType]) arenaData.append('#menu:loading/battleTypes/%d' % arena.guiType) else: arenaData.extend([arena.guiType + 1, '#menu:loading/battleTypes/%d' % arena.guiType]) myTeamNumber = arenaDP.getNumberOfTeam() getTeamName = g_sessionProvider.getCtx().getTeamName arenaData.extend([getTeamName(myTeamNumber), getTeamName(arenaDP.getNumberOfTeam(enemy=True))]) teamHasBase = 1 if isBaseExists(BigWorld.player().arenaTypeID, myTeamNumber) else 2 if not isFalloutBattle(): typeEvent = 'normal' winText = getBattleSubTypeWinText(BigWorld.player().arenaTypeID, teamHasBase) else: typeEvent = 'fallout' if isFalloutMultiTeam(): winText = i18n.makeString(ARENAS.TYPE_FALLOUTMUTLITEAM_DESCRIPTION) else: winText = i18n.makeString('#arenas:type/%s/description' % arenaSubType) arenaData.append(winText) arenaData.append(typeEvent) arenaData.extend(_getQuestsTipData(arena, arenaDP)) arenaData.extend([_SMALL_MAP_SOURCE % arena.arenaType.geometryName]) self.__callEx('arenaData', arenaData)
def afterCreate(self): event = events.AppLifeCycleEvent g_eventBus.handleEvent(event(self.__ns, event.INITIALIZING)) player = BigWorld.player() voice = VoiceChatInterface.g_instance 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', voice.voiceChatProvider) 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.GUI_VISIBILITY, 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 isMutlipleTeams = isFalloutMultiTeam() isFallout = isFalloutBattle() self.proxy = weakref.proxy(self) self.__battle_flashObject = self.proxy.getMember('_level0') if self.__battle_flashObject: self.__battle_flashObject.resync() voice.populateUI(self.proxy) 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.__timersBar = TimersBar(self.proxy, isFallout) self.__teamBasesPanel = TeamBasesPanel(self.proxy) self.__debugPanel = DebugPanel(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.__indicators = IndicatorsCollection() 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.__debugPanel.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) 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) 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() g_sessionProvider.setBattleUI(self) 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]) g_tankActiveCamouflage[player.vehicleTypeDescriptor.type.compactDescr] = self.__arena.arenaType.vehicleCamouflageKind keyCode = CommandMapping.g_instance.get('CMD_VOICECHAT_MUTE') if not BigWorld.isKeyDown(keyCode): VOIP.getVOIPManager().setMicMute(True) ctrl = g_sessionProvider.getVehicleStateCtrl() 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))