diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index c52003e36..769b4bc6a 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -7784,6 +7784,7 @@ static void RequireMainMenuContinueRunState(string root) "RestoreDroppedPickupsFromDaemonZoneState", "TryGetDaemonEntitySnapshot(", "TryGetDaemonParentSnapshot(", + "IsCurrentEntityObservedUndocked(", "parentSnapshot.DockingBayAssignments", "dockedEntitySnapshot.ChildEntityIndices", "TryGetObservedEntityFacade(childEntityIndex, out var entity)" @@ -7825,7 +7826,10 @@ static void RequireMainMenuContinueRunState(string root) "TargetIndicator.Target = CurrentEntity.Target.Value.Position", "indicator.Target = CurrentEntity.Target.Value.Position", "foreach (var bay in CurrentEntity.Parent.DockingBays)", - "foreach (var entity in DockedEntity.Children)" + "foreach (var entity in DockedEntity.Children)", + "CurrentEntity != null && CurrentEntity.Parent == null", + "CurrentEntity !=null && CurrentEntity.Parent==null", + "CurrentEntity == null || CurrentEntity.Parent != null" }; var forbiddenGameplayHits = forbiddenGameplaySymbols diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 394cf39f5..6492567cc 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -2170,7 +2170,7 @@ public class ActionGameManager : MonoBehaviour if (Menu.gameObject.activeSelf && Menu.CurrentTab == tab) { Menu.gameObject.SetActive(false); - if (CurrentEntity != null && CurrentEntity.Parent == null) + if (IsCurrentEntityObservedUndocked()) { EnablePlayerInput(); UpdatePlayerPanel(); @@ -3192,6 +3192,12 @@ public class ActionGameManager : MonoBehaviour return false; } + private bool IsCurrentEntityObservedUndocked() + { + return TryGetDaemonEntitySnapshot(CurrentEntity, out _) && + !TryGetDaemonParentSnapshot(CurrentEntity, out _, out _); + } + private bool TryQueryDaemonEntityContact( Entity observer, Entity target, @@ -3558,7 +3564,7 @@ public class ActionGameManager : MonoBehaviour _hitMarkerTime -= Time.deltaTime; if(HitMarker.activeSelf && _hitMarkerTime < 0) HitMarker.SetActive(false); // ItemManager.Time = _time; - if(CurrentEntity !=null && CurrentEntity.Parent==null) + if(IsCurrentEntityObservedUndocked()) { var observedTarget = GetObservedTarget(CurrentEntity); ReconcileVisibleTargetIndicators(); @@ -4163,7 +4169,7 @@ public class ActionGameManager : MonoBehaviour private void UpdateTargetIndicators() { - if (CurrentEntity == null || CurrentEntity.Parent != null) return; + if (!IsCurrentEntityObservedUndocked()) return; if (!ZoneRenderer.TryGetEntityInstance(CurrentEntity, out var entityInstance)) return;