ARFlightController: No longer incapacitates KerbalEVAs.
ARFlightController: No longer incapacitates KerbalEVAs.

--- a/ARFlightController.cs
+++ b/ARFlightController.cs
@@ -64,7 +64,7 @@
 		{
 			get
 			{
-				return ControlTypes.GROUPS_ALL | ControlTypes.STAGING | ControlTypes.SAS | ControlTypes.RCS;
+				return ControlTypes.ALL_SHIP_CONTROLS;
 			}
 		}
 
@@ -86,20 +86,20 @@
 		protected void Awake()
 		{
 			this.lockID = "ARConnectionRequired";
+
+			GameEvents.onGameSceneLoadRequested.Add(this.onSceneChangeRequested);
+			GameEvents.onVesselChange.Add(this.onVesselChange);
 		}
 
 		protected void FixedUpdate()
 		{
-			// Do nothing if the vessel reference is invalid.
-			if (this.vessel == null)
-			{
-				return;
-			}
-
 			// If we are requiring a connection for control, the vessel does not have any adequately staffed pods,
 			// and the vessel does not have any connected relays...
 			if (
+				HighLogic.LoadedSceneIsFlight &&
 				requireConnectionForControl &&
+				this.vessel != null &&
+				this.vessel.vesselType != VesselType.EVA &&
 				!this.vessel.hasCrewCommand() &&
 				!this.vessel.HasConnectedRelay())
 			{
@@ -121,6 +121,24 @@
 		protected void Destroy()
 		{
 			InputLockManager.RemoveControlLock(this.lockID);
+
+			GameEvents.onGameSceneLoadRequested.Remove(this.onSceneChangeRequested);
+			GameEvents.onVesselChange.Remove(this.onVesselChange);
+		}
+		#endregion
+
+		#region Event Handlers
+		protected void onSceneChangeRequested(GameScenes scene)
+		{
+			if (scene != GameScenes.FLIGHT)
+			{
+				InputLockManager.RemoveControlLock(this.lockID);
+			}
+		}
+
+		protected void onVesselChange(Vessel vessel)
+		{
+			InputLockManager.RemoveControlLock(this.lockID);
 		}
 		#endregion
 	}

--- a/ModuleLimitedDataTransmitter.cs
+++ b/ModuleLimitedDataTransmitter.cs
@@ -300,6 +300,8 @@
 				base.packetResourceCost = this._basepacketResourceCost
 					* (float)Math.Pow (this.transmitDistance / this.nominalRange, 2);
 			}
+
+			base.packetResourceCost *= this.packetThrottle / 100f;
 		}
 
 		// Before transmission, set packetSize.  Per above, packet size increases with the inverse square of