diff --git a/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs b/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs index bdfc0e3d0dc..351dc97fe65 100644 --- a/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs +++ b/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs @@ -60,14 +60,8 @@ private bool CanDock( !shuttleDockXform.Anchored || !gridDockXform.Anchored)) { - if (ignored) - { - Undock(gridDock); - } - else - { + if (!ignored) return false; - } } // First, get the station dock's position relative to the shuttle, this is where we rotate it around @@ -213,10 +207,7 @@ private List GetDockingConfigs( // Check if there's no intersecting grids (AKA oh god it's docking at cargo). grids.Clear(); _mapManager.FindGridsIntersecting(targetGridXform.MapID, dockedBounds, ref grids, includeMap: false); - if (ignored) - { - } - else if (grids.Any(o => o.Owner != targetGrid && o.Owner != targetGridXform.MapUid)) + if (grids.Any(o => o.Owner != targetGrid && o.Owner != targetGridXform.MapUid) && !ignored) { continue; } diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs index 52de838826a..ac47f62bf9e 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs @@ -213,6 +213,11 @@ private void OnShuttleRequestPosition(EmergencyShuttleRequestPositionMessage msg if (config == null) return; + foreach (var configDock in config.Docks) + { + _dock.Undock((configDock.DockBUid, configDock.DockB)); + } + RaiseNetworkEvent(new EmergencyShuttlePositionMessage() { StationUid = GetNetEntity(targetGrid),