def __centerMapBasedOnMode(self): newEntryID = self.__savedEntry if self._isInPostmortemMode(): iah = avatar_getter.getInputHandler() if iah and iah.ctrls[ CTRL_MODE_NAME. POSTMORTEM].altTargetMode == CTRL_MODE_NAME.DEATH_FREE_CAM: newEntryID = self._getViewPointID() else: newEntryID = self._getDeadPointID() self.__mode = CTRL_MODE_NAME.POSTMORTEM elif self._isInStrategicMode(): newEntryID = self._getCameraIDs()[_S_NAME.STRATEGIC_CAMERA] self.__mode = CTRL_MODE_NAME.STRATEGIC elif self._isInArcadeMode(): newEntryID = self._getViewPointID() self.__mode = CTRL_MODE_NAME.ARCADE elif self._isInVideoMode(): newEntryID = self._getCameraIDs()[_S_NAME.VIDEO_CAMERA] self.__mode = CTRL_MODE_NAME.DEATH_FREE_CAM else: newEntryID = self._getViewPointID() self.__mode = None if self.__savedEntry != newEntryID: self._parentObj.setMinimapCenterEntry(newEntryID) self.__savedEntry = newEntryID return
def handleKey(self, isDown, key, mods): if key == Keys.KEY_ESCAPE: if self.__keyHandlers: for handler in self.__keyHandlers[:]: if handler.handleEscKey(isDown): return True if isDown: handler = avatar_getter.getInputHandler() if handler is not None and handler.ctrlModeName != CTRL_MODE_NAME.MAP_CASE: event_dispatcher.showIngameMenu() event_dispatcher.toggleFullStats(False) return True elif key in (Keys.KEY_LCONTROL, Keys.KEY_RCONTROL): if not self.__consumers: avatar_getter.setForcedGuiControlMode(isDown) return True elif key == Keys.KEY_TAB and (mods != Keys.MODIFIER_CTRL or not isDown): event_dispatcher.toggleFullStats(isDown) return True elif key == Keys.KEY_TAB and mods == Keys.MODIFIER_CTRL and isDown: if not self.__consumers: event_dispatcher.setNextPlayerPanelMode() return True else: return False
def handleKey(self, isDown, key, mods): if key == Keys.KEY_ESCAPE: if self.__keyHandlers: for handler in self.__keyHandlers[:]: if handler.handleEscKey(isDown): return True if isDown: handler = avatar_getter.getInputHandler() if handler is not None and handler.ctrlModeName != CTRL_MODE_NAME.MAP_CASE: event_dispatcher.showIngameMenu() event_dispatcher.toggleFullStats(False) return True elif key in (Keys.KEY_LCONTROL, Keys.KEY_RCONTROL): if not self.__consumers: avatar_getter.setForcedGuiControlMode(isDown) return True elif key == Keys.KEY_TAB and (mods != Keys.MODIFIER_CTRL or not isDown): event_dispatcher.toggleFullStats(isDown) return True elif key == Keys.KEY_TAB and mods == Keys.MODIFIER_CTRL and isDown: if not self.__consumers: event_dispatcher.setNextPlayerPanelMode() return True else: return False
def _getPostmortemCenterEntry(self): iah = avatar_getter.getInputHandler() if iah and iah.ctrls[CTRL_MODE_NAME.POSTMORTEM].altTargetMode == CTRL_MODE_NAME.DEATH_FREE_CAM: newEntryID = self._getViewPointID() else: newEntryID = self._getDeadPointID() return newEntryID
def onExitBattlePage(self): handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged -= self.onCameraChanged events.onArmorChanged -= self.onArmorChanged events.onMarkerColorChanged -= self.onMarkerColorChanged super(ArmorCalculator, self).onExitBattlePage()
def setAttentionToCell(self, x, y, isRightClick): finalPos = self._getPositionFromClick(x, y) if isRightClick: handler = avatar_getter.getInputHandler() if handler is not None: handler.onMinimapClicked(finalPos) else: commands = self.sessionProvider.shared.chatCommands hqIdx = self.__getNearestHQForPosition(finalPos, 30) baseIdx, baseName = self.__getNearestBaseForPosition(finalPos, 30) if not hqIdx and not baseIdx: if commands is not None: commands.sendAttentionToPosition( Math.Vector3(int(finalPos.x), int(finalPos.y), int(finalPos.z))) elif hqIdx: if commands is not None: commands.sendAttentionToObjective( hqIdx, self._arenaDP.getNumberOfTeam() == EPIC_BATTLE_TEAM_ID.TEAM_ATTACKER) elif baseIdx: if commands is not None: commands.sendAttentionToBase( baseIdx, baseName, self._arenaDP.getNumberOfTeam() == EPIC_BATTLE_TEAM_ID.TEAM_ATTACKER) return
def stop(self): self.__removeMarkerCallbacks() while self._markers: _, marker = self._markers.popitem() marker.destroy() while self._markerTimers: _, timers = self._markerTimers.popitem() while timers: _, timer = timers.popitem() timer.clear() self._markerTimers.clear() handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged -= self.__onCameraChanged ctrl = self.sessionProvider.shared.feedback if ctrl is not None: ctrl.onVehicleMarkerAdded -= self.__onVehicleMarkerAdded ctrl.onVehicleMarkerRemoved -= self.__onVehicleMarkerRemoved ctrl.onVehicleFeedbackReceived -= self._onVehicleFeedbackReceived ctrl.setInFocusForPlayer -= self.__setInFocusForPlayer ctrl.onRemoveCommandReceived -= self.__onRemoveCommandReceived vStateCtrl = self.sessionProvider.shared.vehicleState if vStateCtrl is not None: vStateCtrl.onVehicleStateUpdated -= self._onVehicleStateUpdated arena = avatar_getter.getArena() if arena is not None: arena.onChatCommandTargetUpdate -= self._onChatCommandTargetUpdate g_messengerEvents.voip.onPlayerSpeaking -= self.__onPlayerSpeaking g_playerEvents.onTeamChanged -= self.__onTeamChanged self.settingsCore.onSettingsChanged -= self.__onSettingsChanged super(VehicleMarkerPlugin, self).stop() return
def setViewComponents(self, component): self.__damageIndicatorExtType = bool( self.settingsCore.getSetting(DAMAGE_INDICATOR.TYPE)) self.__damageIndicatorCrits = bool( self.settingsCore.getSetting(DAMAGE_INDICATOR.PRESET_CRITS)) self.__damageIndicatorAllies = bool( self.settingsCore.getSetting(DAMAGE_INDICATOR.PRESET_ALLIES)) self.__ui = component self.__ui.invalidateSettings() self.__ui.setVisible(self.__isVisible) proxy = weakref.proxy(self.__ui) handler = avatar_getter.getInputHandler() if handler is not None: from AvatarInputHandler import AvatarInputHandler if isinstance(handler, AvatarInputHandler): handler.onPostmortemKillerVisionEnter += self.__onPostmortemKillerVision ctrl = self.sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleControlling += self.__onVehicleControlling for hit in self.__pull: idx = hit.getIndex() duration = hit.setIndicator(proxy) if duration: self.__callbackIDs[idx] = BigWorld.callback( duration, partial(self.__tickToHideHit, idx)) return
def start(self): super(VehicleMarkerPlugin, self).start() self._playerVehicleID = self.sessionProvider.getArenaDP().getPlayerVehicleID() self.sessionProvider.addArenaCtrl(self) settingsDamageIcon = self.settingsCore.getSetting(GAME.SHOW_DAMAGE_ICON) isInBootcamp = self.bootcamp.isInBootcamp() enableInBootcamp = isInBootcamp and self.bootcamp.isEnableDamageIcon() self.__showDamageIcon = settingsDamageIcon and (not isInBootcamp or enableInBootcamp) handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged += self.__onCameraChanged ctrl = self.sessionProvider.shared.feedback if ctrl is not None: ctrl.onVehicleMarkerAdded += self.__onVehicleMarkerAdded ctrl.onVehicleMarkerRemoved += self.__onVehicleMarkerRemoved ctrl.onVehicleFeedbackReceived += self._onVehicleFeedbackReceived ctrl.setInFocusForPlayer += self.__setInFocusForPlayer ctrl.onRemoveCommandReceived += self.__onRemoveCommandReceived vStateCtrl = self.sessionProvider.shared.vehicleState if vStateCtrl is not None: vStateCtrl.onVehicleStateUpdated += self.__onVehicleStateUpdated arena = avatar_getter.getArena() if arena is not None: arena.onChatCommandTargetUpdate += self._onChatCommandTargetUpdate self.__equipmentCtrl = self.sessionProvider.shared.equipments g_messengerEvents.voip.onPlayerSpeaking += self.__onPlayerSpeaking g_playerEvents.onTeamChanged += self.__onTeamChanged self.settingsCore.onSettingsChanged += self.__onSettingsChanged return
def onExitBattlePage(self): feedback = self.sessionProvider.shared.feedback if feedback: feedback.onPlayerFeedbackReceived -= self.__onPlayerFeedbackReceived handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged += self.onCameraChanged super(MainGun, self).onExitBattlePage()
def stop(self): handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged -= self.__onCameraChanged handler.onPostmortemVehicleChanged -= self.__onPostmortemVehicleChanged g_settingsCore.onSettingsChanged -= self.__onSettingsChanged super(MinimapPluginsCollection, self).stop() return
def stop(self): handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged -= self.__onCameraChanged handler.onPostmortemVehicleChanged -= self.__onPostmortemVehicleChanged g_settingsCore.onSettingsChanged -= self.__onSettingsChanged super(MinimapPluginsCollection, self).stop() return
def __unsubscribe(self): vStateCtrl = self.sessionProvider.shared.vehicleState if vStateCtrl is not None: vStateCtrl.onVehicleStateUpdated -= self.__onVehicleStateUpdated aih = avatar_getter.getInputHandler() if aih is not None: aih.onCameraChanged -= self.__onCameraChanged return
def onExitBattlePage(self): if self.showOnCurrentTank(): if self.shared.crosshair: self.shared.crosshair.onGunMarkerStateChanged -= self.__onGunMarkerStateChanged handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged += self.onCameraChanged super(FlightTime, self).onExitBattlePage()
def isAutoRotationOn(vDesc): isOn = None if hasYawLimits(vDesc): aih = avatar_getter.getInputHandler() isOn = False if aih is not None: isOn = aih.getAutorotation() return isOn
def stop(self): handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged -= self.__onCameraChanged self.settingsCore.onSettingsChanged -= self.__onSettingsChanged super(MinimapPluginsCollection, self).stop() return
def isAutoRotationOn(vDesc): isOn = None if hasYawLimits(vDesc): aih = avatar_getter.getInputHandler() isOn = False if aih is not None: isOn = aih.getAutorotation() return isOn
def getAutoRotationFlag(vDesc): flag = AUTO_ROTATION_FLAG.IGNORE_IN_UI if hasYawLimits(vDesc): aih = avatar_getter.getInputHandler() if aih is None or aih.getAutorotation(): flag = AUTO_ROTATION_FLAG.TURN_ON else: flag = AUTO_ROTATION_FLAG.TURN_OFF return flag
def __setRecoveryActive(self, values): isActivated, duration, endOfTimer = values if isActivated and avatar_getter.getInputHandler( ).ctrlModeName not in (CTRL_MODE_NAME.POSTMORTEM, CTRL_MODE_NAME.DEATH_FREE_CAM): self._showTimer(BATTLE_NOTIFICATIONS_TIMER_TYPES.RECOVERY, duration, 'critical', endOfTimer) else: self._hideTimer(BATTLE_NOTIFICATIONS_TIMER_TYPES.RECOVERY)
def switchToPlayer(self, vehicleID): handler = avatar_getter.getInputHandler() modeName = handler.ctrlModeName if handler is not None else '' arenaDP = self.__sessionProvider.getArenaDP() vehInfo = arenaDP.getVehicleInfo(vehicleID) if vehInfo.isAlive() and modeName != CTRL_MODE_NAME.VIDEO: if handler.isControlModeChangeAllowed(): self.__sessionProvider.shared.viewPoints.selectVehicle( vehicleID) return
def start(self): super(MinimapPluginsCollection, self).start() handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged += self.__onCameraChanged handler.onPostmortemVehicleChanged += self.__onPostmortemVehicleChanged self._invoke('initControlMode', handler.ctrlModeName, handler.ctrls.keys()) g_settingsCore.onSettingsChanged += self.__onSettingsChanged self._invoke('setSettings') return
def start(self): super(MinimapPluginsCollection, self).start() handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged += self.__onCameraChanged self._invoke('initControlMode', handler.ctrlModeName, handler.ctrls.keys()) self.settingsCore.onSettingsChanged += self.__onSettingsChanged self._invoke('setSettings') return
def start(self): super(MinimapPluginsCollection, self).start() handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged += self.__onCameraChanged handler.onPostmortemVehicleChanged += self.__onPostmortemVehicleChanged self._invoke('initControlMode', handler.ctrlModeName, handler.ctrls.keys()) g_settingsCore.onSettingsChanged += self.__onSettingsChanged self._invoke('setSettings') return
def __init__(self, updateCallback): super(_VehicleStateSN, self).__init__(updateCallback) ctrl = self._sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated += self.__onVehicleStateUpdated handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged += self.__onCameraChanged return
def __doUpdateSmokePostEffect(): aih = avatar_getter.getInputHandler() avatar = BigWorld.player() if avatar is None or aih is None or aih.ctrlModeName == CTRL_MODE_NAME.DEATH_FREE_CAM: SmokeScreen.enableSmokePostEffect(enabled=False) else: smokeInfos = avatar.lastSmokeInfos SmokeScreen.enableSmokePostEffect(enabled=bool(smokeInfos), smokeInfos=smokeInfos) return
def destroy(self): ctrl = self._sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated -= self.__onVehicleStateUpdated ctrl.onVehicleControlling -= self.__onVehicleControlling handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged -= self.__onCameraChanged super(_VehicleStateSN, self).destroy() return
def setAttentionToCell(self, x, y, isRightClick): if isRightClick: handler = avatar_getter.getInputHandler() if handler is not None: matrix = minimap_utils.makePointMatrixByLocal(x, y, *self._boundingBox) handler.onMinimapClicked(matrix.translation) else: commands = g_sessionProvider.shared.chatCommands if commands is not None: commands.sendAttentionToCell(minimap_utils.makeCellIndex(x, y)) return
def _dispose(self): ctrl = g_sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated -= self.__onVehicleStateUpdated handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged -= self.__onCameraChanged self.__timers.clear() self.__mapping.clear() self.__stopSound() super(DestroyTimersPanel, self)._dispose() return
def setAttentionToCell(self, x, y, isRightClick): if isRightClick: handler = avatar_getter.getInputHandler() if handler is not None: matrix = minimap_utils.makePointMatrixByLocal( x, y, *self._boundingBox) handler.onMinimapClicked(matrix.translation) else: commands = self.sessionProvider.shared.chatCommands if commands is not None: commands.sendAttentionToCell(minimap_utils.makeCellIndex(x, y)) return
def _dispose(self): ctrl = g_sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated -= self.__onVehicleStateUpdated handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged -= self.__onCameraChanged self.__timers.clear() self.__mapping.clear() self.__stopSound() super(DestroyTimersPanel, self)._dispose() return
def getAutoRotationFlag(vDesc): """ Gets auto rotation flag. Auto rotation means hull is tuned if yaw limit is reached. :param vDesc: instance of vehicles.VehicleDescr. :return: one of AUTO_ROTATION_FLAG.*. """ flag = AUTO_ROTATION_FLAG.IGNORE_IN_UI if hasYawLimits(vDesc): aih = avatar_getter.getInputHandler() if aih is None or aih.getAutorotation(): flag = AUTO_ROTATION_FLAG.TURN_ON else: flag = AUTO_ROTATION_FLAG.TURN_OFF return flag
def getAutoRotationFlag(vDesc): """ Gets auto rotation flag. Auto rotation means hull is tuned if yaw limit is reached. :param vDesc: instance of vehicles.VehicleDescr. :return: one of AUTO_ROTATION_FLAG.*. """ flag = AUTO_ROTATION_FLAG.IGNORE_IN_UI if hasYawLimits(vDesc): aih = avatar_getter.getInputHandler() if aih is None or aih.getAutorotation(): flag = AUTO_ROTATION_FLAG.TURN_ON else: flag = AUTO_ROTATION_FLAG.TURN_OFF return flag
def makeArtyAimPointMatrix(): provider = Math.WGCombinedMP() rotationMatrix = Math.WGStrategicAreaViewMP() rotationMatrix.source = BigWorld.camera().invViewMatrix rotationMatrix.baseScale = (1.0, 1.0) handler = getInputHandler() if handler is not None: translationMatrix = handler.ctrl.camera.aimingSystem.aimMatrix else: translationMatrix = Math.Matrix() provider.translationSrc = translationMatrix provider.rotationSrc = rotationMatrix return provider
def _showDeathZoneTimer(self, value): if BigWorld.player( ).team == EPIC_BATTLE_TEAM_ID.TEAM_DEFENDER and not value[ 4] and avatar_getter.getInputHandler( ).ctrlModeName != CTRL_MODE_NAME.POSTMORTEM: if self.__delayedCB is not None: BigWorld.cancelCallback(self.__delayedCB) self.__delayedCB = BigWorld.callback( _LEAVE_ZONE_DEFENDER_DELAY, partial(self.__displayDeathZoneTimer, value[0:4])) else: self.__displayDeathZoneTimer(value[0:4]) return
def __init__(self, updateCallback): super(_VehicleStateSN, self).__init__(updateCallback) ctrl = self._sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated += self.__onVehicleStateUpdated contextID = self._getEquipmentName() if contextID: ctrl.onEquipmentComponentUpdated.subscribe(self.__onEquipmentComponentUpdated, contextID) handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged += self.__onCameraChanged return
def sendReloadingCommand(self): if not avatar_getter.isPlayerOnArena(): return inputHandler = avatar_getter.getInputHandler() if not inputHandler: return aim = inputHandler.aim if not aim: return command = self.proto.battleCmd.create4Reload(aim.isCasseteClip(), math.ceil(aim.getReloadingTimeLeft()), aim.getAmmoQuantityLeft()) if command: self.__sendChatCommand(command) else: LOG_ERROR('Can not create reloading command')
def _populate(self): super(DamageInfoPanel, self)._populate() feedback = self.sessionProvider.shared.feedback if feedback is not None: feedback.onVehicleFeedbackReceived += self.__onVehicleFeedbackReceived vehicleState = self.sessionProvider.shared.vehicleState if vehicleState is not None: vehicleState.onPostMortemSwitched += self.__onPostMortemSwitched vehicleState.onVehicleControlling += self.__onVehicleControlling handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged += self.__onCameraChanged return
def _populate(self): super(DestroyTimersPanel, self)._populate() handler = avatar_getter.getInputHandler() if handler is not None: if isinstance(handler, AvatarInputHandler): handler.onCameraChanged += self.__onCameraChanged ctrl = self.sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated += self._onVehicleStateUpdated ctrl.onVehicleControlling += self.__onVehicleControlling vehicle = ctrl.getControllingVehicle() if vehicle is not None: self.__onVehicleControlling(vehicle) return
def __onCrosshairPositionChanged(self, x, y): if not self.__ui: return else: inputHandler = avatar_getter.getInputHandler() if inputHandler is None: return mode = inputHandler.ctrlModeName if mode not in _AIM_MODE_TO_RADIUS: LOG_ERROR("Value of radius is not defined", mode) return radius = _AIM_MODE_TO_RADIUS[mode] bounds = [x - radius, y - radius, x + radius, y + radius] self.__ui.call("battle.aimVisibleSizeChanged", bounds) return
def _populate(self): super(DestroyTimersPanel, self)._populate() ctrl = g_sessionProvider.shared.vehicleState if ctrl is not None: ctrl.onVehicleStateUpdated += self.__onVehicleStateUpdated checkStatesIDs = (VEHICLE_VIEW_STATE.FIRE, VEHICLE_VIEW_STATE.SHOW_DESTROY_TIMER, VEHICLE_VIEW_STATE.SHOW_DEATHZONE_TIMER) for stateID in checkStatesIDs: stateValue = ctrl.getStateValue(stateID) if stateValue: self.__onVehicleStateUpdated(stateID, stateValue) handler = avatar_getter.getInputHandler() if handler is not None: handler.onCameraChanged += self.__onCameraChanged return