From b31cc6010011a1ed6961884f5d78e1017aea16a8 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 18 Aug 2025 18:44:51 +0200 Subject: [PATCH 01/16] add myself to codeowners for the trigger system (#39725) add myself to codeowners --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 33a56c4844..5017422e13 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,6 +24,8 @@ /Content.*/Forensics/ @ficcialfaint +/Content.*/Trigger/ @slarticodefast + # SKREEEE /Content.*.Database/ @PJB3005 @DrSmugleaf /Content.Shared.Database/Log*.cs @PJB3005 @DrSmugleaf @crazybrain23 From 342fc84f169274aa90b0890ac8245618a82a061c Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Mon, 18 Aug 2025 20:22:02 +0200 Subject: [PATCH 02/16] Hotfix: Camera offset for "Separated Chat" HUD fix & targetting fix (#35087) * Initial commit * Fix everything * Comment and remove unused dependencies * Update comments for consistency --------- Co-authored-by: PJB3005 --- .../Movement/Systems/ContentEyeSystem.cs | 12 +++++- .../Movement/Systems/EyeCursorOffsetSystem.cs | 37 ++++++++++--------- Content.Client/Wieldable/WieldableSystem.cs | 3 ++ 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/Content.Client/Movement/Systems/ContentEyeSystem.cs b/Content.Client/Movement/Systems/ContentEyeSystem.cs index 518a4a1bd4..a332d25f9a 100644 --- a/Content.Client/Movement/Systems/ContentEyeSystem.cs +++ b/Content.Client/Movement/Systems/ContentEyeSystem.cs @@ -1,7 +1,6 @@ using System.Numerics; using Content.Shared.Movement.Components; using Content.Shared.Movement.Systems; -using Robust.Client.GameObjects; using Robust.Client.Player; namespace Content.Client.Movement.Systems; @@ -63,4 +62,15 @@ public sealed class ContentEyeSystem : SharedContentEyeSystem UpdateEyeOffset((entity, eyeComponent)); } } + + public override void Update(float frameTime) + { + base.Update(frameTime); + // TODO: Ideally we wouldn't want this to run in both FrameUpdate and Update, but we kind of have to since the visual update happens in FrameUpdate, but interaction update happens in Update. It's a workaround and a better solution should be found. + var eyeEntities = AllEntityQuery(); + while (eyeEntities.MoveNext(out var entity, out ContentEyeComponent? contentComponent, out EyeComponent? eyeComponent)) + { + UpdateEyeOffset((entity, eyeComponent)); + } + } } diff --git a/Content.Client/Movement/Systems/EyeCursorOffsetSystem.cs b/Content.Client/Movement/Systems/EyeCursorOffsetSystem.cs index eb524cf4ee..174ae2dd97 100644 --- a/Content.Client/Movement/Systems/EyeCursorOffsetSystem.cs +++ b/Content.Client/Movement/Systems/EyeCursorOffsetSystem.cs @@ -1,10 +1,10 @@ using System.Numerics; using Content.Client.Movement.Components; +using Content.Client.Viewport; using Content.Shared.Camera; using Robust.Client.Graphics; using Robust.Client.Input; using Robust.Shared.Map; -using Robust.Client.Player; namespace Content.Client.Movement.Systems; @@ -12,13 +12,10 @@ public sealed partial class EyeCursorOffsetSystem : EntitySystem { [Dependency] private readonly IEyeManager _eyeManager = default!; [Dependency] private readonly IInputManager _inputManager = default!; - [Dependency] private readonly IPlayerManager _player = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; - [Dependency] private readonly IClyde _clyde = default!; // This value is here to make sure the user doesn't have to move their mouse // all the way out to the edge of the screen to get the full offset. - static private float _edgeOffset = 0.9f; + private static float _edgeOffset = 0.8f; public override void Initialize() { @@ -38,25 +35,29 @@ public sealed partial class EyeCursorOffsetSystem : EntitySystem public Vector2? OffsetAfterMouse(EntityUid uid, EyeCursorOffsetComponent? component) { - var localPlayer = _player.LocalEntity; - var mousePos = _inputManager.MouseScreenPosition; - var screenSize = _clyde.MainWindow.Size; - var minValue = MathF.Min(screenSize.X / 2, screenSize.Y / 2) * _edgeOffset; - - var mouseNormalizedPos = new Vector2(-(mousePos.X - screenSize.X / 2) / minValue, (mousePos.Y - screenSize.Y / 2) / minValue); // X needs to be inverted here for some reason, otherwise it ends up flipped. - - if (localPlayer == null) + // We need the main viewport where the game content is displayed, as certain UI layouts (e.g. Separated HUD) can make it a different size to the game window. + if (_eyeManager.MainViewport is not ScalingViewport vp) return null; - var playerPos = _transform.GetWorldPosition(localPlayer.Value); + var mousePos = _inputManager.MouseScreenPosition.Position; // TODO: If we ever get a right-aligned Separated HUD setting, this might need to be adjusted for that. + + var viewportSize = vp.PixelSize; // The size of the game viewport, including black bars - does not include the chatbox in Separated HUD view. + var scalingViewportSize = vp.ViewportSize * vp.CurrentRenderScale; // The size of the viewport in which the game is rendered (i.e. not including black bars). Note! Can extend outside the game window with certain zoom settings! + var visibleViewportSize = Vector2.Min(viewportSize, scalingViewportSize); // The size of the game viewport that is "actually visible" to the player, cutting off over-extensions and not counting black bar padding. + + Matrix3x2.Invert(_eyeManager.MainViewport.GetLocalToScreenMatrix(), out var matrix); + var mouseCoords = Vector2.Transform(mousePos, matrix); // Gives the mouse position inside of the *scaling viewport*, i.e. 0,0 is inside the black bars. Note! 0,0 can be outside the game window with certain zoom settings! + + var boundedMousePos = Vector2.Clamp(Vector2.Min(mouseCoords, mousePos), Vector2.Zero, visibleViewportSize); // Mouse position inside the visible game viewport's bounds. + + var offsetRadius = MathF.Min(visibleViewportSize.X / 2f, visibleViewportSize.Y / 2f) * _edgeOffset; + var mouseNormalizedPos = new Vector2(-(boundedMousePos.X - visibleViewportSize.X / 2f) / offsetRadius, (boundedMousePos.Y - visibleViewportSize.Y / 2f) / offsetRadius); if (component == null) - { component = EnsureComp(uid); - } // Doesn't move the offset if the mouse has left the game window! - if (mousePos.Window != WindowId.Invalid) + if (_inputManager.MouseScreenPosition.Window != WindowId.Invalid) { // The offset must account for the in-world rotation. var eyeRotation = _eyeManager.CurrentEye.Rotation; @@ -77,7 +78,7 @@ public sealed partial class EyeCursorOffsetSystem : EntitySystem Vector2 vectorOffset = component.TargetPosition - component.CurrentPosition; if (vectorOffset.Length() > component.OffsetSpeed) { - vectorOffset = vectorOffset.Normalized() * component.OffsetSpeed; + vectorOffset = vectorOffset.Normalized() * component.OffsetSpeed; // TODO: Probably needs to properly account for time delta or something. } component.CurrentPosition += vectorOffset; } diff --git a/Content.Client/Wieldable/WieldableSystem.cs b/Content.Client/Wieldable/WieldableSystem.cs index 2de837923c..e40544e39d 100644 --- a/Content.Client/Wieldable/WieldableSystem.cs +++ b/Content.Client/Wieldable/WieldableSystem.cs @@ -29,7 +29,10 @@ public sealed class WieldableSystem : SharedWieldableSystem return; if (_gameTiming.IsFirstTimePredicted) + { cursorOffsetComp.CurrentPosition = Vector2.Zero; + cursorOffsetComp.TargetPosition = Vector2.Zero; + } } public void OnGetEyeOffset(Entity entity, ref HeldRelayedEvent args) From d38d2e209a97885118dd9e87fbbfac4d4843e728 Mon Sep 17 00:00:00 2001 From: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Date: Mon, 18 Aug 2025 11:22:15 -0700 Subject: [PATCH 03/16] Rebalance infiltrator (Nukie ship) (#39091) --- Resources/Maps/Shuttles/infiltrator.yml | 298 ++++++++++++++---------- 1 file changed, 173 insertions(+), 125 deletions(-) diff --git a/Resources/Maps/Shuttles/infiltrator.yml b/Resources/Maps/Shuttles/infiltrator.yml index 784886c892..d8b50e99ab 100644 --- a/Resources/Maps/Shuttles/infiltrator.yml +++ b/Resources/Maps/Shuttles/infiltrator.yml @@ -1,6 +1,17 @@ meta: - format: 6 - postmapinit: false + format: 7 + category: Grid + engineVersion: 266.0.0 + forkId: "" + forkVersion: "" + time: 08/18/2025 05:46:30 + entityCount: 822 +maps: [] +grids: +- 1 +orphans: +- 1 +nullspace: [] tilemap: 0: Space 3: FloorArcadeRed @@ -34,20 +45,20 @@ entities: chunks: -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADHwAAAAABHwAAAAACHwAAAAABHwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAbgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAWAAAAAAAHwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAWAAAAAAAHwAAAAACfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAWAAAAAAAHwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAACHwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfgAAAAAAHwAAAAABHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAHwAAAAACHwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAACWAAAAAAAHwAAAAACHwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAXQAAAAACaAAAAAAAWQAAAAAAHwAAAAADHwAAAAAAHwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAXQAAAAADWQAAAAAAaAAAAAABWAAAAAAAHwAAAAAAHwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAXQAAAAAAXQAAAAADWAAAAAAAHwAAAAACHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAWAAAAAAAWAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAMAHwAAAAABAB8AAAAAAgAfAAAAAAEAHwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAbgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAWAAAAAAAAB8AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAFgAAAAAAAAfAAAAAAIAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAABYAAAAAAAAHwAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAgAfAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAfQAAAAAAAH4AAAAAAAAfAAAAAAEAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAAH4AAAAAAAB+AAAAAAAAHwAAAAACAB8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAXQAAAAACAFgAAAAAAAAfAAAAAAIAHwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAABdAAAAAAIAaAAAAAAAAFkAAAAAAAAfAAAAAAMAHwAAAAAAAB8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAXQAAAAADAFkAAAAAAABoAAAAAAEAWAAAAAAAAB8AAAAAAAAfAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAABdAAAAAAAAXQAAAAADAFgAAAAAAAAfAAAAAAIAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAABYAAAAAAAAWAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + version: 7 0,-1: ind: 0,-1 - tiles: HwAAAAABHwAAAAABHwAAAAABHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAbgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAACWAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAACWAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABWAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABfgAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAADfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABWAAAAAAAegAAAAADfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAADHwAAAAAAHwAAAAAAegAAAAADegAAAAABfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAWAAAAAAAegAAAAAAAwAAAAAAegAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAADWAAAAAAAfgAAAAAAAwAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAWAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 + tiles: HwAAAAABAB8AAAAAAQAfAAAAAAEAHwAAAAABAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAG4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAIAWAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAACAFgAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAQBYAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABAH4AAAAAAAB9AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAwB+AAAAAAAAfgAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABAFgAAAAAAAB6AAAAAAMAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAwAfAAAAAAAAHwAAAAAAAHoAAAAAAwB6AAAAAAEAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAWAAAAAAAAHoAAAAAAAADAAAAAAAAegAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAADAFgAAAAAAAB+AAAAAAAAAwAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAABYAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + version: 7 -1,-2: ind: -1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAWAAAAAAAWAAAAAAAWAAAAAAAfgAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAOAAAAAAAJAAAAAAAOAAAAAAAfgAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAOAAAAAAAJAAAAAAAOAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAOAAAAAAAJAAAAAAAOAAAAAAAWAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAHwAAAAACHwAAAAAAHwAAAAADWAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAHwAAAAACTwAAAAAAHwAAAAABWAAAAAAAfgAAAAAAfgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWAAAAAAAfgAAAAAAHwAAAAAAHwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAKAAAAAAAKAAAAAAAWAAAAAAAHwAAAAADHwAAAAAAHwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAWAAAAAAAHwAAAAAAWAAAAAAAfgAAAAAAHwAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAACHwAAAAABHwAAAAAAHwAAAAADHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAbgAAAAAAHwAAAAAAHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAA - version: 6 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAB9AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAFgAAAAAAABYAAAAAAAAWAAAAAAAAH4AAAAAAAB9AAAAAAAAfQAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAA4AAAAAAAAJAAAAAAAADgAAAAAAAB+AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAOAAAAAAAACQAAAAAAAA4AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAADgAAAAAAAAkAAAAAAAAOAAAAAAAAFgAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAfAAAAAAIAHwAAAAAAAB8AAAAAAwBYAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAHwAAAAACAE8AAAAAAAAfAAAAAAEAWAAAAAAAAH4AAAAAAAB+AAAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAB8AAAAAAAAfAAAAAAAAHwAAAAAAAFgAAAAAAAB+AAAAAAAAHwAAAAAAAB8AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAB+AAAAAAAAKAAAAAAAACgAAAAAAABYAAAAAAAAHwAAAAADAB8AAAAAAAAfAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9AAAAAAAAfgAAAAAAAFgAAAAAAAAfAAAAAAAAWAAAAAAAAH4AAAAAAAAfAAAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAgAfAAAAAAEAHwAAAAAAAB8AAAAAAwAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAG4AAAAAAAAfAAAAAAAAHwAAAAABAH4AAAAAAAB+AAAAAAAAfgAAAAAAAA== + version: 7 0,-2: ind: 0,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfgAAAAAATwAAAAAAfgAAAAAATwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfgAAAAAATwAAAAAAfgAAAAAATwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAATwAAAAAAfgAAAAAATwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABHwAAAAADHwAAAAABHwAAAAADHwAAAAABWAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAADHwAAAAACHwAAAAAAHwAAAAACHwAAAAADfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAHwAAAAACHwAAAAAAHwAAAAADHwAAAAABfgAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABHwAAAAAAHwAAAAABHwAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAHwAAAAAAHwAAAAACbgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAAAAAB9AAAAAAAAfgAAAAAAAE8AAAAAAAB+AAAAAAAATwAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9AAAAAAAAfQAAAAAAAH4AAAAAAABPAAAAAAAAfgAAAAAAAE8AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAATwAAAAAAAH4AAAAAAABPAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAHwAAAAABAH4AAAAAAAB+AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAQAfAAAAAAMAHwAAAAABAB8AAAAAAwAfAAAAAAEAWAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAMAHwAAAAACAB8AAAAAAAAfAAAAAAIAHwAAAAADAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAAB8AAAAAAgAfAAAAAAAAHwAAAAADAB8AAAAAAQB+AAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAEAHwAAAAAAAB8AAAAAAQAfAAAAAAMAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAAAHwAAAAACAG4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + version: 7 - type: Broadphase - type: Physics bodyStatus: InAir @@ -576,12 +587,14 @@ entities: flags: Hide - type: OccluderTree - type: Shuttle + dampingModifier: 0.25 - type: RadiationGridResistance - type: GravityShake shakeTimes: 10 - type: GasTileOverlay - type: SpreaderGrid - type: GridPathfinding + - type: ImplicitRoof - proto: AirlockExternalGlassShuttleSyndicateLocked entities: - uid: 8 @@ -593,7 +606,8 @@ entities: - type: DeviceLinkSource linkedPorts: 13: - - DoorStatus: Close + - - DoorStatus + - Close - type: DeviceLinkSink invokeCounter: 1 - uid: 10 @@ -605,7 +619,8 @@ entities: - type: DeviceLinkSource linkedPorts: 3: - - DoorStatus: Close + - - DoorStatus + - Close - type: DeviceLinkSink invokeCounter: 1 - proto: AirlockExternalSyndicateLocked @@ -618,7 +633,8 @@ entities: - type: DeviceLinkSource linkedPorts: 14: - - DoorStatus: DoorBolt + - - DoorStatus + - DoorBolt - uid: 3 components: - type: Transform @@ -629,7 +645,8 @@ entities: - type: DeviceLinkSource linkedPorts: 10: - - DoorStatus: Close + - - DoorStatus + - Close - uid: 7 components: - type: Transform @@ -638,7 +655,8 @@ entities: - type: DeviceLinkSource linkedPorts: 12: - - DoorStatus: DoorBolt + - - DoorStatus + - DoorBolt - uid: 9 components: - type: Transform @@ -647,7 +665,8 @@ entities: - type: DeviceLinkSource linkedPorts: 22: - - DoorStatus: DoorBolt + - - DoorStatus + - DoorBolt - uid: 12 components: - type: Transform @@ -656,7 +675,8 @@ entities: - type: DeviceLinkSource linkedPorts: 7: - - DoorStatus: DoorBolt + - - DoorStatus + - DoorBolt - uid: 13 components: - type: Transform @@ -667,7 +687,8 @@ entities: - type: DeviceLinkSource linkedPorts: 8: - - DoorStatus: Close + - - DoorStatus + - Close - uid: 14 components: - type: Transform @@ -676,7 +697,8 @@ entities: - type: DeviceLinkSource linkedPorts: 2: - - DoorStatus: DoorBolt + - - DoorStatus + - DoorBolt - uid: 22 components: - type: Transform @@ -685,7 +707,8 @@ entities: - type: DeviceLinkSource linkedPorts: 9: - - DoorStatus: DoorBolt + - - DoorStatus + - DoorBolt - proto: AirlockSyndicateGlassLocked entities: - uid: 4 @@ -727,12 +750,16 @@ entities: - type: Transform pos: -3.5,-18.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 19 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-8.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: AtmosFixNitrogenMarker entities: - uid: 25 @@ -820,45 +847,6 @@ entities: - type: Transform pos: 1.4510483,-2.399527 parent: 1 -- proto: Brutepack - entities: - - uid: 44 - components: - - type: Transform - pos: -3.292087,-4.1600046 - parent: 1 - - uid: 45 - components: - - type: Transform - pos: -3.354587,-4.4256296 - parent: 1 -- proto: C4 - entities: - - uid: 46 - components: - - type: Transform - pos: 1.7857682,-12.631323 - parent: 1 - - uid: 47 - components: - - type: Transform - pos: 1.5045182,-12.646948 - parent: 1 - - uid: 48 - components: - - type: Transform - pos: 1.5982682,-12.646948 - parent: 1 - - uid: 49 - components: - - type: Transform - pos: 1.4107682,-12.646948 - parent: 1 - - uid: 50 - components: - - type: Transform - pos: 1.6920182,-12.631323 - parent: 1 - proto: CableApcExtension entities: - uid: 51 @@ -2210,26 +2198,26 @@ entities: rot: 3.141592653589793 rad pos: -0.5,-3.5 parent: 1 -- proto: CigPackSyndicate +- proto: ClothingBackpackDuffelSyndicateAmmoFilled entities: - - uid: 313 + - uid: 49 components: - type: Transform - pos: -3.5658307,-17.516623 + pos: 1.4468282,-11.670399 parent: 1 - proto: ClothingBackpackDuffelSyndicateFilledMedical entities: - uid: 314 components: - type: Transform - pos: -3.5044222,-6.293252 + pos: -5.6167116,-4.2485933 parent: 1 - proto: ClothingHeadHatSyndie entities: - uid: 315 components: - type: Transform - pos: -3.1200604,-17.289778 + pos: -3.0420556,-17.469692 parent: 1 - proto: ClothingHeadHatSyndieMAA entities: @@ -3617,18 +3605,6 @@ entities: - type: Transform pos: -4.5,-3.5 parent: 1 -- proto: MedkitCombatFilled - entities: - - uid: 501 - components: - - type: Transform - pos: -3.401462,-3.5350046 - parent: 1 - - uid: 502 - components: - - type: Transform - pos: -3.557712,-3.4256296 - parent: 1 - proto: Mirror entities: - uid: 503 @@ -3636,6 +3612,8 @@ entities: - type: Transform pos: 4.5,-3.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: Multitool entities: - uid: 504 @@ -3672,17 +3650,38 @@ entities: - type: Transform pos: -2.5,-12.5 parent: 1 -- proto: Ointment +- proto: NukeOpsGrenadeSpawner entities: - - uid: 511 + - uid: 44 components: - type: Transform - pos: -3.651462,-4.5193796 + pos: 1.5,-12.5 parent: 1 - - uid: 512 +- proto: NukeOpsLootSpawner + entities: + - uid: 46 components: - type: Transform - pos: -3.667087,-4.2225046 + pos: -3.5,-17.5 + parent: 1 +- proto: NukeOpsMedkitBruteSpawner + entities: + - uid: 48 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 +- proto: NukeOpsMedkitSpawner + entities: + - uid: 47 + components: + - type: Transform + pos: -3.5,-4.5 parent: 1 - proto: OperatingTable entities: @@ -3761,6 +3760,8 @@ entities: - type: Transform pos: 1.5,-14.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandCC64KAd entities: - uid: 525 @@ -3768,6 +3769,8 @@ entities: - type: Transform pos: -5.5,-18.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandCybersun600 entities: - uid: 526 @@ -3775,6 +3778,8 @@ entities: - type: Transform pos: 2.5,-6.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandDonk entities: - uid: 527 @@ -3783,6 +3788,8 @@ entities: rot: 3.141592653589793 rad pos: 3.5,-18.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandDonutCorp entities: - uid: 528 @@ -3791,6 +3798,8 @@ entities: rot: 3.141592653589793 rad pos: 1.5,-22.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandEnergySwords entities: - uid: 529 @@ -3798,6 +3807,8 @@ entities: - type: Transform pos: 2.5,-18.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandEnlistGorlex entities: - uid: 530 @@ -3806,6 +3817,8 @@ entities: rot: 3.141592653589793 rad pos: 2.5,-13.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandFreeSyndicateEncryptionKey entities: - uid: 531 @@ -3813,6 +3826,8 @@ entities: - type: Transform pos: -2.5,-8.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandInterdyne entities: - uid: 532 @@ -3821,6 +3836,8 @@ entities: rot: 3.141592653589793 rad pos: -4.5,-6.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandKosmicheskayaStantsiya entities: - uid: 533 @@ -3828,6 +3845,8 @@ entities: - type: Transform pos: -2.5,-22.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandMoth entities: - uid: 534 @@ -3835,11 +3854,15 @@ entities: - type: Transform pos: -2.5,-14.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 535 components: - type: Transform pos: 2.5,-3.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandNuclearDeviceInformational entities: - uid: 536 @@ -3848,11 +3871,15 @@ entities: rot: 3.141592653589793 rad pos: -3.5,-13.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 537 components: - type: Transform pos: 0.5,-14.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandSyndicatePistol entities: - uid: 538 @@ -3860,6 +3887,8 @@ entities: - type: Transform pos: 1.5,-10.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandSyndicateRecruitment entities: - uid: 539 @@ -3867,6 +3896,8 @@ entities: - type: Transform pos: -1.5,-14.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: PosterContrabandWaffleCorp entities: - uid: 540 @@ -3875,6 +3906,8 @@ entities: rot: 3.141592653589793 rad pos: -2.5,-23.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: Poweredlight entities: - uid: 541 @@ -4302,9 +4335,13 @@ entities: - type: DeviceLinkSource linkedPorts: 600: - - Pressed: Toggle + - - Pressed + - Toggle 599: - - Pressed: Toggle + - - Pressed + - Toggle + - type: Fixtures + fixtures: {} - uid: 611 components: - type: Transform @@ -4313,7 +4350,10 @@ entities: - type: DeviceLinkSource linkedPorts: 605: - - Pressed: Toggle + - - Pressed + - Toggle + - type: Fixtures + fixtures: {} - proto: SignalButtonDirectional entities: - uid: 20 @@ -4325,9 +4365,13 @@ entities: - type: DeviceLinkSource linkedPorts: 602: - - Pressed: Toggle + - - Pressed + - Toggle 598: - - Pressed: Toggle + - - Pressed + - Toggle + - type: Fixtures + fixtures: {} - uid: 21 components: - type: Transform @@ -4337,19 +4381,28 @@ entities: - type: DeviceLinkSource linkedPorts: 597: - - Pressed: Toggle + - - Pressed + - Toggle 601: - - Pressed: Toggle + - - Pressed + - Toggle 608: - - Pressed: Toggle + - - Pressed + - Toggle 606: - - Pressed: Toggle + - - Pressed + - Toggle 604: - - Pressed: Toggle + - - Pressed + - Toggle 607: - - Pressed: Toggle + - - Pressed + - Toggle 603: - - Pressed: Toggle + - - Pressed + - Toggle + - type: Fixtures + fixtures: {} - proto: SignDirectionalEvac entities: - uid: 613 @@ -4357,30 +4410,40 @@ entities: - type: Transform pos: 0.5,-22.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 614 components: - type: Transform rot: 1.5707963267948966 rad pos: 4.5,-15.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 615 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,-14.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 616 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-14.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 617 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-15.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: SignElectricalMed entities: - uid: 618 @@ -4388,6 +4451,8 @@ entities: - type: Transform pos: -2.5,-18.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: SignNosmoking entities: - uid: 619 @@ -4395,6 +4460,8 @@ entities: - type: Transform pos: 5.5,-22.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: SignSecureSmallRed entities: - uid: 620 @@ -4402,16 +4469,22 @@ entities: - type: Transform pos: -3.5,-11.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 621 components: - type: Transform pos: 4.5,-17.5 parent: 1 + - type: Fixtures + fixtures: {} - uid: 622 components: - type: Transform pos: 2.5,-11.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: SMESBasic entities: - uid: 623 @@ -4481,30 +4554,6 @@ entities: - type: Transform pos: 3.5,-19.5 parent: 1 -- proto: SyndieMiniBomb - entities: - - uid: 633 - components: - - type: Transform - pos: 1.4127003,-11.973867 - parent: 1 - - uid: 634 - components: - - type: Transform - pos: 1.6939503,-11.973867 - parent: 1 -- proto: SyringeInaprovaline - entities: - - uid: 635 - components: - - type: Transform - pos: -3.510837,-4.3787546 - parent: 1 - - uid: 636 - components: - - type: Transform - pos: -3.510837,-4.0193796 - parent: 1 - proto: Table entities: - uid: 637 @@ -4689,14 +4738,7 @@ entities: - uid: 669 components: - type: Transform - pos: -2.5731854,-17.414778 - parent: 1 -- proto: ToolboxSyndicateFilled - entities: - - uid: 670 - components: - - type: Transform - pos: 1.5034143,-11.298322 + pos: -2.468854,-17.396727 parent: 1 - proto: VendingMachineTankDispenserEVA entities: @@ -5516,6 +5558,8 @@ entities: - type: Transform pos: 4.5,-25.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: WarningO2 entities: - uid: 828 @@ -5523,6 +5567,8 @@ entities: - type: Transform pos: 2.5,-25.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: WarningWaste entities: - uid: 829 @@ -5530,6 +5576,8 @@ entities: - type: Transform pos: 4.5,-18.5 parent: 1 + - type: Fixtures + fixtures: {} - proto: WaterCooler entities: - uid: 830 From fdfdecf57b587103a71e02e12725ba99ac2859be Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 18 Aug 2025 18:23:23 +0000 Subject: [PATCH 04/16] Automatic changelog update --- Resources/Changelog/Changelog.yml | 22 +++++++++++----------- Resources/Changelog/Maps.yml | 13 +++++++++++++ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 3d2caa23b7..21b3e4c7a3 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,15 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - message: Added 3 modkits for the proto-kinetic accelerator, granting increased - damage, range, and fire rate. They can be researched via the new "Kinetic Modifications" - arsenal tech. - type: Add - - message: Reduced damage and range on the proto-kinetic accelerator. - type: Tweak - id: 8351 - time: '2025-04-25T18:18:24.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/31247 - author: Wolfkey-SomeoneElseTookMyUsername changes: - message: Added cotton buns, which can be be used for the creation of custom burgers @@ -3953,3 +3942,14 @@ id: 8863 time: '2025-08-18T14:33:16.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/39727 +- author: SlamBamActionman + changes: + - message: Aiming with the Hristov is now working correctly when using the Separated + Chat HUD mode. + type: Fix + - message: Cursor targetting with the Hristov now correctly selects the target underneath + the cursor. + type: Fix + id: 8864 + time: '2025-08-18T18:22:02.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/35087 diff --git a/Resources/Changelog/Maps.yml b/Resources/Changelog/Maps.yml index 34ecf1fb01..0ec3640252 100644 --- a/Resources/Changelog/Maps.yml +++ b/Resources/Changelog/Maps.yml @@ -538,4 +538,17 @@ id: 66 time: '2025-08-18T04:33:37.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/39090 +- author: beck-thompson + changes: + - message: Replaced the guaranteed explosives on the infiltrator with a random grenade + spawner and ammo bundle. + type: Tweak + - message: Replaced the guaranteed med spawns on the infiltrator with random med + kit spawners. + type: Tweak + - message: Added a random loot spawner to the infiltrator. + type: Add + id: 67 + time: '2025-08-18T18:22:15.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/39091 Order: 1 From aa4ca4199a70c606192acf32cc06a16236da9dc0 Mon Sep 17 00:00:00 2001 From: Zokkie <6126135+Zokkie@users.noreply.github.com> Date: Mon, 18 Aug 2025 20:57:30 +0200 Subject: [PATCH 05/16] Minor fix to give Lone Operatives the correct roletype (#36521) * Gives loneop the proper mindrole * Moved the entity to a more logical position. It was above the parent entity in the .yml file. It is now below it. * Added requested changes --- .../Prototypes/Entities/Markers/Spawners/ghost_roles.yml | 2 +- Resources/Prototypes/GameRules/events.yml | 2 +- Resources/Prototypes/Roles/MindRoles/mind_roles.yml | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml index 48a2e70655..e662a8b211 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml @@ -110,7 +110,7 @@ description: ghost-role-information-loneop-description rules: ghost-role-information-loneop-rules mindRoles: - - MindRoleGhostRoleSoloAntagonist + - MindRoleLoneops - type: Sprite sprite: Markers/jobs.rsi layers: diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 2642c0286b..acd3d4a2b8 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -568,7 +568,7 @@ factions: - Syndicate mindRoles: - - MindRoleNukeops + - MindRoleLoneops - type: DynamicRuleCost cost: 75 diff --git a/Resources/Prototypes/Roles/MindRoles/mind_roles.yml b/Resources/Prototypes/Roles/MindRoles/mind_roles.yml index d387903ec4..d56e798fda 100644 --- a/Resources/Prototypes/Roles/MindRoles/mind_roles.yml +++ b/Resources/Prototypes/Roles/MindRoles/mind_roles.yml @@ -197,6 +197,14 @@ - type: MindRole antagPrototype: NukeopsCommander +- type: entity + parent: MindRoleNukeops + id: MindRoleLoneops + name: Loneops Operative Role + components: + - type: MindRole + roleType: SoloAntagonist + # Revolutionaries - type: entity parent: BaseMindRoleAntag From 5a5b81f7dc8434a2ca5000cb3e3a4e031e56c4b2 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 18 Aug 2025 20:58:30 +0200 Subject: [PATCH 06/16] Fix rebinding keys crashing the game (#39732) fix control settings --- Content.Client/UserInterface/Controls/MenuButton.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Content.Client/UserInterface/Controls/MenuButton.cs b/Content.Client/UserInterface/Controls/MenuButton.cs index 540a8ecb57..a0ba21da74 100644 --- a/Content.Client/UserInterface/Controls/MenuButton.cs +++ b/Content.Client/UserInterface/Controls/MenuButton.cs @@ -25,7 +25,7 @@ public sealed class MenuButton : ContainerButton private Color NormalColor => HasStyleClass(StyleClassRedTopButton) ? ColorRedNormal : ColorNormal; private Color HoveredColor => HasStyleClass(StyleClassRedTopButton) ? ColorRedHovered : ColorHovered; - private BoundKeyFunction _function; + private BoundKeyFunction? _function; private readonly BoxContainer _root; private readonly TextureRect? _buttonIcon; private readonly Label? _buttonLabel; @@ -33,13 +33,13 @@ public sealed class MenuButton : ContainerButton public string AppendStyleClass { set => AddStyleClass(value); } public Texture? Icon { get => _buttonIcon!.Texture; set => _buttonIcon!.Texture = value; } - public BoundKeyFunction BoundKey + public BoundKeyFunction? BoundKey { get => _function; set { _function = value; - _buttonLabel!.Text = BoundKeyHelper.ShortKeyName(value); + _buttonLabel!.Text = _function == null ? "" : BoundKeyHelper.ShortKeyName(_function.Value); } } @@ -95,12 +95,12 @@ public sealed class MenuButton : ContainerButton private void OnKeyBindingChanged(IKeyBinding obj) { - _buttonLabel!.Text = BoundKeyHelper.ShortKeyName(_function); + _buttonLabel!.Text = _function == null ? "" : BoundKeyHelper.ShortKeyName(_function.Value); } private void OnKeyBindingChanged() { - _buttonLabel!.Text = BoundKeyHelper.ShortKeyName(_function); + _buttonLabel!.Text = _function == null ? "" : BoundKeyHelper.ShortKeyName(_function.Value); } protected override void StylePropertiesChanged() From fedba2425bf94f78bcdd72f7d45835152e7f6d38 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 18 Aug 2025 18:59:40 +0000 Subject: [PATCH 07/16] Automatic changelog update --- Resources/Changelog/Changelog.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 21b3e4c7a3..024760194a 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,20 +1,4 @@ Entries: -- author: Wolfkey-SomeoneElseTookMyUsername - changes: - - message: Added cotton buns, which can be be used for the creation of custom burgers - that can be eaten by moths. - type: Add - id: 8352 - time: '2025-04-26T01:54:14.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/36405 -- author: Booblesnoot42 - changes: - - message: Due to a lack of functionality, light-switches have temporarily been - removed from the construction menu. - type: Remove - id: 8353 - time: '2025-04-26T01:54:23.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/34664 - author: OnyxTheBrave changes: - message: Cloth is now able to be made in the Sheet-Meister 2000 @@ -3953,3 +3937,18 @@ id: 8864 time: '2025-08-18T18:22:02.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/35087 +- author: Zokkie + changes: + - message: Lone Operative is now assigned the Solo Antagonist role ingame instead + of the Team Antagonist role. + type: Fix + id: 8865 + time: '2025-08-18T18:57:30.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/36521 +- author: beck-thompson, slarticodefast + changes: + - message: Fixed rebinding keys crashing the client. + type: Fix + id: 8866 + time: '2025-08-18T18:58:30.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/39732 From d737e39a98a88d07bee24106901206cfc7d8fbb4 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:21:33 +0200 Subject: [PATCH 08/16] cleanup LockOnTriggerComponent (#39720) * cleanup LockOnTriggerComponent * comment * indentation --- .../Components/Effects/LockOnTriggerComponent.cs | 12 ++++++++++-- .../Trigger/Systems/LockOnTriggerSystem.cs | 13 +++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Content.Shared/Trigger/Components/Effects/LockOnTriggerComponent.cs b/Content.Shared/Trigger/Components/Effects/LockOnTriggerComponent.cs index 38eea0a461..6dbec86c5d 100644 --- a/Content.Shared/Trigger/Components/Effects/LockOnTriggerComponent.cs +++ b/Content.Shared/Trigger/Components/Effects/LockOnTriggerComponent.cs @@ -1,19 +1,27 @@ +using Content.Shared.Lock; using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Trigger.Components.Effects; +/// +/// Will lock, unlock or toggle an entity with the . +/// If TargetUser is true then they will be (un)locked instead. +/// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class LockOnTriggerComponent : BaseXOnTriggerComponent { + /// + /// If the trigger will lock, unlock or toggle the lock. + /// [DataField, AutoNetworkedField] - public LockAction LockOnTrigger = LockAction.Toggle; + public LockAction LockMode = LockAction.Toggle; } [Serializable, NetSerializable] public enum LockAction { - Lock = 0, + Lock = 0, Unlock = 1, Toggle = 2, } diff --git a/Content.Shared/Trigger/Systems/LockOnTriggerSystem.cs b/Content.Shared/Trigger/Systems/LockOnTriggerSystem.cs index 8726ede899..2056d5fe51 100644 --- a/Content.Shared/Trigger/Systems/LockOnTriggerSystem.cs +++ b/Content.Shared/Trigger/Systems/LockOnTriggerSystem.cs @@ -19,16 +19,21 @@ public sealed class LockOnTriggerSystem : EntitySystem if (args.Key != null && !ent.Comp.KeysIn.Contains(args.Key)) return; - switch (ent.Comp.LockOnTrigger) + var target = ent.Comp.TargetUser ? args.User : ent.Owner; + + if (!TryComp(target, out var lockComp)) + return; // prevent the Resolve in Lock/Unlock/ToggleLock from logging errors in case the user does not have the component + + switch (ent.Comp.LockMode) { case LockAction.Lock: - _lock.Lock(ent.Owner, args.User); + _lock.Lock(target.Value, args.User, lockComp); break; case LockAction.Unlock: - _lock.Unlock(ent, args.User); + _lock.Unlock(target.Value, args.User, lockComp); break; case LockAction.Toggle: - _lock.ToggleLock(ent, args.User); + _lock.ToggleLock(target.Value, args.User, lockComp); break; } } From 6b73d320b9eb35cab7cbcc9301759fa0ff395a80 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Mon, 18 Aug 2025 13:26:29 -0700 Subject: [PATCH 09/16] [NEW STATUS SYSTEM] Drunkenness, Stuttering, Slurred Speech, and Bloodloss (#38678) * The only commit that matters * I had to stop playing with my cat to push this change * Yaml removal * Proper drunk status effect and remove shitcode * Review changes * whoops * Whoops x2 * Update master fix merge conflicts * Fix merge conflicts * Dunk Component kill * MORE RELAYS * Holy fucking breaking changes * Ough * 46 file diff * Fix bad commits * Erm what the test fail? * Fix those last two * Merge conflicts * Me when I fix the merge conflicts --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- Content.Client/Drunk/DrunkOverlay.cs | 19 ++++--- Content.Client/Drunk/DrunkSystem.cs | 36 +++++++------ .../Electrocution/ElectrocutionSystem.cs | 2 +- .../Components/StutteringAccentComponent.cs | 12 ++--- .../Speech/EntitySystems/SlurredSystem.cs | 46 +++++++++-------- .../Speech/EntitySystems/StutteringSystem.cs | 34 +++++++++---- .../Body/Components/BloodstreamComponent.cs | 6 --- .../Body/Systems/SharedBloodstreamSystem.cs | 25 +++------- Content.Shared/Drunk/DrunkComponent.cs | 6 --- .../Drunk/DrunkStatusEffectComponent.cs | 11 ++++ Content.Shared/Drunk/DrunkSystem.cs | 48 ------------------ Content.Shared/Drunk/SharedDrunkSystem.cs | 50 +++++++++++++++++++ Content.Shared/EntityEffects/Effects/Drunk.cs | 13 ++--- .../EntitySystems/SharedSlurredSystem.cs | 3 ++ .../EntitySystems/SharedStutteringSystem.cs | 14 +++--- .../Components/StatusEffectComponent.cs | 1 - .../StatusEffectSystem.Relay.cs | 3 ++ .../Entities/Mobs/NPCs/asteroid.yml | 1 - .../Entities/Mobs/NPCs/elemental.yml | 1 - .../Prototypes/Entities/Mobs/NPCs/silicon.yml | 1 - .../Entities/Mobs/NPCs/simplemob.yml | 2 - .../Entities/Mobs/Player/dragon.yml | 1 - .../Prototypes/Entities/Mobs/Species/base.yml | 3 -- .../Entities/StatusEffects/body.yml | 18 +++++++ .../Entities/StatusEffects/misc.yml | 14 ++++++ .../Entities/StatusEffects/speech.yml | 27 ++++++++++ Resources/Prototypes/Reagents/medicine.yml | 14 +++--- 27 files changed, 235 insertions(+), 176 deletions(-) delete mode 100644 Content.Shared/Drunk/DrunkComponent.cs create mode 100644 Content.Shared/Drunk/DrunkStatusEffectComponent.cs delete mode 100644 Content.Shared/Drunk/DrunkSystem.cs create mode 100644 Content.Shared/Drunk/SharedDrunkSystem.cs create mode 100644 Resources/Prototypes/Entities/StatusEffects/body.yml create mode 100644 Resources/Prototypes/Entities/StatusEffects/speech.yml diff --git a/Content.Client/Drunk/DrunkOverlay.cs b/Content.Client/Drunk/DrunkOverlay.cs index 1f26e75ffc..c806cdad66 100644 --- a/Content.Client/Drunk/DrunkOverlay.cs +++ b/Content.Client/Drunk/DrunkOverlay.cs @@ -1,5 +1,6 @@ using Content.Shared.Drunk; using Content.Shared.StatusEffect; +using Content.Shared.StatusEffectNew; using Robust.Client.Graphics; using Robust.Client.Player; using Robust.Shared.Enums; @@ -43,19 +44,21 @@ public sealed class DrunkOverlay : Overlay if (playerEntity == null) return; - if (!_entityManager.HasComponent(playerEntity) - || !_entityManager.TryGetComponent(playerEntity, out var status)) + var statusSys = _sysMan.GetEntitySystem(); + if (!statusSys.TryGetMaxTime(playerEntity.Value, out var status)) return; - var statusSys = _sysMan.GetEntitySystem(); - if (!statusSys.TryGetTime(playerEntity.Value, SharedDrunkSystem.DrunkKey, out var time, status)) - return; + var time = status.Item2; - var curTime = _timing.CurTime; - var timeLeft = (float) (time.Value.Item2 - curTime).TotalSeconds; + var power = SharedDrunkSystem.MagicNumber; + if (time != null) + { + var curTime = _timing.CurTime; + power = (float) (time - curTime).Value.TotalSeconds; + } - CurrentBoozePower += 8f * (0.5f*timeLeft - CurrentBoozePower) * args.DeltaSeconds / (timeLeft+1); + CurrentBoozePower += 8f * (power * 0.5f - CurrentBoozePower) * args.DeltaSeconds / (power+1); } protected override bool BeforeDraw(in OverlayDrawArgs args) diff --git a/Content.Client/Drunk/DrunkSystem.cs b/Content.Client/Drunk/DrunkSystem.cs index d9c6bb192f..c5fab75e7d 100644 --- a/Content.Client/Drunk/DrunkSystem.cs +++ b/Content.Client/Drunk/DrunkSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Drunk; +using Content.Shared.StatusEffectNew; using Robust.Client.Graphics; using Robust.Client.Player; using Robust.Shared.Player; @@ -16,38 +17,41 @@ public sealed class DrunkSystem : SharedDrunkSystem { base.Initialize(); - SubscribeLocalEvent(OnDrunkInit); - SubscribeLocalEvent(OnDrunkShutdown); + SubscribeLocalEvent(OnStatusApplied); + SubscribeLocalEvent(OnStatusRemoved); - SubscribeLocalEvent(OnPlayerAttached); - SubscribeLocalEvent(OnPlayerDetached); + SubscribeLocalEvent>(OnPlayerAttached); + SubscribeLocalEvent>(OnPlayerDetached); _overlay = new(); } - private void OnPlayerAttached(EntityUid uid, DrunkComponent component, LocalPlayerAttachedEvent args) + private void OnStatusApplied(Entity entity, ref StatusEffectAppliedEvent args) { - _overlayMan.AddOverlay(_overlay); + if (!_overlayMan.HasOverlay()) + _overlayMan.AddOverlay(_overlay); } - private void OnPlayerDetached(EntityUid uid, DrunkComponent component, LocalPlayerDetachedEvent args) + private void OnStatusRemoved(Entity entity, ref StatusEffectRemovedEvent args) { + if (Status.HasEffectComp(args.Target)) + return; + + if (_player.LocalEntity != args.Target) + return; + _overlay.CurrentBoozePower = 0; _overlayMan.RemoveOverlay(_overlay); } - private void OnDrunkInit(EntityUid uid, DrunkComponent component, ComponentInit args) + private void OnPlayerAttached(Entity entity, ref StatusEffectRelayedEvent args) { - if (_player.LocalEntity == uid) - _overlayMan.AddOverlay(_overlay); + _overlayMan.AddOverlay(_overlay); } - private void OnDrunkShutdown(EntityUid uid, DrunkComponent component, ComponentShutdown args) + private void OnPlayerDetached(Entity entity, ref StatusEffectRelayedEvent args) { - if (_player.LocalEntity == uid) - { - _overlay.CurrentBoozePower = 0; - _overlayMan.RemoveOverlay(_overlay); - } + _overlay.CurrentBoozePower = 0; + _overlayMan.RemoveOverlay(_overlay); } } diff --git a/Content.Server/Electrocution/ElectrocutionSystem.cs b/Content.Server/Electrocution/ElectrocutionSystem.cs index 1f04421c0f..a162b29e19 100644 --- a/Content.Server/Electrocution/ElectrocutionSystem.cs +++ b/Content.Server/Electrocution/ElectrocutionSystem.cs @@ -418,7 +418,7 @@ public sealed class ElectrocutionSystem : SharedElectrocutionSystem } } - _stuttering.DoStutter(uid, time * StutteringTimeMultiplier, refresh, statusEffects); + _stuttering.DoStutter(uid, time * StutteringTimeMultiplier, refresh); _jittering.DoJitter(uid, time * JitterTimeMultiplier, refresh, JitterAmplitude, JitterFrequency, true, statusEffects); _popup.PopupEntity(Loc.GetString("electrocuted-component-mob-shocked-popup-player"), uid, uid); diff --git a/Content.Server/Speech/Components/StutteringAccentComponent.cs b/Content.Server/Speech/Components/StutteringAccentComponent.cs index e82cd9b12b..dd65ef66e0 100644 --- a/Content.Server/Speech/Components/StutteringAccentComponent.cs +++ b/Content.Server/Speech/Components/StutteringAccentComponent.cs @@ -6,29 +6,25 @@ namespace Content.Server.Speech.Components /// /// Percentage chance that a stutter will occur if it matches. /// - [DataField("matchRandomProb")] - [ViewVariables(VVAccess.ReadWrite)] + [DataField] public float MatchRandomProb = 0.8f; /// /// Percentage chance that a stutter occurs f-f-f-f-four times. /// - [DataField("fourRandomProb")] - [ViewVariables(VVAccess.ReadWrite)] + [DataField] public float FourRandomProb = 0.1f; /// /// Percentage chance that a stutter occurs t-t-t-three times. /// - [DataField("threeRandomProb")] - [ViewVariables(VVAccess.ReadWrite)] + [DataField] public float ThreeRandomProb = 0.2f; /// /// Percentage chance that a stutter cut off. /// - [DataField("cutRandomProb")] - [ViewVariables(VVAccess.ReadWrite)] + [DataField] public float CutRandomProb = 0.05f; } } diff --git a/Content.Server/Speech/EntitySystems/SlurredSystem.cs b/Content.Server/Speech/EntitySystems/SlurredSystem.cs index 5ac1ba037f..8690079de1 100644 --- a/Content.Server/Speech/EntitySystems/SlurredSystem.cs +++ b/Content.Server/Speech/EntitySystems/SlurredSystem.cs @@ -3,8 +3,7 @@ using Content.Server.Speech.Components; using Content.Shared.Drunk; using Content.Shared.Speech; using Content.Shared.Speech.EntitySystems; -using Content.Shared.StatusEffect; -using Robust.Shared.Prototypes; +using Content.Shared.StatusEffectNew; using Robust.Shared.Random; using Robust.Shared.Timing; @@ -12,26 +11,15 @@ namespace Content.Server.Speech.EntitySystems; public sealed class SlurredSystem : SharedSlurredSystem { - [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; + [Dependency] private readonly StatusEffectsSystem _status = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IGameTiming _timing = default!; - private static readonly ProtoId SlurKey = "SlurredSpeech"; - public override void Initialize() { SubscribeLocalEvent(OnAccent); - } - public override void DoSlur(EntityUid uid, TimeSpan time, StatusEffectsComponent? status = null) - { - if (!Resolve(uid, ref status, false)) - return; - - if (!_statusEffectsSystem.HasStatusEffect(uid, SlurKey, status)) - _statusEffectsSystem.TryAddStatusEffect(uid, SlurKey, time, true, status); - else - _statusEffectsSystem.TryAddTime(uid, SlurKey, time, status); + SubscribeLocalEvent>(OnAccentRelayed); } /// @@ -39,15 +27,33 @@ public sealed class SlurredSystem : SharedSlurredSystem /// private float GetProbabilityScale(EntityUid uid) { - if (!_statusEffectsSystem.TryGetTime(uid, SharedDrunkSystem.DrunkKey, out var time)) + if (!_status.TryGetMaxTime(uid, out var time)) return 0; - var curTime = _timing.CurTime; - var timeLeft = (float) (time.Value.Item2 - curTime).TotalSeconds; - return Math.Clamp((timeLeft - 80) / 1100, 0f, 1f); + // This is a magic number. Why this value? No clue it was made 3 years before I refactored this. + var magic = SharedDrunkSystem.MagicNumber; + + if (time.Item2 != null) + { + var curTime = _timing.CurTime; + magic = (float) (time.Item2 - curTime).Value.TotalSeconds - 80f; + } + + return Math.Clamp(magic / SharedDrunkSystem.MagicNumber, 0f, 1f); } - private void OnAccent(EntityUid uid, SlurredAccentComponent component, AccentGetEvent args) + private void OnAccent(Entity entity, ref AccentGetEvent args) + { + GetAccent(entity, ref args); + } + + private void OnAccentRelayed(Entity entity, ref StatusEffectRelayedEvent args) + { + var ev = args.Args; + GetAccent(args.Args.Entity, ref ev); + } + + private void GetAccent(EntityUid uid, ref AccentGetEvent args) { var scale = GetProbabilityScale(uid); args.Message = Accentuate(args.Message, scale); diff --git a/Content.Server/Speech/EntitySystems/StutteringSystem.cs b/Content.Server/Speech/EntitySystems/StutteringSystem.cs index f47bff3523..2c78eb181e 100644 --- a/Content.Server/Speech/EntitySystems/StutteringSystem.cs +++ b/Content.Server/Speech/EntitySystems/StutteringSystem.cs @@ -3,14 +3,13 @@ using System.Text.RegularExpressions; using Content.Server.Speech.Components; using Content.Shared.Speech; using Content.Shared.Speech.EntitySystems; -using Content.Shared.StatusEffect; +using Content.Shared.StatusEffectNew; using Robust.Shared.Random; namespace Content.Server.Speech.EntitySystems { public sealed class StutteringSystem : SharedStutteringSystem { - [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; [Dependency] private readonly IRobustRandom _random = default!; // Regex of characters to stutter. @@ -20,19 +19,36 @@ namespace Content.Server.Speech.EntitySystems public override void Initialize() { SubscribeLocalEvent(OnAccent); + + SubscribeLocalEvent>(OnAccent); } - public override void DoStutter(EntityUid uid, TimeSpan time, bool refresh, StatusEffectsComponent? status = null) + public override void DoStutter(EntityUid uid, TimeSpan time, bool refresh) { - if (!Resolve(uid, ref status, false)) - return; - - _statusEffectsSystem.TryAddStatusEffect(uid, StutterKey, time, refresh, status); + if (refresh) + Status.TryUpdateStatusEffectDuration(uid, Stuttering, time); + else + Status.TryAddStatusEffectDuration(uid, Stuttering, time); } - private void OnAccent(EntityUid uid, StutteringAccentComponent component, AccentGetEvent args) + public override void DoRemoveStutterTime(EntityUid uid, TimeSpan timeRemoved) { - args.Message = Accentuate(args.Message, component); + Status.TryAddTime(uid, Stuttering, -timeRemoved); + } + + public override void DoRemoveStutter(EntityUid uid) + { + Status.TryRemoveStatusEffect(uid, Stuttering); + } + + private void OnAccent(Entity entity, ref AccentGetEvent args) + { + args.Message = Accentuate(args.Message, entity.Comp); + } + + private void OnAccent(Entity entity, ref StatusEffectRelayedEvent args) + { + args.Args.Message = Accentuate(args.Args.Message, entity.Comp); } public string Accentuate(string message, StutteringAccentComponent component) diff --git a/Content.Shared/Body/Components/BloodstreamComponent.cs b/Content.Shared/Body/Components/BloodstreamComponent.cs index 0139932262..51814eaba9 100644 --- a/Content.Shared/Body/Components/BloodstreamComponent.cs +++ b/Content.Shared/Body/Components/BloodstreamComponent.cs @@ -198,12 +198,6 @@ public sealed partial class BloodstreamComponent : Component [ViewVariables] public Entity? TemporarySolution; - /// - /// Variable that stores the amount of status time added by having a low blood level. - /// - [DataField, AutoNetworkedField] - public TimeSpan StatusTime; - /// /// Alert to show when bleeding. /// diff --git a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs index ac385040a9..182cdb47d3 100644 --- a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs +++ b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs @@ -6,7 +6,6 @@ using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Reagent; using Content.Shared.Damage; -using Content.Shared.Drunk; using Content.Shared.EntityEffects.Effects; using Content.Shared.FixedPoint; using Content.Shared.Fluids; @@ -16,7 +15,7 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Popups; using Content.Shared.Random.Helpers; using Content.Shared.Rejuvenate; -using Content.Shared.Speech.EntitySystems; +using Content.Shared.StatusEffectNew; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Prototypes; @@ -27,17 +26,18 @@ namespace Content.Shared.Body.Systems; public abstract class SharedBloodstreamSystem : EntitySystem { + public static readonly EntProtoId Bloodloss = "StatusEffectBloodloss"; + [Dependency] protected readonly SharedSolutionContainerSystem SolutionContainer = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedPuddleSystem _puddle = default!; + [Dependency] private readonly StatusEffectsSystem _status = default!; [Dependency] private readonly AlertsSystem _alertsSystem = default!; [Dependency] private readonly MobStateSystem _mobStateSystem = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; - [Dependency] private readonly SharedDrunkSystem _drunkSystem = default!; - [Dependency] private readonly SharedStutteringSystem _stutteringSystem = default!; public override void Initialize() { @@ -100,15 +100,7 @@ public abstract class SharedBloodstreamSystem : EntitySystem // Apply dizziness as a symptom of bloodloss. // The effect is applied in a way that it will never be cleared without being healthy. // Multiplying by 2 is arbitrary but works for this case, it just prevents the time from running out - _drunkSystem.TryApplyDrunkenness( - uid, - (float)bloodstream.AdjustedUpdateInterval.TotalSeconds * 2, - applySlur: false); - _stutteringSystem.DoStutter(uid, bloodstream.AdjustedUpdateInterval * 2, refresh: false); - - // storing the drunk and stutter time so we can remove it independently from other effects additions - bloodstream.StatusTime += bloodstream.AdjustedUpdateInterval * 2; - DirtyField(uid, bloodstream, nameof(BloodstreamComponent.StatusTime)); + _status.TrySetStatusEffectDuration(uid, Bloodloss); } else if (!_mobStateSystem.IsDead(uid)) { @@ -118,12 +110,7 @@ public abstract class SharedBloodstreamSystem : EntitySystem bloodstream.BloodlossHealDamage * bloodPercentage, ignoreResistances: true, interruptsDoAfters: false); - // Remove the drunk effect when healthy. Should only remove the amount of drunk and stutter added by low blood level - _drunkSystem.TryRemoveDrunkenessTime(uid, bloodstream.StatusTime.TotalSeconds); - _stutteringSystem.DoRemoveStutterTime(uid, bloodstream.StatusTime.TotalSeconds); - // Reset the drunk and stutter time to zero - bloodstream.StatusTime = TimeSpan.Zero; - DirtyField(uid, bloodstream, nameof(BloodstreamComponent.StatusTime)); + _status.TryRemoveStatusEffect(uid, Bloodloss); } } } diff --git a/Content.Shared/Drunk/DrunkComponent.cs b/Content.Shared/Drunk/DrunkComponent.cs deleted file mode 100644 index 61c195d27e..0000000000 --- a/Content.Shared/Drunk/DrunkComponent.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Drunk; - -[RegisterComponent, NetworkedComponent] -public sealed partial class DrunkComponent : Component { } diff --git a/Content.Shared/Drunk/DrunkStatusEffectComponent.cs b/Content.Shared/Drunk/DrunkStatusEffectComponent.cs new file mode 100644 index 0000000000..69ad7c3ad9 --- /dev/null +++ b/Content.Shared/Drunk/DrunkStatusEffectComponent.cs @@ -0,0 +1,11 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Drunk; + +/// +/// This is used by a status effect entity to apply the to an entity. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class DrunkStatusEffectComponent : Component +{ +} diff --git a/Content.Shared/Drunk/DrunkSystem.cs b/Content.Shared/Drunk/DrunkSystem.cs deleted file mode 100644 index 236ce2dcd3..0000000000 --- a/Content.Shared/Drunk/DrunkSystem.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Content.Shared.Speech.EntitySystems; -using Content.Shared.StatusEffect; -using Content.Shared.Traits.Assorted; -using Robust.Shared.Prototypes; - -namespace Content.Shared.Drunk; - -public abstract class SharedDrunkSystem : EntitySystem -{ - public static readonly ProtoId DrunkKey = "Drunk"; - - [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; - [Dependency] private readonly SharedSlurredSystem _slurredSystem = default!; - - public void TryApplyDrunkenness(EntityUid uid, float boozePower, bool applySlur = true, - StatusEffectsComponent? status = null) - { - if (!Resolve(uid, ref status, false)) - return; - - if (TryComp(uid, out var trait)) - boozePower *= trait.BoozeStrengthMultiplier; - - if (applySlur) - { - _slurredSystem.DoSlur(uid, TimeSpan.FromSeconds(boozePower), status); - } - - if (!_statusEffectsSystem.HasStatusEffect(uid, DrunkKey, status)) - { - _statusEffectsSystem.TryAddStatusEffect(uid, DrunkKey, TimeSpan.FromSeconds(boozePower), true, status); - } - else - { - _statusEffectsSystem.TryAddTime(uid, DrunkKey, TimeSpan.FromSeconds(boozePower), status); - } - } - - public void TryRemoveDrunkenness(EntityUid uid) - { - _statusEffectsSystem.TryRemoveStatusEffect(uid, DrunkKey); - } - public void TryRemoveDrunkenessTime(EntityUid uid, double timeRemoved) - { - _statusEffectsSystem.TryRemoveTime(uid, DrunkKey, TimeSpan.FromSeconds(timeRemoved)); - } - -} diff --git a/Content.Shared/Drunk/SharedDrunkSystem.cs b/Content.Shared/Drunk/SharedDrunkSystem.cs new file mode 100644 index 0000000000..96aff82fa0 --- /dev/null +++ b/Content.Shared/Drunk/SharedDrunkSystem.cs @@ -0,0 +1,50 @@ +using Content.Shared.Speech.EntitySystems; +using Content.Shared.StatusEffectNew; +using Content.Shared.Traits.Assorted; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Drunk; + +public abstract class SharedDrunkSystem : EntitySystem +{ + public static EntProtoId Drunk = "StatusEffectDrunk"; + public static EntProtoId Woozy = "StatusEffectWoozy"; + + /* I have no clue why this magic number was chosen, I copied it from slur system and needed it for the overlay + If you have a more intelligent magic number be my guest to completely explode this value. + There were no comments as to why this value was chosen three years ago. */ + public static float MagicNumber = 1100f; + + [Dependency] protected readonly StatusEffectsSystem Status = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnLightweightDrinking); + } + + public void TryApplyDrunkenness(EntityUid uid, TimeSpan boozePower) + { + var ev = new DrunkEvent(boozePower); + RaiseLocalEvent(uid, ref ev); + + Status.TryAddStatusEffectDuration(uid, Drunk, ev.Duration); + } + + public void TryRemoveDrunkenness(EntityUid uid) + { + Status.TryRemoveStatusEffect(uid, Drunk); + } + + public void TryRemoveDrunkennessTime(EntityUid uid, TimeSpan boozePower) + { + Status.TryAddTime(uid, Drunk, - boozePower); + } + + private void OnLightweightDrinking(Entity entity, ref DrunkEvent args) + { + args.Duration *= entity.Comp.BoozeStrengthMultiplier; + } + + [ByRefEvent] + public record struct DrunkEvent(TimeSpan Duration); +} diff --git a/Content.Shared/EntityEffects/Effects/Drunk.cs b/Content.Shared/EntityEffects/Effects/Drunk.cs index 5f7f29c342..aa15df8f3d 100644 --- a/Content.Shared/EntityEffects/Effects/Drunk.cs +++ b/Content.Shared/EntityEffects/Effects/Drunk.cs @@ -9,13 +9,7 @@ public sealed partial class Drunk : EntityEffect /// BoozePower is how long each metabolism cycle will make the drunk effect last for. /// [DataField] - public float BoozePower = 3f; - - /// - /// Whether speech should be slurred. - /// - [DataField] - public bool SlurSpeech = true; + public TimeSpan BoozePower = TimeSpan.FromSeconds(3f); protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("reagent-effect-guidebook-drunk", ("chance", Probability)); @@ -24,11 +18,10 @@ public sealed partial class Drunk : EntityEffect { var boozePower = BoozePower; - if (args is EntityEffectReagentArgs reagentArgs) { + if (args is EntityEffectReagentArgs reagentArgs) boozePower *= reagentArgs.Scale.Float(); - } var drunkSys = args.EntityManager.EntitySysManager.GetEntitySystem(); - drunkSys.TryApplyDrunkenness(args.TargetEntity, boozePower, SlurSpeech); + drunkSys.TryApplyDrunkenness(args.TargetEntity, boozePower); } } diff --git a/Content.Shared/Speech/EntitySystems/SharedSlurredSystem.cs b/Content.Shared/Speech/EntitySystems/SharedSlurredSystem.cs index 8718e054ba..aadda6aa09 100644 --- a/Content.Shared/Speech/EntitySystems/SharedSlurredSystem.cs +++ b/Content.Shared/Speech/EntitySystems/SharedSlurredSystem.cs @@ -1,8 +1,11 @@ using Content.Shared.StatusEffect; +using Robust.Shared.Prototypes; namespace Content.Shared.Speech.EntitySystems; public abstract class SharedSlurredSystem : EntitySystem { + public static readonly EntProtoId Stutter = "StatusEffectSlurred"; + public virtual void DoSlur(EntityUid uid, TimeSpan time, StatusEffectsComponent? status = null) { } } diff --git a/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs b/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs index 05358a04bb..90cd8bc4de 100644 --- a/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs +++ b/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs @@ -1,26 +1,24 @@ -using Content.Shared.StatusEffect; +using Content.Shared.StatusEffectNew; using Robust.Shared.Prototypes; namespace Content.Shared.Speech.EntitySystems; public abstract class SharedStutteringSystem : EntitySystem { - public static readonly ProtoId StutterKey = "Stutter"; + public static readonly EntProtoId Stuttering = "StatusEffectStutter"; - [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; + [Dependency] protected readonly StatusEffectsSystem Status = default!; // For code in shared... I imagine we ain't getting accent prediction anytime soon so let's not bother. - public virtual void DoStutter(EntityUid uid, TimeSpan time, bool refresh, StatusEffectsComponent? status = null) + public virtual void DoStutter(EntityUid uid, TimeSpan time, bool refresh) { } - public virtual void DoRemoveStutterTime(EntityUid uid, double timeRemoved) + public virtual void DoRemoveStutterTime(EntityUid uid, TimeSpan timeRemoved) { - _statusEffectsSystem.TryRemoveTime(uid, StutterKey, TimeSpan.FromSeconds(timeRemoved)); } - public void DoRemoveStutter(EntityUid uid, double timeRemoved) + public virtual void DoRemoveStutter(EntityUid uid) { - _statusEffectsSystem.TryRemoveStatusEffect(uid, StutterKey); } } diff --git a/Content.Shared/StatusEffectNew/Components/StatusEffectComponent.cs b/Content.Shared/StatusEffectNew/Components/StatusEffectComponent.cs index 25f40718e9..67ff8b3e61 100644 --- a/Content.Shared/StatusEffectNew/Components/StatusEffectComponent.cs +++ b/Content.Shared/StatusEffectNew/Components/StatusEffectComponent.cs @@ -1,4 +1,3 @@ -using Content.Shared.Alert; using Content.Shared.Whitelist; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; diff --git a/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs b/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs index 0c4c5cf1f7..3644bed45e 100644 --- a/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs +++ b/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs @@ -1,6 +1,7 @@ using Content.Shared.Movement.Events; using Content.Shared.Movement.Systems; using Content.Shared.Rejuvenate; +using Content.Shared.Speech; using Content.Shared.StatusEffectNew.Components; using Content.Shared.Stunnable; using Robust.Shared.Player; @@ -23,6 +24,8 @@ public sealed partial class StatusEffectsSystem SubscribeLocalEvent(RefRelayStatusEffectEvent); SubscribeLocalEvent(RefRelayStatusEffectEvent); + + SubscribeLocalEvent(RelayStatusEffectEvent); } private void RefRelayStatusEffectEvent(EntityUid uid, StatusEffectContainerComponent component, ref T args) where T : struct diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml b/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml index d2dd761468..909e11e21f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml @@ -19,7 +19,6 @@ group: GenericNumber - type: StatusEffects allowed: - - Stutter - Electrocution - TemporaryBlindness - RadiationProtection diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index ba4c5e3698..eba25717f3 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -35,7 +35,6 @@ bodyType: KinematicController # Same for all inheritors - type: StatusEffects allowed: - - Stutter - Electrocution - type: Pullable - type: Tag diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 279dbe9f54..fd700d7a4c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -15,7 +15,6 @@ bodyType: KinematicController # Same for all inheritors - type: StatusEffects allowed: - - Stutter - Electrocution - type: Repairable doAfterDelay: 8 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml index 11c0f0d21d..4090138b57 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml @@ -19,7 +19,6 @@ baseSprintSpeed : 4 - type: StatusEffects allowed: - - Stutter - Electrocution - TemporaryBlindness - Pacified @@ -93,7 +92,6 @@ baseDecayRate: 0.04 - type: StatusEffects allowed: - - Stutter - Electrocution - TemporaryBlindness - Pacified diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index b6b344d6b5..441751a80b 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -100,7 +100,6 @@ types: {} - type: StatusEffects # Overwriting basesimplemob to remove flash, getting flashed as dragon just feelsbad allowed: - - Stutter - Electrocution - TemporaryBlindness - Pacified diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 10c39ed7a0..3bb43c26cb 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -120,10 +120,7 @@ - !type:WashCreamPieReaction - type: StatusEffects allowed: - - Stutter - Electrocution - - Drunk - - SlurredSpeech - RatvarianLanguage - PressureImmunity - Muted diff --git a/Resources/Prototypes/Entities/StatusEffects/body.yml b/Resources/Prototypes/Entities/StatusEffects/body.yml new file mode 100644 index 0000000000..3765ebefd4 --- /dev/null +++ b/Resources/Prototypes/Entities/StatusEffects/body.yml @@ -0,0 +1,18 @@ +- type: entity + parent: MobStatusEffectBase + id: BloodstreamStatusEffectBase + abstract: true + components: + - type: StatusEffect + whitelist: + components: + - Bloodstream + +- type: entity + parent: [ BloodstreamStatusEffectBase ] + id: StatusEffectBloodloss + name: bloodloss + components: + - type: StutteringAccent + - type: DrunkStatusEffect + - type: RejuvenateRemovedStatusEffect diff --git a/Resources/Prototypes/Entities/StatusEffects/misc.yml b/Resources/Prototypes/Entities/StatusEffects/misc.yml index 3ce81081c0..14c6b5b649 100644 --- a/Resources/Prototypes/Entities/StatusEffects/misc.yml +++ b/Resources/Prototypes/Entities/StatusEffects/misc.yml @@ -78,3 +78,17 @@ name: hallucinations components: - type: SeeingRainbowsStatusEffect + +# Causes your vision to become blurry and gives me a headache. +- type: entity + parent: MobStatusEffectDebuff + id: StatusEffectWoozy + name: woozy + components: + - type: DrunkStatusEffect + +# Causes you to get drunk +- type: entity + parent: [ StatusEffectWoozy, StatusEffectSlurred ] + id: StatusEffectDrunk + name: drunk diff --git a/Resources/Prototypes/Entities/StatusEffects/speech.yml b/Resources/Prototypes/Entities/StatusEffects/speech.yml new file mode 100644 index 0000000000..17e533b1a8 --- /dev/null +++ b/Resources/Prototypes/Entities/StatusEffects/speech.yml @@ -0,0 +1,27 @@ +- type: entity + parent: MobStatusEffectDebuff + id: SpeechStatusEffectBase + abstract: true + components: + - type: StatusEffect + whitelist: + components: + - MobState + - Speech + requireAll: true + +# Causes you to st-t-u-t-t-t-er randomly when talking. +- type: entity + parent: SpeechStatusEffectBase + id: StatusEffectStutter + name: stutter + components: + - type: StutteringAccent + +# Causes you to schlur your words schwhen talking. +- type: entity + parent: SpeechStatusEffectBase + id: StatusEffectSlurred + name: slurred + components: + - type: SlurredAccent diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index 6ac69c84eb..f0a11706b0 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -12,9 +12,9 @@ - !type:GenericStatusEffect key: Stutter component: ScrambledAccent - - !type:Drunk - slurSpeech: false - boozePower: 20 + - !type:ModifyStatusEffect + effectProto: StatusEffectSlurred + time: 20.0 - type: reagent id: Dylovene @@ -104,8 +104,8 @@ metabolisms: Medicine: effects: - - !type:GenericStatusEffect - key: Drunk + - !type:ModifyStatusEffect + effectProto: StatusEffectDrunk time: 6.0 type: Remove - !type:HealthChange @@ -1353,8 +1353,8 @@ key: Jitter time: 2.0 type: Remove - - !type:GenericStatusEffect - key: Drunk + - !type:ModifyStatusEffect + effectProto: StatusEffectDrunk time: 6.0 type: Remove - !type:PopupMessage # we dont have sanity/mood so this will have to do From 87705e0335620828d11ba95520a72de80bd1e0ee Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 18 Aug 2025 20:27:36 +0000 Subject: [PATCH 10/16] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 024760194a..c9c1234ca8 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: OnyxTheBrave - changes: - - message: Cloth is now able to be made in the Sheet-Meister 2000 - type: Add - id: 8354 - time: '2025-04-26T03:22:52.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/32676 - author: SyaoranFox changes: - message: Pulse Pistol, Pulse Carbine, and Pulse Rifle now share the same sound @@ -3952,3 +3945,10 @@ id: 8866 time: '2025-08-18T18:58:30.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/39732 +- author: Princess-Cheeseballs + changes: + - message: Being a Lightweight drunk no longer extends your bloodloss + type: Fix + id: 8867 + time: '2025-08-18T20:26:29.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/38678 From 47cf99fb7e34888a3d4798122620e08f721e8f21 Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:42:40 +0200 Subject: [PATCH 11/16] Fix medipen injectors not respecting entity identity (#39735) * Remove StaminaResistance from places where it should not be * I lost a nukie round because of this bug * Who put the god damn changes on the god damn branch --- Content.Shared/Chemistry/EntitySystems/HypospraySystem.cs | 2 +- .../Locale/en-US/chemistry/components/hypospray-component.ftl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Chemistry/EntitySystems/HypospraySystem.cs b/Content.Shared/Chemistry/EntitySystems/HypospraySystem.cs index 34bc44f1cb..324858afd7 100644 --- a/Content.Shared/Chemistry/EntitySystems/HypospraySystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/HypospraySystem.cs @@ -144,7 +144,7 @@ public sealed class HypospraySystem : EntitySystem return false; } - _popup.PopupClient(Loc.GetString(msgFormat ?? "hypospray-component-inject-other-message", ("other", target)), target, user); + _popup.PopupClient(Loc.GetString(msgFormat ?? "hypospray-component-inject-other-message", ("other", Identity.Entity(target, EntityManager))), target, user); if (target != user) { diff --git a/Resources/Locale/en-US/chemistry/components/hypospray-component.ftl b/Resources/Locale/en-US/chemistry/components/hypospray-component.ftl index 96ebaa3ed0..36d229e78f 100644 --- a/Resources/Locale/en-US/chemistry/components/hypospray-component.ftl +++ b/Resources/Locale/en-US/chemistry/components/hypospray-component.ftl @@ -8,7 +8,7 @@ hypospray-volume-label = Volume: [color=white]{$currentVolume}/{$totalVolume}u[/ ## Entity -hypospray-component-inject-other-message = You inject {$other}. +hypospray-component-inject-other-message = You inject {THE($other)}. hypospray-component-inject-self-message = You inject yourself. hypospray-component-empty-message = Nothing to inject. hypospray-component-feel-prick-message = You feel a tiny prick! From 020f25139c7a3e22bd80f7936efe5debae861e51 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 18 Aug 2025 20:43:48 +0000 Subject: [PATCH 12/16] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index c9c1234ca8..f50bcb8a21 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: SyaoranFox - changes: - - message: Pulse Pistol, Pulse Carbine, and Pulse Rifle now share the same sound - file. - type: Tweak - id: 8355 - time: '2025-04-26T13:36:51.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/36952 - author: RedBookcase changes: - message: Various changes to edged weapons, including new storage sprites and new @@ -3952,3 +3944,11 @@ id: 8867 time: '2025-08-18T20:26:29.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/38678 +- author: SlamBamActionman + changes: + - message: Auto-injector/medipen pop-ups now show the correct identity when injecting + someone else. + type: Fix + id: 8868 + time: '2025-08-18T20:42:41.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/39735 From 3323a17b3d3f5830e8e7a6c6418019c373b9d017 Mon Sep 17 00:00:00 2001 From: MarkerWicker Date: Mon, 18 Aug 2025 17:49:25 -0600 Subject: [PATCH 13/16] predict StackSystem GetVerbsEvent (#39741) --- Content.Server/Stack/StackSystem.cs | 41 +---------------- Content.Shared/Stacks/SharedStackSystem.cs | 53 ++++++++++++++++++++++ 2 files changed, 54 insertions(+), 40 deletions(-) diff --git a/Content.Server/Stack/StackSystem.cs b/Content.Server/Stack/StackSystem.cs index a24cb2df42..aac5a23902 100644 --- a/Content.Server/Stack/StackSystem.cs +++ b/Content.Server/Stack/StackSystem.cs @@ -16,13 +16,9 @@ namespace Content.Server.Stack { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - public static readonly int[] DefaultSplitAmounts = { 1, 5, 10, 20, 30, 50 }; - public override void Initialize() { base.Initialize(); - - SubscribeLocalEvent>(OnStackAlternativeInteract); } public override void SetCount(EntityUid uid, int amount, StackComponent? component = null) @@ -165,42 +161,7 @@ namespace Content.Server.Stack return amounts; } - private void OnStackAlternativeInteract(EntityUid uid, StackComponent stack, GetVerbsEvent args) - { - if (!args.CanAccess || !args.CanInteract || args.Hands == null || stack.Count == 1) - return; - - AlternativeVerb halve = new() - { - Text = Loc.GetString("comp-stack-split-halve"), - Category = VerbCategory.Split, - Act = () => UserSplit(uid, args.User, stack.Count / 2, stack), - Priority = 1 - }; - args.Verbs.Add(halve); - - var priority = 0; - foreach (var amount in DefaultSplitAmounts) - { - if (amount >= stack.Count) - continue; - - AlternativeVerb verb = new() - { - Text = amount.ToString(), - Category = VerbCategory.Split, - Act = () => UserSplit(uid, args.User, amount, stack), - // we want to sort by size, not alphabetically by the verb text. - Priority = priority - }; - - priority--; - - args.Verbs.Add(verb); - } - } - - private void UserSplit(EntityUid uid, EntityUid userUid, int amount, + protected override void UserSplit(EntityUid uid, EntityUid userUid, int amount, StackComponent? stack = null, TransformComponent? userTransform = null) { diff --git a/Content.Shared/Stacks/SharedStackSystem.cs b/Content.Shared/Stacks/SharedStackSystem.cs index 60b93a8da8..b3de1870fe 100644 --- a/Content.Shared/Stacks/SharedStackSystem.cs +++ b/Content.Shared/Stacks/SharedStackSystem.cs @@ -6,6 +6,7 @@ using Content.Shared.Interaction; using Content.Shared.Nutrition; using Content.Shared.Popups; using Content.Shared.Storage.EntitySystems; +using Content.Shared.Verbs; using JetBrains.Annotations; using Robust.Shared.GameStates; using Robust.Shared.Physics.Systems; @@ -29,6 +30,8 @@ namespace Content.Shared.Stacks [Dependency] protected readonly SharedPopupSystem Popup = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; + public static readonly int[] DefaultSplitAmounts = { 1, 5, 10, 20, 30, 50 }; + public override void Initialize() { base.Initialize(); @@ -40,6 +43,7 @@ namespace Content.Shared.Stacks SubscribeLocalEvent(OnStackInteractUsing); SubscribeLocalEvent(OnBeforeEaten); SubscribeLocalEvent(OnEaten); + SubscribeLocalEvent>(OnStackAlternativeInteract); _vvm.GetTypeHandler() .AddPath(nameof(StackComponent.Count), (_, comp) => comp.Count, SetCount); @@ -432,6 +436,55 @@ namespace Content.Shared.Stacks // Here to tell the food system to do destroy stuff. args.Destroy = true; } + + private void OnStackAlternativeInteract(EntityUid uid, StackComponent stack, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Hands == null || stack.Count == 1) + return; + + AlternativeVerb halve = new() + { + Text = Loc.GetString("comp-stack-split-halve"), + Category = VerbCategory.Split, + Act = () => UserSplit(uid, args.User, stack.Count / 2, stack), + Priority = 1 + }; + args.Verbs.Add(halve); + + var priority = 0; + foreach (var amount in DefaultSplitAmounts) + { + if (amount >= stack.Count) + continue; + + AlternativeVerb verb = new() + { + Text = amount.ToString(), + Category = VerbCategory.Split, + Act = () => UserSplit(uid, args.User, amount, stack), + // we want to sort by size, not alphabetically by the verb text. + Priority = priority + }; + + priority--; + + args.Verbs.Add(verb); + } + } + + /// + /// OnStackAlternativeInteract() was moved to shared in order to faciliate prediction of stack splitting verbs. + /// However, prediction of interacitons with spawned entities is non-functional (or so i'm told) + /// So, UserSplit() and Split() should remain on the server for the time being. + /// This empty virtual method allows for UserSplit() to be called on the server from the client. + /// When prediction is improved, those two methods should be moved to shared, in order to predict the splitting itself (not just the verbs) + /// + protected virtual void UserSplit(EntityUid uid, EntityUid userUid, int amount, + StackComponent? stack = null, + TransformComponent? userTransform = null) + { + + } } /// From 8768074706197e2b59795faa125df4f4eebb68e4 Mon Sep 17 00:00:00 2001 From: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:36:28 -0400 Subject: [PATCH 14/16] More informative changeline devour armor text (#39745) more informative armor text --- Resources/Locale/en-US/changeling/changeling.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Locale/en-US/changeling/changeling.ftl b/Resources/Locale/en-US/changeling/changeling.ftl index d304385848..57ad3550bf 100644 --- a/Resources/Locale/en-US/changeling/changeling.ftl +++ b/Resources/Locale/en-US/changeling/changeling.ftl @@ -2,7 +2,7 @@ roles-antag-changeling-objective = A intelligent predator that assumes the identities of its victims. changeling-devour-attempt-failed-rotting = This corpse has only rotted biomass. -changeling-devour-attempt-failed-protected = This victim's biomass is protected. +changeling-devour-attempt-failed-protected = This victim's biomass is protected by armor! changeling-devour-begin-windup-self = Our uncanny mouth reveals itself with otherworldly hunger. changeling-devour-begin-windup-others = { CAPITALIZE(POSS-ADJ($user)) } uncanny mouth reveals itself with otherworldly hunger. From a491718be6acd6b30753798fa87c267f2368fb78 Mon Sep 17 00:00:00 2001 From: Nox Date: Mon, 18 Aug 2025 23:19:05 -0700 Subject: [PATCH 15/16] Rebuilt Box Armory (#39733) Rebuilt Box armory Signed-off-by: Nox38 --- Resources/Maps/box.yml | 2368 +++++++++++++++++++++++++++------------- 1 file changed, 1589 insertions(+), 779 deletions(-) diff --git a/Resources/Maps/box.yml b/Resources/Maps/box.yml index c86fde6628..b47c15cf62 100644 --- a/Resources/Maps/box.yml +++ b/Resources/Maps/box.yml @@ -4,8 +4,8 @@ meta: engineVersion: 266.0.0 forkId: "" forkVersion: "" - time: 08/09/2025 20:23:34 - entityCount: 28684 + time: 08/18/2025 19:36:14 + entityCount: 28741 maps: - 780 grids: @@ -170,7 +170,7 @@ entities: version: 7 -1,2: ind: -1,2 - tiles: WQAAAAAAAFkAAAAAAQB5AAAAAAAAWQAAAAADAFkAAAAAAQB5AAAAAAAAHQAAAAACAB0AAAAAAwAdAAAAAAMAHQAAAAACAB0AAAAAAgAdAAAAAAMAHQAAAAADAB0AAAAAAABZAAAAAAEAWQAAAAACAFkAAAAAAwBZAAAAAAEAeQAAAAAAAFkAAAAAAgBZAAAAAAEAHQAAAAACAB0AAAAAAAAdAAAAAAIAHQAAAAADAB0AAAAAAQAdAAAAAAEAHQAAAAADAB0AAAAAAgAdAAAAAAEAWQAAAAADAFkAAAAAAwBZAAAAAAIAWQAAAAABAHkAAAAAAABZAAAAAAAAeQAAAAAAAHkAAAAAAAAdAAAAAAMAHQAAAAAAAB0AAAAAAQAdAAAAAAIAHQAAAAACAB0AAAAAAgAdAAAAAAIAeQAAAAAAAFkAAAAAAgB5AAAAAAAAWQAAAAAAAFkAAAAAAAB5AAAAAAAAWQAAAAAAAFkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAB0AAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAABZAAAAAAMAWQAAAAAAAHkAAAAAAAAdAAAAAAMAeQAAAAAAAFkAAAAAAgBZAAAAAAIAWQAAAAACAFkAAAAAAwBZAAAAAAAAWQAAAAACAFkAAAAAAwBZAAAAAAIAWQAAAAADAFkAAAAAAwBZAAAAAAIAWQAAAAADAFkAAAAAAQAdAAAAAAIAHQAAAAACAHkAAAAAAABZAAAAAAEAWQAAAAABAFkAAAAAAABZAAAAAAMAWQAAAAABAFkAAAAAAgBZAAAAAAIAWQAAAAACAFkAAAAAAABZAAAAAAMAWQAAAAADAFkAAAAAAQBZAAAAAAMAHQAAAAADAB0AAAAAAAB5AAAAAAAAWQAAAAAAAFkAAAAAAgBZAAAAAAEAWQAAAAACAFkAAAAAAwBZAAAAAAAAWQAAAAAAAFkAAAAAAwBZAAAAAAMAWQAAAAACAFkAAAAAAQBZAAAAAAAAWQAAAAABAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAFkAAAAAAABZAAAAAAAAWQAAAAADAHkAAAAAAABZAAAAAAEAWQAAAAACAFkAAAAAAQB5AAAAAAAAHQAAAAABAB0AAAAAAwAdAAAAAAMAHQAAAAACAFkAAAAAAgAdAAAAAAAAHQAAAAACAB0AAAAAAABZAAAAAAMAWQAAAAABAFkAAAAAAQB5AAAAAAAAWQAAAAABAFkAAAAAAQBZAAAAAAMAeQAAAAAAAB0AAAAAAQBZAAAAAAIAWQAAAAADAFkAAAAAAQBZAAAAAAIAeQAAAAAAAB0AAAAAAgB5AAAAAAAAWQAAAAABAFkAAAAAAgBZAAAAAAAAeQAAAAAAAFkAAAAAAgBZAAAAAAAAWQAAAAACAHkAAAAAAAAdAAAAAAMAWQAAAAAAAB0AAAAAAQBZAAAAAAAAWQAAAAACAB0AAAAAAQAdAAAAAAIAHQAAAAAAAFkAAAAAAwBZAAAAAAEAWQAAAAACAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAFkAAAAAAAB5AAAAAAAAWQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAABZAAAAAAAAWQAAAAABAFkAAAAAAwB5AAAAAAAAHQAAAAAAAB0AAAAAAwAdAAAAAAIAeQAAAAAAAB0AAAAAAQBZAAAAAAIAHQAAAAAAAFkAAAAAAQAdAAAAAAAAHQAAAAAAAB0AAAAAAAB5AAAAAAAAWQAAAAAAAFkAAAAAAwBZAAAAAAIAHQAAAAABAB0AAAAAAAAdAAAAAAIAHQAAAAAAAHkAAAAAAAAdAAAAAAMAWQAAAAACAB0AAAAAAQBZAAAAAAMAWQAAAAACAFkAAAAAAABZAAAAAAAAHQAAAAAAAFkAAAAAAABZAAAAAAIAWQAAAAACAHkAAAAAAAAdAAAAAAAAHQAAAAADAB0AAAAAAgB5AAAAAAAAHQAAAAADAFkAAAAAAQBZAAAAAAEAWQAAAAABAFkAAAAAAABZAAAAAAAAWQAAAAAAAB0AAAAAAABZAAAAAAIAWQAAAAAAAFkAAAAAAQB5AAAAAAAAHQAAAAAAAB0AAAAAAQAdAAAAAAMAeQAAAAAAAB0AAAAAAAAdAAAAAAEAHQAAAAAAAB0AAAAAAwAdAAAAAAEAHQAAAAAAAB0AAAAAAAB5AAAAAAAAWQAAAAACAFkAAAAAAgBZAAAAAAIAeQAAAAAAAB0AAAAAAgAdAAAAAAIAHQAAAAADAA== + tiles: WQAAAAAAAFkAAAAAAQB5AAAAAAAAWQAAAAADAFkAAAAAAQB5AAAAAAAAHQAAAAACAB0AAAAAAwAdAAAAAAMAHQAAAAACAB0AAAAAAgAdAAAAAAMAHQAAAAADAB0AAAAAAABZAAAAAAEAWQAAAAACAFkAAAAAAwBZAAAAAAEAeQAAAAAAAFkAAAAAAgBZAAAAAAEAHQAAAAACAB0AAAAAAAAdAAAAAAIAHQAAAAADAB0AAAAAAQAdAAAAAAEAHQAAAAADAB0AAAAAAgAdAAAAAAEAWQAAAAADAFkAAAAAAwBZAAAAAAIAWQAAAAABAHkAAAAAAABZAAAAAAAAeQAAAAAAAHkAAAAAAAAdAAAAAAMAHQAAAAAAAB0AAAAAAQAdAAAAAAIAHQAAAAACAB0AAAAAAgAdAAAAAAIAeQAAAAAAAFkAAAAAAgB5AAAAAAAAWQAAAAAAAFkAAAAAAAB5AAAAAAAAWQAAAAAAAFkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAB0AAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAABZAAAAAAMAWQAAAAAAAHkAAAAAAAAdAAAAAAMAeQAAAAAAAFkAAAAAAgBZAAAAAAIAWQAAAAACAFkAAAAAAwBZAAAAAAAAWQAAAAACAFkAAAAAAwBZAAAAAAIAWQAAAAADAFkAAAAAAwBZAAAAAAIAWQAAAAADAFkAAAAAAQAdAAAAAAIAHQAAAAACAHkAAAAAAABZAAAAAAEAWQAAAAABAFkAAAAAAABZAAAAAAMAWQAAAAABAFkAAAAAAgBZAAAAAAIAWQAAAAACAFkAAAAAAABZAAAAAAMAWQAAAAADAFkAAAAAAQBZAAAAAAMAHQAAAAADAB0AAAAAAAB5AAAAAAAAWQAAAAAAAFkAAAAAAgBZAAAAAAEAWQAAAAACAFkAAAAAAwBZAAAAAAAAWQAAAAAAAFkAAAAAAwBZAAAAAAMAWQAAAAACAFkAAAAAAQBZAAAAAAAAWQAAAAABAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAFkAAAAAAABZAAAAAAAAWQAAAAADAHkAAAAAAABZAAAAAAEAWQAAAAACAFkAAAAAAQB5AAAAAAAAHQAAAAABAB0AAAAAAwAdAAAAAAMAHQAAAAACAHkAAAAAAAAdAAAAAAAAHQAAAAACAHkAAAAAAABZAAAAAAMAWQAAAAABAFkAAAAAAQB5AAAAAAAAWQAAAAABAFkAAAAAAQBZAAAAAAMAeQAAAAAAAB0AAAAAAQBZAAAAAAIAWQAAAAADAFkAAAAAAQAdAAAAAAAAHQAAAAAAAB0AAAAAAgAdAAAAAAAAWQAAAAABAFkAAAAAAgBZAAAAAAAAeQAAAAAAAFkAAAAAAgBZAAAAAAAAWQAAAAACAHkAAAAAAAAdAAAAAAMAWQAAAAAAAFkAAAAAAABZAAAAAAAAeQAAAAAAAB0AAAAAAQAdAAAAAAIAeQAAAAAAAFkAAAAAAwBZAAAAAAEAWQAAAAACAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAAB5AAAAAAAAHQAAAAAAAFkAAAAAAAAdAAAAAAAAWQAAAAAAAHkAAAAAAAB5AAAAAAAAeQAAAAAAAHkAAAAAAABZAAAAAAAAWQAAAAABAFkAAAAAAwB5AAAAAAAAHQAAAAAAAB0AAAAAAwAdAAAAAAIAeQAAAAAAAHkAAAAAAABZAAAAAAIAeQAAAAAAAFkAAAAAAQAdAAAAAAAAHQAAAAAAAB0AAAAAAAB5AAAAAAAAWQAAAAAAAFkAAAAAAwBZAAAAAAIAHQAAAAABAB0AAAAAAAAdAAAAAAIAHQAAAAAAAHkAAAAAAAAdAAAAAAMAWQAAAAACAB0AAAAAAQBZAAAAAAMAWQAAAAACAFkAAAAAAABZAAAAAAAAeQAAAAAAAFkAAAAAAABZAAAAAAIAWQAAAAACAHkAAAAAAAAdAAAAAAAAHQAAAAADAB0AAAAAAgB5AAAAAAAAHQAAAAADAFkAAAAAAQBZAAAAAAEAWQAAAAABAFkAAAAAAABZAAAAAAAAWQAAAAAAAHkAAAAAAABZAAAAAAIAWQAAAAAAAFkAAAAAAQB5AAAAAAAAHQAAAAAAAB0AAAAAAQAdAAAAAAMAeQAAAAAAAB0AAAAAAAAdAAAAAAEAHQAAAAAAAB0AAAAAAwAdAAAAAAEAHQAAAAAAAB0AAAAAAAB5AAAAAAAAWQAAAAACAFkAAAAAAgBZAAAAAAIAeQAAAAAAAB0AAAAAAgAdAAAAAAIAHQAAAAADAA== version: 7 0,2: ind: 0,2 @@ -761,16 +761,14 @@ entities: color: '#DE3A3A96' id: BotGreyscale decals: - 6477: -13,42 6480: -13,45 - 6481: -15,45 - 6482: -15,44 6493: -15,41 - 7558: -13,44 7560: -10,44 7561: -9,44 7562: -9,47 7563: -10,47 + 7598: -13,43 + 7622: -14,47 - node: color: '#FFFFFFFF' id: BotGreyscale @@ -793,11 +791,6 @@ entities: 6231: -25,-75 6232: -24,-76 6233: -25,-77 - - node: - color: '#DE3A3A96' - id: BotLeft - decals: - 7559: -11,44 - node: color: '#FFFFFFFF' id: BotLeft @@ -816,8 +809,6 @@ entities: decals: 6490: -14,40 6491: -15,40 - 6500: -12,47 - 6501: -11,47 - node: zIndex: 1 color: '#FFFFFFFF' @@ -837,7 +828,7 @@ entities: id: BotRightGreyscale decals: 6498: -15,47 - 6499: -14,47 + 7623: -11,47 - node: zIndex: 1 color: '#FFFFFFFF' @@ -846,6 +837,14 @@ entities: 6019: -2,-22 6226: -26,-75 6227: -24,-77 + - node: + color: '#DE3A3A96' + id: BoxGreyscale + decals: + 7618: -9,42 + 7619: -10,42 + 7620: -10,40 + 7621: -9,40 - node: color: '#FFFFFFFF' id: BoxGreyscale @@ -862,12 +861,12 @@ entities: color: '#FFFFFFFF' id: BrickTileDarkInnerNe decals: - 7557: -14,41 + 7603: -14,42 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNw decals: - 7556: -12,41 + 7617: -12,42 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSe @@ -887,8 +886,7 @@ entities: 5989: -24,-10 6466: -14,45 7549: -14,44 - 7550: -14,43 - 7551: -14,42 + 7601: -14,43 - node: color: '#FFFFFFFF' id: BrickTileDarkLineN @@ -906,7 +904,7 @@ entities: 5959: -25,-70 5960: -24,-70 5961: -23,-70 - 7555: -13,41 + 7602: -13,42 - node: zIndex: 1 color: '#FFFFFFFF' @@ -948,7 +946,6 @@ entities: 6462: -12,45 7552: -12,44 7553: -12,43 - 7554: -12,42 - node: color: '#9FED584D' id: BrickTileSteelCornerNe @@ -3046,18 +3043,12 @@ entities: 7111: -12,46 7116: -14,46 7117: -15,46 - 7118: -15,44 7119: -15,41 7120: -15,40 7121: -13,40 - 7122: -11,40 - 7123: -11,41 7125: -11,45 - 7126: -11,47 - 7127: -13,47 7128: -15,47 7129: -13,45 - 7130: -13,42 7133: -7,40 7134: -9,40 7135: -9,41 @@ -3295,6 +3286,13 @@ entities: 6259: -25,-26 6260: -27,-26 6261: -28,-24 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 7626: -11,46 + 7629: -9,46 - node: cleanable: True zIndex: 5 @@ -4122,10 +4120,8 @@ entities: 7400: -7,48 7401: -5,46 7402: -7,44 - 7403: -11,41 7405: -11,45 7406: -13,46 - 7407: -13,42 7408: -3,37 7409: 2,37 7410: 2,41 @@ -4181,6 +4177,13 @@ entities: 7463: -16,24 7464: -14,24 7465: -15,29 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtLight + decals: + 7624: -10,45 + 7627: -14,45 - node: cleanable: True zIndex: 5 @@ -4709,7 +4712,6 @@ entities: 7485: -11,52 7486: -13,50 7487: -14,50 - 7488: -14,47 7489: -15,47 7490: -6,44 7491: -6,38 @@ -4717,6 +4719,13 @@ entities: 7493: 0,26 7494: -1,18 7495: -9,17 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtMedium + decals: + 7625: -10,46 + 7628: -9,45 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7290,6 +7299,7 @@ entities: decals: 1608: 19,-19 3513: 23,17 + 7599: -9,45 - node: color: '#FFFFFFFF' id: WarnCornerSW @@ -7297,8 +7307,7 @@ entities: 1615: 21,-21 3517: 25,17 6268: 68,-47 - 6441: -11,40 - 7538: -14,41 + 7608: -14,41 - node: color: '#FFFFFFFF' id: WarnCornerSmallGreyscaleNE @@ -7347,8 +7356,7 @@ entities: 2314: -73,-4 3512: -13,-63 6310: 24,-80 - 7539: -12,42 - 7547: -9,45 + 7614: -12,41 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7410,7 +7418,6 @@ entities: 2315: -69,8 2316: -76,8 3699: -38,-10 - 6442: -11,41 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7419,11 +7426,6 @@ entities: 5976: -23,-66 6069: 20,-76 6175: -19,-82 - - node: - color: '#FFFFFFFF' - id: WarnEndE - decals: - 7545: -8,45 - node: color: '#FFFFFFFF' id: WarnEndGreyscaleN @@ -7469,6 +7471,7 @@ entities: 6967: 10,51 7531: -12,44 7540: -12,43 + 7613: -12,42 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7753,12 +7756,10 @@ entities: 6318: 26,-74 6450: -10,40 6451: -9,40 - 6452: -8,40 - 7528: -13,41 - 7529: -12,41 7532: -11,45 7533: -10,45 - 7534: -9,45 + 7606: -13,41 + 7615: -12,41 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7842,8 +7843,8 @@ entities: 6961: 11,50 6962: 11,51 7523: -14,44 - 7526: -14,43 - 7530: -14,42 + 7600: -14,43 + 7607: -14,42 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7930,10 +7931,8 @@ entities: 6444: -12,46 6445: -11,46 6448: -9,42 - 7541: -11,42 - 7542: -10,42 - 7543: -8,42 7548: -10,46 + 7616: -10,42 - node: zIndex: 1 color: '#FFFFFFFF' @@ -8822,7 +8821,8 @@ entities: -3,6: 0: 65423 -3,7: - 0: 51711 + 0: 51615 + 5: 96 -3,8: 0: 7421 -2,5: @@ -8832,7 +8832,8 @@ entities: -2,7: 0: 64733 -2,8: - 0: 20479 + 0: 19967 + 5: 512 -1,8: 0: 50687 4,8: @@ -8886,9 +8887,12 @@ entities: -3,9: 0: 4095 -3,10: - 0: 15291 + 0: 13235 + 5: 2056 -3,11: - 0: 49087 + 0: 8115 + 6: 8192 + 5: 32780 -2,9: 0: 61439 -2,11: @@ -9796,7 +9800,7 @@ entities: 1: 192 3: 49152 3,-17: - 5: 30576 + 7: 30576 4,-16: 1: 240 0: 61440 @@ -10378,7 +10382,7 @@ entities: 0: 255 1: 49152 4,-17: - 6: 30576 + 8: 30576 5,-20: 0: 65535 5,-19: @@ -10958,6 +10962,36 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.14975 + moles: + - 20.078888 + - 75.53487 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.14948 + moles: + - 18.472576 + - 69.49208 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 293.15 moles: @@ -11337,6 +11371,21 @@ entities: - 22747 - type: Fixtures fixtures: {} + - uid: 8404 + components: + - type: MetaData + name: Red Armory Air Alarm + - type: Transform + pos: -12.5,48.5 + parent: 8364 + - type: DeviceList + devices: + - 28696 + - 9106 + - 28633 + - 8577 + - type: Fixtures + fixtures: {} - uid: 10705 components: - type: Transform @@ -12632,7 +12681,6 @@ entities: - 9126 - 9127 - 9125 - - 26306 - 26248 - 26256 - 26257 @@ -12671,26 +12719,6 @@ entities: - 26235 - type: Fixtures fixtures: {} - - uid: 26323 - components: - - type: MetaData - name: Armory Air Alarm - - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,39.5 - parent: 8364 - - type: DeviceList - devices: - - 28634 - - 26322 - - 28631 - - 28643 - - 28632 - - 28633 - - 28642 - - 28644 - - type: Fixtures - fixtures: {} - uid: 26340 components: - type: MetaData @@ -13101,6 +13129,24 @@ entities: - 28506 - type: Fixtures fixtures: {} + - uid: 28739 + components: + - type: MetaData + name: Blue Armory Air Alarm + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,39.5 + parent: 8364 + - type: DeviceList + devices: + - 28731 + - 28501 + - 9106 + - 28696 + - 28634 + - 28728 + - type: Fixtures + fixtures: {} - proto: AirAlarmFreezer entities: - uid: 26712 @@ -13396,12 +13442,6 @@ entities: parent: 8364 - proto: AirlockArmoryGlassLocked entities: - - uid: 8662 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,40.5 - parent: 8364 - uid: 8676 components: - type: MetaData @@ -13410,12 +13450,6 @@ entities: rot: 1.5707963267948966 rad pos: -5.5,35.5 parent: 8364 - - uid: 8699 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,42.5 - parent: 8364 - uid: 8932 components: - type: MetaData @@ -13507,6 +13541,16 @@ entities: rot: 1.5707963267948966 rad pos: -1.5,34.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 8943: + - - DoorStatus + - Close + 8920: + - - DoorStatus + - Close - uid: 7765 components: - type: MetaData @@ -13538,6 +13582,16 @@ entities: rot: 1.5707963267948966 rad pos: 0.5,34.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 8920: + - - DoorStatus + - Close + 8943: + - - DoorStatus + - Close - uid: 8920 components: - type: MetaData @@ -13546,6 +13600,16 @@ entities: rot: 1.5707963267948966 rad pos: 0.5,30.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 8907: + - - DoorStatus + - Close + 7759: + - - DoorStatus + - Close - uid: 8943 components: - type: MetaData @@ -13554,6 +13618,16 @@ entities: rot: 1.5707963267948966 rad pos: -1.5,30.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 7759: + - - DoorStatus + - Close + 8907: + - - DoorStatus + - Close - proto: AirlockBrigLocked entities: - uid: 55 @@ -14865,7 +14939,7 @@ entities: pos: 24.5,16.5 parent: 8364 - type: Door - secondsUntilStateChange: -139849.31 + secondsUntilStateChange: -144181.02 state: Opening - type: DeviceLinkSource lastSignals: @@ -16292,6 +16366,20 @@ entities: - type: Transform pos: -60.5,2.5 parent: 8364 + - uid: 13819 + components: + - type: MetaData + name: glass airlock (Blue Armory) + - type: Transform + pos: -7.5,41.5 + parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 28735: + - - DoorStatus + - Close - uid: 14151 components: - type: Transform @@ -16304,6 +16392,20 @@ entities: - type: Transform pos: -23.5,-30.5 parent: 8364 + - uid: 28735 + components: + - type: MetaData + name: glass airlock (Blue Armory) + - type: Transform + pos: -10.5,41.5 + parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 13819: + - - DoorStatus + - Close - proto: AirlockSecurityLawyerGlassLocked entities: - uid: 542 @@ -16576,6 +16678,15 @@ entities: - type: DeviceNetwork deviceLists: - 22699 + - uid: 9106 + components: + - type: Transform + pos: -12.5,41.5 + parent: 8364 + - type: DeviceNetwork + deviceLists: + - 28739 + - 8404 - uid: 9450 components: - type: Transform @@ -17146,14 +17257,6 @@ entities: - 26206 - 28498 - 28500 - - uid: 26322 - components: - - type: Transform - pos: -10.5,45.5 - parent: 8364 - - type: DeviceNetwork - deviceLists: - - 26323 - uid: 26341 components: - type: Transform @@ -17536,14 +17639,21 @@ entities: - type: DeviceNetwork deviceLists: - 28500 + - 28739 - uid: 28644 components: - type: Transform pos: -11.5,41.5 parent: 8364 + - uid: 28696 + components: + - type: Transform + pos: -11.5,46.5 + parent: 8364 - type: DeviceNetwork deviceLists: - - 26323 + - 8404 + - 28739 - proto: AirSensorFreezer entities: - uid: 28411 @@ -22355,11 +22465,6 @@ entities: - type: Transform pos: -5.5,-76.5 parent: 8364 - - uid: 13622 - components: - - type: Transform - pos: -7.5,45.5 - parent: 8364 - uid: 13849 components: - type: Transform @@ -22824,6 +22929,13 @@ entities: - type: Transform pos: -19.55601,-15.847038 parent: 8364 +- proto: BoxFlashbang + entities: + - uid: 28749 + components: + - type: Transform + pos: -14.479834,46.5225 + parent: 8364 - proto: BoxFolderBase entities: - uid: 8625 @@ -22978,7 +23090,12 @@ entities: - uid: 8397 components: - type: Transform - pos: -0.118038416,43.70481 + pos: 0.014337063,43.815163 + parent: 8364 + - uid: 28727 + components: + - type: Transform + pos: -14.356977,45.6773 parent: 8364 - proto: BoxingBell entities: @@ -23002,6 +23119,22 @@ entities: - type: Transform pos: 24.498875,-36.223793 parent: 8364 +- proto: BoxLethalshot + entities: + - uid: 26309 + components: + - type: Transform + parent: 26317 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26310 + components: + - type: Transform + parent: 26317 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: BoxLightbulb entities: - uid: 1999 @@ -23050,7 +23183,7 @@ entities: - uid: 5078 components: - type: Transform - pos: -3.8724453,34.55979 + pos: -14.497602,45.39605 parent: 8364 - proto: BoxMagazinePistolPractice entities: @@ -23092,6 +23225,18 @@ entities: - type: Transform pos: 7.3923097,47.786827 parent: 8364 +- proto: BoxShotgunSlug + entities: + - uid: 7852 + components: + - type: Transform + pos: -7.2934785,34.60984 + parent: 8364 + - uid: 9144 + components: + - type: Transform + pos: -7.289858,34.610893 + parent: 8364 - proto: BoxSterileMask entities: - uid: 5467 @@ -23104,6 +23249,13 @@ entities: - type: Transform pos: 24.405125,-36.239418 parent: 8364 +- proto: BoxStinger + entities: + - uid: 28700 + components: + - type: Transform + pos: -14.6620245,46.74173 + parent: 8364 - proto: BoxSyringe entities: - uid: 19263 @@ -23118,6 +23270,11 @@ entities: - type: Transform pos: 11.476913,44.679543 parent: 8364 + - uid: 26323 + components: + - type: Transform + pos: -14.229834,46.74125 + parent: 8364 - proto: BoxTrashbag entities: - uid: 13356 @@ -23142,7 +23299,12 @@ entities: - uid: 9112 components: - type: Transform - pos: -4.1121473,34.789116 + pos: -0.0012879372,43.455788 + parent: 8364 + - uid: 28730 + components: + - type: Transform + pos: -14.700727,45.70855 parent: 8364 - proto: BrbSign entities: @@ -23220,12 +23382,6 @@ entities: rot: 3.141592653589793 rad pos: 16.5,-86.5 parent: 8364 - - uid: 8623 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,44.5 - parent: 8364 - uid: 9041 components: - type: Transform @@ -23287,6 +23443,12 @@ entities: rot: -1.5707963267948966 rad pos: 10.5,47.5 parent: 8364 + - uid: 8419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,44.5 + parent: 8364 - proto: ButtonFrameExit entities: - uid: 3810 @@ -24411,6 +24573,11 @@ entities: - type: Transform pos: -21.5,-76.5 parent: 8364 + - uid: 5072 + components: + - type: Transform + pos: -9.5,41.5 + parent: 8364 - uid: 5086 components: - type: Transform @@ -24906,6 +25073,11 @@ entities: - type: Transform pos: -0.5,23.5 parent: 8364 + - uid: 6332 + components: + - type: Transform + pos: -8.5,46.5 + parent: 8364 - uid: 6348 components: - type: Transform @@ -25561,11 +25733,21 @@ entities: - type: Transform pos: -5.5,12.5 parent: 8364 + - uid: 7292 + components: + - type: Transform + pos: -9.5,46.5 + parent: 8364 - uid: 7297 components: - type: Transform pos: -17.5,18.5 parent: 8364 + - uid: 7314 + components: + - type: Transform + pos: -10.5,46.5 + parent: 8364 - uid: 7346 components: - type: Transform @@ -25581,6 +25763,11 @@ entities: - type: Transform pos: -25.5,5.5 parent: 8364 + - uid: 7379 + components: + - type: Transform + pos: -16.5,40.5 + parent: 8364 - uid: 7510 components: - type: Transform @@ -25671,11 +25858,6 @@ entities: - type: Transform pos: -0.5,26.5 parent: 8364 - - uid: 9067 - components: - - type: Transform - pos: -14.5,45.5 - parent: 8364 - uid: 9068 components: - type: Transform @@ -32901,11 +33083,6 @@ entities: - type: Transform pos: -10.5,41.5 parent: 8364 - - uid: 13735 - components: - - type: Transform - pos: -9.5,41.5 - parent: 8364 - uid: 13743 components: - type: Transform @@ -32951,26 +33128,6 @@ entities: - type: Transform pos: -8.5,41.5 parent: 8364 - - uid: 13816 - components: - - type: Transform - pos: -10.5,45.5 - parent: 8364 - - uid: 13817 - components: - - type: Transform - pos: -9.5,45.5 - parent: 8364 - - uid: 13818 - components: - - type: Transform - pos: -8.5,45.5 - parent: 8364 - - uid: 13819 - components: - - type: Transform - pos: -7.5,45.5 - parent: 8364 - uid: 13820 components: - type: Transform @@ -45181,11 +45338,6 @@ entities: - type: Transform pos: 47.5,-28.5 parent: 8364 - - uid: 28503 - components: - - type: Transform - pos: -15.5,45.5 - parent: 8364 - uid: 28539 components: - type: Transform @@ -45261,11 +45413,6 @@ entities: - type: Transform pos: -16.5,47.5 parent: 8364 - - uid: 28582 - components: - - type: Transform - pos: -17.5,47.5 - parent: 8364 - uid: 28601 components: - type: Transform @@ -45281,6 +45428,26 @@ entities: - type: Transform pos: -18.5,21.5 parent: 8364 + - uid: 28698 + components: + - type: Transform + pos: -14.5,46.5 + parent: 8364 + - uid: 28716 + components: + - type: Transform + pos: -7.5,45.5 + parent: 8364 + - uid: 28729 + components: + - type: Transform + pos: -7.5,46.5 + parent: 8364 + - uid: 28741 + components: + - type: Transform + pos: -15.5,46.5 + parent: 8364 - proto: CableApcStack entities: - uid: 1195 @@ -53402,6 +53569,11 @@ entities: - type: Transform pos: -17.5,18.5 parent: 8364 + - uid: 7348 + components: + - type: Transform + pos: -10.5,46.5 + parent: 8364 - uid: 7380 components: - type: Transform @@ -53417,6 +53589,11 @@ entities: - type: Transform pos: -14.5,16.5 parent: 8364 + - uid: 7415 + components: + - type: Transform + pos: -14.5,46.5 + parent: 8364 - uid: 7567 components: - type: Transform @@ -53487,6 +53664,11 @@ entities: - type: Transform pos: -33.5,10.5 parent: 8364 + - uid: 7787 + components: + - type: Transform + pos: -7.5,42.5 + parent: 8364 - uid: 7799 components: - type: Transform @@ -53565,7 +53747,22 @@ entities: - uid: 8406 components: - type: Transform - pos: -14.5,45.5 + pos: -8.5,46.5 + parent: 8364 + - uid: 8408 + components: + - type: Transform + pos: -14.5,44.5 + parent: 8364 + - uid: 8627 + components: + - type: Transform + pos: -7.5,46.5 + parent: 8364 + - uid: 8645 + components: + - type: Transform + pos: -9.5,46.5 parent: 8364 - uid: 8914 components: @@ -55942,11 +56139,6 @@ entities: - type: Transform pos: -15.5,45.5 parent: 8364 - - uid: 13621 - components: - - type: Transform - pos: -15.5,44.5 - parent: 8364 - uid: 13629 components: - type: Transform @@ -61837,6 +62029,31 @@ entities: - type: Transform pos: -19.5,19.5 parent: 8364 + - uid: 28687 + components: + - type: Transform + pos: -15.5,43.5 + parent: 8364 + - uid: 28695 + components: + - type: Transform + pos: -10.5,42.5 + parent: 8364 + - uid: 28734 + components: + - type: Transform + pos: -7.5,40.5 + parent: 8364 + - uid: 28736 + components: + - type: Transform + pos: -7.5,45.5 + parent: 8364 + - uid: 28738 + components: + - type: Transform + pos: -10.5,40.5 + parent: 8364 - proto: CableMVStack entities: - uid: 1697 @@ -73371,20 +73588,25 @@ entities: parent: 8364 - proto: ClothingHeadHelmetRiot entities: - - uid: 7853 + - uid: 9139 components: - type: Transform - pos: -12.25313,40.561676 + pos: -14.256912,43.71807 parent: 8364 - - uid: 8404 + - uid: 9141 components: - type: Transform - pos: -12.25313,40.71804 + pos: -14.256912,43.6139 parent: 8364 - - uid: 8550 + - uid: 9142 components: - type: Transform - pos: -12.25313,40.42617 + pos: -14.256912,43.377792 + parent: 8364 + - uid: 9143 + components: + - type: Transform + pos: -14.256912,43.502792 parent: 8364 - proto: ClothingHeadsetEngineering entities: @@ -73644,6 +73866,11 @@ entities: parent: 8364 - proto: ClothingOuterArmorBulletproof entities: + - uid: 174 + components: + - type: Transform + pos: -14.700324,42.37941 + parent: 8364 - uid: 7850 components: - type: Transform @@ -73652,7 +73879,7 @@ entities: - uid: 8543 components: - type: Transform - pos: -14.691839,42.479675 + pos: -14.700324,42.50441 parent: 8364 - uid: 8546 components: @@ -73671,6 +73898,11 @@ entities: - type: Transform pos: -14.411459,42.631638 parent: 8364 + - uid: 7843 + components: + - type: Transform + pos: -14.403449,42.332535 + parent: 8364 - uid: 7849 components: - type: Transform @@ -73678,20 +73910,25 @@ entities: parent: 8364 - proto: ClothingOuterArmorRiot entities: - - uid: 7846 + - uid: 9145 components: - type: Transform - pos: -12.607471,40.645073 + pos: -14.65969,43.634735 parent: 8364 - - uid: 7852 + - uid: 9146 components: - type: Transform - pos: -12.607471,40.467865 + pos: -14.65969,43.55835 parent: 8364 - - uid: 8544 + - uid: 9147 components: - type: Transform - pos: -12.607471,40.572105 + pos: -14.65969,43.475014 + parent: 8364 + - uid: 28714 + components: + - type: Transform + pos: -14.65969,43.384735 parent: 8364 - proto: ClothingOuterCardborg entities: @@ -73750,33 +73987,49 @@ entities: - type: Transform pos: 66.509186,-76.72045 parent: 8364 -- proto: ClothingOuterHardsuitSecurity +- proto: ClothingOuterHardsuitEVAPrisoner entities: - - uid: 231 + - uid: 28692 components: - type: Transform - parent: 174 + parent: 26319 - type: Physics canCollide: False - type: InsideEntityStorage + - uid: 28694 + components: + - type: Transform + parent: 26320 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitSecurity + entities: - uid: 7350 components: - type: Transform - parent: 7349 + parent: 271 - type: Physics canCollide: False - type: InsideEntityStorage - - uid: 7416 + - uid: 19947 components: - type: Transform - parent: 7415 + parent: 19941 - type: Physics canCollide: False - type: InsideEntityStorage - - uid: 8559 + - uid: 26318 components: - type: Transform - parent: 8558 + parent: 26315 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 28719 + components: + - type: Transform + parent: 28717 - type: Physics canCollide: False - type: InsideEntityStorage @@ -75525,6 +75778,11 @@ entities: parent: 8364 - proto: CrateContrabandStorageSecure entities: + - uid: 7846 + components: + - type: Transform + pos: -12.5,47.5 + parent: 8364 - uid: 8988 components: - type: Transform @@ -76191,10 +76449,10 @@ entities: parent: 8364 - proto: CrateSecurityTrackingMindshieldImplants entities: - - uid: 26318 + - uid: 28637 components: - type: Transform - pos: -14.5,44.5 + pos: -12.5,40.5 parent: 8364 - proto: CrateServiceJanitorialSupplies entities: @@ -76584,10 +76842,10 @@ entities: parent: 8364 - proto: DefaultStationBeaconArmory entities: - - uid: 4931 + - uid: 28732 components: - type: Transform - pos: -12.5,44.5 + pos: -11.5,45.5 parent: 8364 - proto: DefaultStationBeaconArrivals entities: @@ -86006,6 +86264,11 @@ entities: parent: 8364 - proto: EmergencyLight entities: + - uid: 8535 + components: + - type: Transform + pos: -12.5,43.5 + parent: 8364 - uid: 17694 components: - type: Transform @@ -86990,6 +87253,12 @@ entities: parent: 8364 - type: Battery startingCharge: 30000 + - uid: 28724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,45.5 + parent: 8364 - proto: EmergencyOxygenTank entities: - uid: 12451 @@ -87306,13 +87575,6 @@ entities: parent: 8364 - type: Fixtures fixtures: {} - - uid: 6332 - components: - - type: Transform - pos: -7.5,39.5 - parent: 8364 - - type: Fixtures - fixtures: {} - uid: 6333 components: - type: Transform @@ -90140,7 +90402,7 @@ entities: pos: 18.5,-13.5 parent: 8364 - type: Door - secondsUntilStateChange: -47080.31 + secondsUntilStateChange: -51412.016 state: Closing - uid: 13388 components: @@ -90148,7 +90410,7 @@ entities: pos: 18.5,-14.5 parent: 8364 - type: Door - secondsUntilStateChange: -47116.008 + secondsUntilStateChange: -51447.715 state: Closing - uid: 13389 components: @@ -90306,7 +90568,7 @@ entities: pos: -34.5,-14.5 parent: 8364 - type: Door - secondsUntilStateChange: -134037.84 + secondsUntilStateChange: -138369.55 state: Closing - uid: 15010 components: @@ -90958,24 +91220,15 @@ entities: - 1907 - 17159 - 23133 - - uid: 28642 + - uid: 28731 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,45.5 + rot: 3.141592653589793 rad + pos: -7.5,41.5 parent: 8364 - type: DeviceNetwork deviceLists: - - 26323 - - uid: 28643 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,46.5 - parent: 8364 - - type: DeviceNetwork - deviceLists: - - 26323 + - 28739 - proto: Fireplace entities: - uid: 8894 @@ -92599,6 +92852,18 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#03FCD3FF' + - uid: 13622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,45.5 + parent: 8364 + - uid: 13816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,46.5 + parent: 8364 - uid: 13850 components: - type: Transform @@ -94110,6 +94375,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' + - uid: 28689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,45.5 + parent: 8364 - proto: GasPipeFourway entities: - uid: 5316 @@ -94343,13 +94614,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 26301 - components: - - type: Transform - pos: -6.5,45.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 26359 components: - type: Transform @@ -94484,6 +94748,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,42.5 + parent: 8364 - uid: 567 components: - type: Transform @@ -95567,13 +95837,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 7843 - components: - - type: Transform - pos: -10.5,44.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 8118 components: - type: Transform @@ -95670,28 +95933,28 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 8540 - components: - - type: Transform - pos: -13.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 8541 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,45.5 + pos: -11.5,43.5 parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 8549 components: - type: Transform - pos: -10.5,43.5 + rot: -1.5707963267948966 rad + pos: -10.5,42.5 + parent: 8364 + - uid: 8558 + components: + - type: Transform + pos: -11.5,44.5 + parent: 8364 + - uid: 8559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,40.5 parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 8587 components: - type: Transform @@ -95708,6 +95971,24 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 8623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,46.5 + parent: 8364 + - uid: 8662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,42.5 + parent: 8364 + - uid: 8699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,42.5 + parent: 8364 - uid: 8742 components: - type: Transform @@ -95716,6 +95997,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 8749 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,42.5 + parent: 8364 - uid: 8770 components: - type: Transform @@ -95734,10 +96021,8 @@ entities: - uid: 8885 components: - type: Transform - pos: -10.5,45.5 + pos: -6.5,40.5 parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 8986 components: - type: Transform @@ -95746,6 +96031,24 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 9067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,46.5 + parent: 8364 + - uid: 9100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,46.5 + parent: 8364 + - uid: 9102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,46.5 + parent: 8364 - uid: 9221 components: - type: Transform @@ -96030,6 +96333,11 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 10037 + components: + - type: Transform + pos: -13.5,45.5 + parent: 8364 - uid: 10400 components: - type: Transform @@ -96219,6 +96527,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' + - uid: 13621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,42.5 + parent: 8364 - uid: 13661 components: - type: Transform @@ -96234,6 +96548,18 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' + - uid: 13817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,45.5 + parent: 8364 + - uid: 13821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,42.5 + parent: 8364 - uid: 13847 components: - type: Transform @@ -111611,20 +111937,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' - - uid: 26284 - components: - - type: Transform - pos: -4.5,40.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 26285 - components: - - type: Transform - pos: -4.5,41.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 26286 components: - type: Transform @@ -111649,14 +111961,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 26289 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,40.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 26290 components: - type: Transform @@ -111665,14 +111969,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 26291 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 26292 components: - type: Transform @@ -111713,14 +112009,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' - - uid: 26298 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,46.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 26299 components: - type: Transform @@ -111736,14 +112024,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' - - uid: 26302 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,46.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 26303 components: - type: Transform @@ -111759,78 +112039,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 26307 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,45.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 26308 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,45.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 26309 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,45.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 26310 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,45.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 26311 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,45.5 - parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 26312 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 26313 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 26314 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 26315 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 26325 components: - type: Transform @@ -114137,6 +114345,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' + - uid: 28701 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,42.5 + parent: 8364 - proto: GasPipeTJunction entities: - uid: 834 @@ -114280,14 +114494,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' - - uid: 7348 + - uid: 7853 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,42.5 + rot: 3.141592653589793 rad + pos: -9.5,45.5 parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 8203 components: - type: Transform @@ -114295,14 +114507,30 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#990000FF' - - uid: 8436 + - uid: 8540 components: - type: Transform rot: 1.5707963267948966 rad - pos: -13.5,45.5 + pos: -6.5,45.5 + parent: 8364 + - uid: 8544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,42.5 + parent: 8364 + - uid: 8593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,42.5 + parent: 8364 + - uid: 8626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,46.5 parent: 8364 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 8733 components: - type: Transform @@ -114363,6 +114591,12 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 13735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,41.5 + parent: 8364 - uid: 14087 components: - type: Transform @@ -116826,21 +117060,6 @@ entities: parent: 8364 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 26294 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 26305 - components: - - type: Transform - pos: -5.5,42.5 - parent: 8364 - - type: AtmosPipeColor - color: '#990000FF' - uid: 26331 components: - type: Transform @@ -119723,7 +119942,7 @@ entities: parent: 8364 - type: DeviceNetwork deviceLists: - - 26323 + - 8404 - type: AtmosPipeColor color: '#0055CCFF' - uid: 28634 @@ -119734,7 +119953,7 @@ entities: parent: 8364 - type: DeviceNetwork deviceLists: - - 26323 + - 28739 - type: AtmosPipeColor color: '#0055CCFF' - proto: GasVentPumpFreezer @@ -119898,6 +120117,20 @@ entities: - 22703 - type: AtmosPipeColor color: '#990000FF' + - uid: 8562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,41.5 + parent: 8364 + - uid: 8577 + components: + - type: Transform + pos: -9.5,46.5 + parent: 8364 + - type: DeviceNetwork + deviceLists: + - 8404 - uid: 9375 components: - type: Transform @@ -121231,17 +121464,6 @@ entities: - 26234 - type: AtmosPipeColor color: '#990000FF' - - uid: 26306 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,41.5 - parent: 8364 - - type: DeviceNetwork - deviceLists: - - 26206 - - type: AtmosPipeColor - color: '#990000FF' - uid: 26333 components: - type: Transform @@ -121704,27 +121926,15 @@ entities: - 28483 - type: AtmosPipeColor color: '#990000FF' - - uid: 28631 + - uid: 28728 components: - type: Transform rot: 3.141592653589793 rad - pos: -10.5,41.5 + pos: -11.5,41.5 parent: 8364 - type: DeviceNetwork deviceLists: - - 26323 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 28632 - components: - - type: Transform - pos: -10.5,46.5 - parent: 8364 - - type: DeviceNetwork - deviceLists: - - 26323 - - type: AtmosPipeColor - color: '#990000FF' + - 28739 - proto: GasVentScrubberFreezer entities: - uid: 26855 @@ -121927,6 +122137,11 @@ entities: - type: Transform pos: -38.5,17.5 parent: 8364 + - uid: 231 + components: + - type: Transform + pos: -7.5,40.5 + parent: 8364 - uid: 265 components: - type: Transform @@ -126717,11 +126932,6 @@ entities: - type: Transform pos: -15.5,45.5 parent: 8364 - - uid: 8419 - components: - - type: Transform - pos: -15.5,44.5 - parent: 8364 - uid: 8426 components: - type: Transform @@ -126730,7 +126940,7 @@ entities: - uid: 8427 components: - type: Transform - pos: -7.5,41.5 + pos: -10.5,40.5 parent: 8364 - uid: 8430 components: @@ -126742,6 +126952,11 @@ entities: - type: Transform pos: 2.5,39.5 parent: 8364 + - uid: 8436 + components: + - type: Transform + pos: -7.5,46.5 + parent: 8364 - uid: 8442 components: - type: Transform @@ -126792,16 +127007,6 @@ entities: - type: Transform pos: -16.5,46.5 parent: 8364 - - uid: 8626 - components: - - type: Transform - pos: -10.5,43.5 - parent: 8364 - - uid: 8627 - components: - - type: Transform - pos: -9.5,41.5 - parent: 8364 - uid: 8631 components: - type: Transform @@ -126812,11 +127017,6 @@ entities: - type: Transform pos: 6.5,55.5 parent: 8364 - - uid: 8645 - components: - - type: Transform - pos: -12.5,43.5 - parent: 8364 - uid: 8681 components: - type: Transform @@ -128662,11 +128862,6 @@ entities: - type: Transform pos: 43.5,-34.5 parent: 8364 - - uid: 19941 - components: - - type: Transform - pos: -14.5,43.5 - parent: 8364 - uid: 20150 components: - type: Transform @@ -129422,11 +129617,26 @@ entities: - type: Transform pos: -30.5,0.5 parent: 8364 + - uid: 28631 + components: + - type: Transform + pos: -7.5,42.5 + parent: 8364 + - uid: 28632 + components: + - type: Transform + pos: -10.5,42.5 + parent: 8364 - uid: 28638 components: - type: Transform pos: -29.5,0.5 parent: 8364 + - uid: 28643 + components: + - type: Transform + pos: -15.5,43.5 + parent: 8364 - uid: 28653 components: - type: Transform @@ -129437,6 +129647,16 @@ entities: - type: Transform pos: -27.5,0.5 parent: 8364 + - uid: 28686 + components: + - type: Transform + pos: -7.5,45.5 + parent: 8364 + - uid: 28697 + components: + - type: Transform + pos: -14.5,44.5 + parent: 8364 - proto: GrilleBroken entities: - uid: 453 @@ -130023,44 +130243,207 @@ entities: entities: - uid: 7903 components: + - type: MetaData + name: disabler safe (5) - type: Transform + anchored: True pos: -14.5,41.5 parent: 8364 + - type: Lock + locked: False + - type: Physics + bodyType: Static + - type: Label + currentLabel: 5 + - type: NameModifier + baseName: disabler safe - proto: GunSafeLaserCarbine entities: - uid: 26316 components: + - type: MetaData + name: laser safe (4) - type: Transform + anchored: True pos: -8.5,47.5 parent: 8364 + - type: Physics + bodyType: Static + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 26291 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - type: Label + currentLabel: 4 + - type: NameModifier + baseName: laser safe - proto: GunSafePistolMk58 entities: - - uid: 4932 + - uid: 4933 components: + - type: MetaData + name: mk58 safe (4) - type: Transform - pos: -14.5,45.5 + anchored: True + pos: -13.5,47.5 parent: 8364 + - type: Physics + bodyType: Static + - type: Label + currentLabel: 4 + - type: NameModifier + baseName: mk58 safe - proto: GunSafeRifleLecter entities: - uid: 25688 components: + - type: MetaData + name: lecter safe (4) - type: Transform + anchored: True pos: -9.5,47.5 parent: 8364 + - type: Physics + bodyType: Static + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 26298 + - 26301 + - 26302 + - 26305 + - 26306 + - 26307 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - type: Label + currentLabel: 4 + - type: NameModifier + baseName: lecter safe - proto: GunSafeShotgunKammerer entities: - uid: 26317 components: + - type: MetaData + name: kammerer safe (3) - type: Transform + anchored: True pos: -8.5,44.5 parent: 8364 + - type: Physics + bodyType: Static + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 26308 + - 26309 + - 26310 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - type: Label + currentLabel: 3 + - type: NameModifier + baseName: kammerer safe - proto: GunSafeSubMachineGunDrozd entities: - uid: 8594 components: + - type: MetaData + name: drozd safe (3) - type: Transform + anchored: True pos: -9.5,44.5 parent: 8364 + - type: Physics + bodyType: Static + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 26313 + - 26312 + - 26311 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - type: Label + currentLabel: 3 + - type: NameModifier + baseName: drozd safe - proto: GyroscopeUnanchored entities: - uid: 25012 @@ -130181,33 +130564,12 @@ entities: parent: 8364 - proto: HighSecArmoryLocked entities: - - uid: 346 + - uid: 28705 components: - type: MetaData - name: Armory\ + name: high security door (Red Armory) - type: Transform - pos: -9.5,40.5 - parent: 8364 - - uid: 5072 - components: - - type: MetaData - name: Armory - - type: Transform - pos: -9.5,42.5 - parent: 8364 - - uid: 7292 - components: - - type: MetaData - name: High-Sec Armory - - type: Transform - pos: -13.5,43.5 - parent: 8364 - - uid: 7821 - components: - - type: MetaData - name: High-Sec Armory - - type: Transform - pos: -11.5,43.5 + pos: -11.5,44.5 parent: 8364 - proto: HighSecCommandLocked entities: @@ -130564,10 +130926,10 @@ entities: parent: 8364 - proto: HolopadSecurityArmory entities: - - uid: 19947 + - uid: 28699 components: - type: Transform - pos: -12.5,45.5 + pos: -12.5,42.5 parent: 8364 - proto: HolopadSecurityArrivalsCheckpoint entities: @@ -131368,18 +131730,34 @@ entities: parent: 8364 - proto: JetpackSecurityFilled entities: - - uid: 8562 + - uid: 4931 components: - type: Transform - rot: 3.141592653589793 rad - pos: -14.395266,46.522804 - parent: 8364 - - uid: 8593 + parent: 271 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26284 components: - type: Transform - rot: 3.141592653589793 rad - pos: -14.634968,46.658318 - parent: 8364 + parent: 19941 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26322 + components: + - type: Transform + parent: 26315 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 28718 + components: + - type: Transform + parent: 28717 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: Jukebox entities: - uid: 28320 @@ -131640,11 +132018,6 @@ entities: parent: 8364 - proto: LandMineExplosive entities: - - uid: 9698 - components: - - type: Transform - pos: -19.547722,47.450706 - parent: 8364 - uid: 9699 components: - type: Transform @@ -131708,65 +132081,6 @@ entities: - type: Transform pos: -28.5095,-5.350807 parent: 8364 -- proto: LockableButtonArmory - entities: - - uid: 8408 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,44.5 - parent: 8364 - - type: DeviceLinkSource - linkedPorts: - 13622: - - - Pressed - - Toggle - - type: Fixtures - fixtures: {} - - uid: 9150 - components: - - type: MetaData - name: Shutters - - type: Transform - pos: -6.5,35.5 - parent: 8364 - - type: DeviceLinkSource - linkedPorts: - 9145: - - - Pressed - - Toggle - 9147: - - - Pressed - - Toggle - 9146: - - - Pressed - - Toggle - 9139: - - - Pressed - - Toggle - 9141: - - - Pressed - - Toggle - 9142: - - - Pressed - - Toggle - 9148: - - - Pressed - - Toggle - 9143: - - - Pressed - - Toggle - 9144: - - - Pressed - - Toggle - 9164: - - - Pressed - - Toggle - 9165: - - - Pressed - - Toggle - - type: Fixtures - fixtures: {} - proto: LockableButtonBrig entities: - uid: 9152 @@ -132712,6 +133026,24 @@ entities: - type: Transform pos: -6.5,34.5 parent: 8364 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - proto: LockerWeldingSuppliesFilled entities: - uid: 1612 @@ -132952,11 +133284,6 @@ entities: parent: 8364 - proto: LootSpawnerSecurity entities: - - uid: 8535 - components: - - type: Transform - pos: -0.5,43.5 - parent: 8364 - uid: 10878 components: - type: Transform @@ -133106,6 +133433,22 @@ entities: - type: Transform pos: 7.4027314,48.74582 parent: 8364 +- proto: MagazinePistolSubMachineGun + entities: + - uid: 26311 + components: + - type: Transform + parent: 8594 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26313 + components: + - type: Transform + parent: 8594 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: MagazinePistolSubMachineGunTopMounted entities: - uid: 965 @@ -133118,6 +133461,36 @@ entities: - type: Transform pos: -1.3689646,53.71386 parent: 8364 +- proto: MagazineRifle + entities: + - uid: 26298 + components: + - type: Transform + parent: 25688 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26301 + components: + - type: Transform + parent: 25688 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26306 + components: + - type: Transform + parent: 25688 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26307 + components: + - type: Transform + parent: 25688 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: MailingUnit entities: - uid: 8179 @@ -134470,16 +134843,58 @@ entities: parent: 8364 - proto: NitrogenTankFilled entities: + - uid: 346 + components: + - type: Transform + parent: 271 + - type: Physics + canCollide: False + - type: InsideEntityStorage - uid: 7286 components: - type: Transform pos: -13.543497,50.592064 parent: 8364 + - uid: 19946 + components: + - type: Transform + parent: 19941 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26321 + components: + - type: Transform + parent: 26315 + - type: Physics + canCollide: False + - type: InsideEntityStorage - uid: 27177 components: - type: Transform pos: 26.471306,-83.42229 parent: 8364 + - uid: 28691 + components: + - type: Transform + parent: 26319 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 28693 + components: + - type: Transform + parent: 26320 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 28720 + components: + - type: Transform + parent: 28717 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: NitrousOxideTankFilled entities: - uid: 21342 @@ -135658,12 +136073,33 @@ entities: parent: 8364 - proto: PlasmaWindoorSecureArmoryLocked entities: - - uid: 28635 + - uid: 28503 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,46.5 + rot: 3.141592653589793 rad + pos: -13.5,44.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 26285: + - - DoorStatus + - Close +- proto: PlasmaWindoorSecureSecurityLocked + entities: + - uid: 26285 + components: + - type: Transform + pos: -13.5,44.5 + parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 28503: + - - DoorStatus + - Close - proto: PlasticFlapsAirtightClear entities: - uid: 3067 @@ -135747,6 +136183,11 @@ entities: parent: 8364 - proto: PortableFlasher entities: + - uid: 7349 + components: + - type: Transform + pos: -14.5,47.5 + parent: 8364 - uid: 7631 components: - type: Transform @@ -135767,10 +136208,10 @@ entities: enabled: False - type: Physics bodyType: Dynamic - - uid: 19946 + - uid: 28721 components: - type: Transform - pos: -10.5,44.5 + pos: -10.5,47.5 parent: 8364 - proto: PortableGeneratorJrPacman entities: @@ -141156,10 +141597,10 @@ entities: - type: Transform pos: 3.5,-59.5 parent: 8364 - - uid: 4933 + - uid: 4932 components: - type: Transform - pos: -12.5,40.5 + pos: -14.5,45.5 parent: 8364 - uid: 5105 components: @@ -141662,6 +142103,11 @@ entities: - type: Transform pos: 81.5,-23.5 parent: 8364 + - uid: 26294 + components: + - type: Transform + pos: -14.5,43.5 + parent: 8364 - uid: 26576 components: - type: Transform @@ -143448,11 +143894,6 @@ entities: - type: Transform pos: -17.5,43.5 parent: 8364 - - uid: 7379 - components: - - type: Transform - pos: -9.5,41.5 - parent: 8364 - uid: 7394 components: - type: Transform @@ -143468,16 +143909,6 @@ entities: - type: Transform pos: -15.5,41.5 parent: 8364 - - uid: 7715 - components: - - type: Transform - pos: -15.5,42.5 - parent: 8364 - - uid: 7787 - components: - - type: Transform - pos: -12.5,43.5 - parent: 8364 - uid: 7833 components: - type: Transform @@ -143496,27 +143927,17 @@ entities: - uid: 8398 components: - type: Transform - pos: -7.5,41.5 - parent: 8364 - - uid: 8420 - components: - - type: Transform - pos: -15.5,44.5 - parent: 8364 - - uid: 8577 - components: - - type: Transform - pos: -14.5,43.5 + pos: -7.5,45.5 parent: 8364 - uid: 8813 components: - type: Transform pos: -17.5,41.5 parent: 8364 - - uid: 13821 + - uid: 13818 components: - type: Transform - pos: -10.5,43.5 + pos: -15.5,43.5 parent: 8364 - uid: 15138 components: @@ -143673,6 +144094,41 @@ entities: - type: Transform pos: 14.5,-53.5 parent: 8364 + - uid: 26289 + components: + - type: Transform + pos: -14.5,44.5 + parent: 8364 + - uid: 26314 + components: + - type: Transform + pos: -7.5,40.5 + parent: 8364 + - uid: 28688 + components: + - type: Transform + pos: -15.5,42.5 + parent: 8364 + - uid: 28737 + components: + - type: Transform + pos: -7.5,42.5 + parent: 8364 + - uid: 28740 + components: + - type: Transform + pos: -10.5,40.5 + parent: 8364 + - uid: 28742 + components: + - type: Transform + pos: -10.5,42.5 + parent: 8364 + - uid: 28743 + components: + - type: Transform + pos: -7.5,46.5 + parent: 8364 - proto: ReinforcedWindow entities: - uid: 22 @@ -148316,10 +148772,10 @@ entities: parent: 8364 - proto: SecurityTechFab entities: - - uid: 8749 + - uid: 28690 components: - type: Transform - pos: -12.5,42.5 + pos: -13.5,44.5 parent: 8364 - type: TechnologyDatabase supportedDisciplines: @@ -148672,7 +149128,7 @@ entities: - uid: 28639 components: - type: Transform - pos: -12.519961,42.618675 + pos: -13.474435,44.52028 parent: 8364 - proto: SheetUranium entities: @@ -148709,11 +149165,34 @@ entities: - type: Transform pos: -31.5,-17.5 parent: 8364 + - uid: 9150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,33.5 + parent: 8364 + - uid: 9164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,32.5 + parent: 8364 + - uid: 9165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,31.5 + parent: 8364 - uid: 9243 components: - type: Transform pos: -30.5,-17.5 parent: 8364 + - uid: 9698 + components: + - type: Transform + pos: -4.5,29.5 + parent: 8364 - uid: 11334 components: - type: Transform @@ -148734,6 +149213,58 @@ entities: - type: Transform pos: 54.5,-15.5 parent: 8364 + - uid: 28642 + components: + - type: Transform + pos: -5.5,29.5 + parent: 8364 + - uid: 28706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,33.5 + parent: 8364 + - uid: 28707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,32.5 + parent: 8364 + - uid: 28708 + components: + - type: Transform + pos: -7.5,30.5 + parent: 8364 + - uid: 28709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,35.5 + parent: 8364 + - uid: 28710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,35.5 + parent: 8364 + - uid: 28711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,35.5 + parent: 8364 + - uid: 28712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,46.5 + parent: 8364 + - uid: 28713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,45.5 + parent: 8364 - proto: ShuttersNormalOpen entities: - uid: 1454 @@ -148818,69 +149349,6 @@ entities: - type: Transform pos: 6.5,-23.5 parent: 8364 - - uid: 9139 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,33.5 - parent: 8364 - - uid: 9141 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,32.5 - parent: 8364 - - uid: 9142 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,31.5 - parent: 8364 - - uid: 9143 - components: - - type: Transform - pos: -4.5,29.5 - parent: 8364 - - uid: 9144 - components: - - type: Transform - pos: -5.5,29.5 - parent: 8364 - - uid: 9145 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,33.5 - parent: 8364 - - uid: 9146 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,32.5 - parent: 8364 - - uid: 9147 - components: - - type: Transform - pos: -7.5,30.5 - parent: 8364 - - uid: 9148 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,35.5 - parent: 8364 - - uid: 9164 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,35.5 - parent: 8364 - - uid: 9165 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,35.5 - parent: 8364 - uid: 9923 components: - type: Transform @@ -150047,6 +150515,104 @@ entities: parent: 8364 - type: Fixtures fixtures: {} +- proto: SignalSwitchDirectional + entities: + - uid: 9148 + components: + - type: MetaData + name: signal switch (Shutters) + - type: Transform + pos: -6.5,35.5 + parent: 8364 + - type: DeviceLinkSource + linkedPorts: + 28709: + - - On + - Open + - - Off + - Close + 9150: + - - On + - Open + - - Off + - Close + 9165: + - - On + - Open + - - Off + - Close + 9698: + - - On + - Open + - - Off + - Close + 28642: + - - On + - Open + - - Off + - Close + 28711: + - - On + - Open + - - Off + - Close + 28710: + - - Off + - Close + - - On + - Open + 28706: + - - Off + - Close + - - On + - Open + 28707: + - - On + - Open + - - Off + - Close + 28708: + - - On + - Open + - - Off + - Close + 9164: + - - On + - Open + - - Off + - Close + - type: Fixtures + fixtures: {} + - type: Label + currentLabel: Shutters + - type: NameModifier + baseName: signal switch + - uid: 28635 + components: + - type: MetaData + name: signal switch (Shutters) + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,44.5 + parent: 8364 + - type: DeviceLinkSource + linkedPorts: + 28713: + - - On + - Open + - - Off + - Close + 28712: + - - On + - Open + - - Off + - Close + - type: Fixtures + fixtures: {} + - type: Label + currentLabel: Shutters + - type: NameModifier + baseName: signal switch - proto: SignAnomaly entities: - uid: 25994 @@ -151355,6 +151921,22 @@ entities: parent: 8364 - type: Fixtures fixtures: {} + - uid: 28685 + components: + - type: Transform + pos: -8.5,43.5 + parent: 8364 + - type: Fixtures + fixtures: {} +- proto: SignSecureMedRed + entities: + - uid: 7821 + components: + - type: Transform + pos: -12.5,44.5 + parent: 8364 + - type: Fixtures + fixtures: {} - proto: SignSecureSmall entities: - uid: 22440 @@ -155114,11 +155696,63 @@ entities: - type: Transform pos: -10.5,29.5 parent: 8364 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 28691 + - 28692 - uid: 26320 components: - type: Transform pos: -9.5,29.5 parent: 8364 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 28693 + - 28694 - proto: SuitStorageHOS entities: - uid: 5096 @@ -155135,10 +155769,12 @@ entities: parent: 8364 - proto: SuitStorageSec entities: - - uid: 174 + - uid: 271 components: + - type: MetaData + name: suit storage unit (Double, Jetpack) - type: Transform - pos: -14.5,47.5 + pos: -8.5,40.5 parent: 8364 - type: EntityStorage air: @@ -155158,18 +155794,6 @@ entities: - 0 - 0 - 0 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 231 - - uid: 7349 - components: - - type: Transform - pos: -10.5,47.5 - parent: 8364 - type: ContainerContainer containers: entity_storage: !type:Container @@ -155177,71 +155801,95 @@ entities: occludes: True ents: - 7350 - - uid: 7415 - components: - - type: Transform - pos: -11.5,47.5 - parent: 8364 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14673 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 7416 - - uid: 8558 - components: - - type: Transform - pos: -13.5,47.5 - parent: 8364 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14673 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 8559 + - 346 + - 4931 + - type: Label + currentLabel: Double, Jetpack + - type: NameModifier + baseName: suit storage unit - uid: 16531 components: - type: Transform pos: -8.5,3.5 parent: 8364 + - uid: 19941 + components: + - type: MetaData + name: suit storage unit (Double, Jetpack) + - type: Transform + pos: -8.5,42.5 + parent: 8364 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 26284 + - 19947 + - 19946 + - type: Label + currentLabel: Double, Jetpack + - type: NameModifier + baseName: suit storage unit + - uid: 26315 + components: + - type: MetaData + name: suit storage unit (Double, Jetpack) + - type: Transform + pos: -9.5,40.5 + parent: 8364 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 26318 + - 26321 + - 26322 + - type: Label + currentLabel: Double, Jetpack + - type: NameModifier + baseName: suit storage unit + - uid: 28717 + components: + - type: MetaData + name: suit storage unit (Double, Jetpack) + - type: Transform + pos: -9.5,42.5 + parent: 8364 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 28720 + - 28719 + - 28718 + - type: Label + currentLabel: Double, Jetpack + - type: NameModifier + baseName: suit storage unit - proto: SuitStorageWarden entities: - uid: 9085 @@ -157173,7 +157821,10 @@ entities: pos: -12.5,40.5 parent: 8364 - type: SurveillanceCamera - id: Armory - South + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory - Blue - uid: 28580 components: - type: Transform @@ -157181,7 +157832,10 @@ entities: pos: -12.5,47.5 parent: 8364 - type: SurveillanceCamera - id: Armory - North + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory - Red - uid: 28583 components: - type: Transform @@ -159743,12 +160397,6 @@ entities: - type: Transform pos: -3.5,-24.5 parent: 8364 - - uid: 26321 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,46.5 - parent: 8364 - uid: 26827 components: - type: Transform @@ -159784,6 +160432,12 @@ entities: - type: Transform pos: -3.5,-23.5 parent: 8364 + - uid: 28723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,47.5 + parent: 8364 - proto: TableReinforcedGlass entities: - uid: 3167 @@ -162195,11 +162849,6 @@ entities: - type: Transform pos: 75.5,-43.5 parent: 8364 - - uid: 7314 - components: - - type: Transform - pos: -12.5,47.5 - parent: 8364 - uid: 14610 components: - type: Transform @@ -162610,6 +163259,11 @@ entities: rot: 3.141592653589793 rad pos: -32.5,1.5 parent: 8364 + - uid: 217 + components: + - type: Transform + pos: -12.5,44.5 + parent: 8364 - uid: 219 components: - type: Transform @@ -168706,6 +169360,11 @@ entities: - type: Transform pos: -18.5,39.5 parent: 8364 + - uid: 7416 + components: + - type: Transform + pos: -15.5,44.5 + parent: 8364 - uid: 7417 components: - type: Transform @@ -170151,6 +170810,11 @@ entities: - type: Transform pos: -18.5,38.5 parent: 8364 + - uid: 8550 + components: + - type: Transform + pos: -10.5,43.5 + parent: 8364 - uid: 8554 components: - type: Transform @@ -170806,11 +171470,6 @@ entities: - type: Transform pos: -42.5,-20.5 parent: 8364 - - uid: 10037 - components: - - type: Transform - pos: -15.5,43.5 - parent: 8364 - uid: 10534 components: - type: Transform @@ -172406,6 +173065,11 @@ entities: - type: Transform pos: 0.5,-25.5 parent: 8364 + - uid: 28636 + components: + - type: Transform + pos: -10.5,44.5 + parent: 8364 - proto: WallShuttle entities: - uid: 2304 @@ -180502,6 +181166,14 @@ entities: - type: Transform pos: 49.5,12.5 parent: 8364 +- proto: WallWeaponCapacitorRecharger + entities: + - uid: 28715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,43.5 + parent: 8364 - proto: WardrobeAtmospherics entities: - uid: 15758 @@ -181295,11 +181967,11 @@ entities: - type: Transform pos: -9.5,-15.5 parent: 8364 - - uid: 28637 + - uid: 28722 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,46.5 + rot: 3.141592653589793 rad + pos: -11.5,47.5 parent: 8364 - proto: WeaponDisablerPractice entities: @@ -181424,15 +182096,6 @@ entities: deviceLists: - 258 - 28663 - - uid: 217 - components: - - type: Transform - pos: -12.5,44.5 - parent: 8364 - - type: DeviceNetwork - deviceLists: - - 271 - - 270 - uid: 269 components: - type: Transform @@ -181442,6 +182105,22 @@ entities: deviceLists: - 258 - 28663 + - uid: 7715 + components: + - type: Transform + pos: -12.5,43.5 + parent: 8364 + - type: DeviceNetwork + deviceLists: + - 8420 + - uid: 28582 + components: + - type: Transform + pos: -12.5,45.5 + parent: 8364 + - type: DeviceNetwork + deviceLists: + - 8420 - proto: WeaponEnergyTurretSecurityControlPanel entities: - uid: 258 @@ -181453,22 +182132,16 @@ entities: devices: - 203 - 269 - - uid: 270 + - uid: 8420 components: - type: Transform - pos: -9.5,48.5 + rot: 1.5707963267948966 rad + pos: -7.5,39.5 parent: 8364 - type: DeviceList devices: - - 217 - - uid: 271 - components: - - type: Transform - pos: -8.5,43.5 - parent: 8364 - - type: DeviceList - devices: - - 217 + - 7715 + - 28582 - uid: 28663 components: - type: Transform @@ -181479,6 +182152,15 @@ entities: devices: - 203 - 269 +- proto: WeaponLaserCarbine + entities: + - uid: 26291 + components: + - type: Transform + parent: 26316 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: WeaponLaserCarbinePractice entities: - uid: 5107 @@ -181491,13 +182173,49 @@ entities: - type: Transform pos: 10.54466,50.378418 parent: 8364 +- proto: WeaponRifleLecter + entities: + - uid: 26302 + components: + - type: Transform + parent: 25688 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 26305 + components: + - type: Transform + parent: 25688 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: WeaponShotgunEnforcer entities: - uid: 9086 components: - type: Transform - pos: -7.4696865,34.5829 + pos: -7.4221897,34.38881 parent: 8364 + - type: BallisticAmmoProvider + proto: ShellShotgunSlug +- proto: WeaponShotgunKammerer + entities: + - uid: 26308 + components: + - type: Transform + parent: 26317 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: WeaponSubMachineGunDrozd + entities: + - uid: 26312 + components: + - type: Transform + parent: 8594 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: WeaponSubMachineGunWt550 entities: - uid: 5089 @@ -181747,11 +182465,27 @@ entities: - type: Transform pos: -4.5,29.5 parent: 8364 + - type: DeviceLinkSource + linkedPorts: + 9095: + - - DoorStatus + - Close + 9096: + - - DoorStatus + - Close - uid: 9109 components: - type: Transform pos: -5.5,29.5 parent: 8364 + - type: DeviceLinkSource + linkedPorts: + 9095: + - - DoorStatus + - Close + 9096: + - - DoorStatus + - Close - uid: 9264 components: - type: Transform @@ -181822,6 +182556,63 @@ entities: rot: 3.141592653589793 rad pos: -23.5,39.5 parent: 8364 + - uid: 28702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,31.5 + parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 9094: + - - DoorStatus + - Close + 9093: + - - DoorStatus + - Close + 9092: + - - DoorStatus + - Close + - uid: 28703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,32.5 + parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 9092: + - - DoorStatus + - Close + 9093: + - - DoorStatus + - Close + 9094: + - - DoorStatus + - Close + - uid: 28704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,33.5 + parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 9092: + - - DoorStatus + - Close + 9093: + - - DoorStatus + - Close + 9094: + - - DoorStatus + - Close - proto: WindoorAssembly entities: - uid: 13311 @@ -181944,30 +182735,73 @@ entities: rot: -1.5707963267948966 rad pos: -2.5,33.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 28703: + - - DoorStatus + - Close + 28704: + - - DoorStatus + - Close + 28702: + - - DoorStatus + - Close - uid: 9093 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,32.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 28702: + - - DoorStatus + - Close + 28703: + - - DoorStatus + - Close + 28704: + - - DoorStatus + - Close - uid: 9094 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,31.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 28702: + - - DoorStatus + - Close + 28703: + - - DoorStatus + - Close + 28704: + - - DoorStatus + - Close - uid: 9095 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,29.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 - uid: 9096 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,29.5 parent: 8364 + - type: DeviceLinkSink + invokeCounter: 1 - proto: WindoorSecureBrigLocked entities: - uid: 757 @@ -181986,30 +182820,12 @@ entities: rot: 3.141592653589793 rad pos: -10.5,22.5 parent: 8364 - - uid: 9100 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,33.5 - parent: 8364 - - uid: 9102 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,32.5 - parent: 8364 - uid: 9103 components: - type: Transform rot: -1.5707963267948966 rad pos: -10.5,33.5 parent: 8364 - - uid: 9106 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,31.5 - parent: 8364 - proto: WindoorSecureChemistryLocked entities: - uid: 1758 @@ -182189,12 +183005,6 @@ entities: - type: Transform pos: 79.5,-4.5 parent: 8364 - - uid: 28636 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,46.5 - parent: 8364 - proto: Window entities: - uid: 526 From 438090a5054aabf23237ca37a40c282a7eda4243 Mon Sep 17 00:00:00 2001 From: B_Kirill <153602297+B-Kirill@users.noreply.github.com> Date: Tue, 19 Aug 2025 17:42:54 +1000 Subject: [PATCH 16/16] Cleanup warnings: CS0414 (#39748) * Cleanup * Fix --- Content.Client/Inventory/ClientInventorySystem.cs | 1 - Content.Client/Stack/StackSystem.cs | 1 - Content.Server/Animals/Systems/ParrotMemorySystem.cs | 2 -- Content.Server/NPC/Systems/NPCUtilitySystem.cs | 2 -- Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs | 2 -- Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs | 1 - Content.Server/Singularity/EntitySystems/EmitterSystem.cs | 1 - Content.Shared/Movement/Systems/WormSystem.cs | 1 - Content.Shared/Storage/EntitySystems/SecretStashSystem.cs | 2 -- 9 files changed, 13 deletions(-) diff --git a/Content.Client/Inventory/ClientInventorySystem.cs b/Content.Client/Inventory/ClientInventorySystem.cs index 97da176ed2..73f837d0d8 100644 --- a/Content.Client/Inventory/ClientInventorySystem.cs +++ b/Content.Client/Inventory/ClientInventorySystem.cs @@ -21,7 +21,6 @@ namespace Content.Client.Inventory { [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IUserInterfaceManager _ui = default!; - [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly ClientClothingSystem _clothingVisualsSystem = default!; [Dependency] private readonly ExamineSystem _examine = default!; diff --git a/Content.Client/Stack/StackSystem.cs b/Content.Client/Stack/StackSystem.cs index d7d1c34ae2..182daa73a5 100644 --- a/Content.Client/Stack/StackSystem.cs +++ b/Content.Client/Stack/StackSystem.cs @@ -12,7 +12,6 @@ namespace Content.Client.Stack { [Dependency] private readonly AppearanceSystem _appearanceSystem = default!; [Dependency] private readonly ItemCounterSystem _counterSystem = default!; - [Dependency] private readonly SpriteSystem _sprite = default!; public override void Initialize() { diff --git a/Content.Server/Animals/Systems/ParrotMemorySystem.cs b/Content.Server/Animals/Systems/ParrotMemorySystem.cs index a88957913f..6d8192f5d5 100644 --- a/Content.Server/Animals/Systems/ParrotMemorySystem.cs +++ b/Content.Server/Animals/Systems/ParrotMemorySystem.cs @@ -29,12 +29,10 @@ public sealed partial class ParrotMemorySystem : SharedParrotMemorySystem { [Dependency] private readonly EntityWhitelistSystem _whitelist = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; - [Dependency] private readonly IAdminManager _admin = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly MindSystem _mind = default!; [Dependency] private readonly MobStateSystem _mobState = default!; - [Dependency] private readonly PopupSystem _popup = default!; public override void Initialize() { diff --git a/Content.Server/NPC/Systems/NPCUtilitySystem.cs b/Content.Server/NPC/Systems/NPCUtilitySystem.cs index 6de26cd056..26910d1603 100644 --- a/Content.Server/NPC/Systems/NPCUtilitySystem.cs +++ b/Content.Server/NPC/Systems/NPCUtilitySystem.cs @@ -42,14 +42,12 @@ public sealed class NPCUtilitySystem : EntitySystem { [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly ContainerSystem _container = default!; - [Dependency] private readonly DrinkSystem _drink = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly HandsSystem _hands = default!; [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly IngestionSystem _ingestion = default!; [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly NpcFactionSystem _npcFaction = default!; - [Dependency] private readonly OpenableSystem _openable = default!; [Dependency] private readonly PuddleSystem _puddle = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SharedSolutionContainerSystem _solutions = default!; diff --git a/Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs b/Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs index 0fa20c27e5..b3075b2274 100644 --- a/Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs +++ b/Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs @@ -16,8 +16,6 @@ public sealed class PickObjectiveTargetSystem : EntitySystem { [Dependency] private readonly TargetObjectiveSystem _target = default!; [Dependency] private readonly SharedMindSystem _mind = default!; - [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly TraitorRuleSystem _traitorRule = default!; public override void Initialize() { diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs index c14e81ce8a..082e6776f0 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs @@ -19,7 +19,6 @@ namespace Content.Server.Silicons.Borgs; public sealed partial class BorgSystem { [Dependency] private readonly EmagSystem _emag = default!; - [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly MobThresholdSystem _mobThresholdSystem = default!; [Dependency] private readonly ItemSlotsSystem _itemSlotsSystem = default!; diff --git a/Content.Server/Singularity/EntitySystems/EmitterSystem.cs b/Content.Server/Singularity/EntitySystems/EmitterSystem.cs index 28d3eedd32..2ccdc10934 100644 --- a/Content.Server/Singularity/EntitySystems/EmitterSystem.cs +++ b/Content.Server/Singularity/EntitySystems/EmitterSystem.cs @@ -28,7 +28,6 @@ namespace Content.Server.Singularity.EntitySystems public sealed class EmitterSystem : SharedEmitterSystem { [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; diff --git a/Content.Shared/Movement/Systems/WormSystem.cs b/Content.Shared/Movement/Systems/WormSystem.cs index 8dc7f86a08..c6f2b7834c 100644 --- a/Content.Shared/Movement/Systems/WormSystem.cs +++ b/Content.Shared/Movement/Systems/WormSystem.cs @@ -12,7 +12,6 @@ namespace Content.Shared.Movement.Systems; public sealed class WormSystem : EntitySystem { [Dependency] private readonly AlertsSystem _alerts = default!; - [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedStunSystem _stun = default!; public override void Initialize() diff --git a/Content.Shared/Storage/EntitySystems/SecretStashSystem.cs b/Content.Shared/Storage/EntitySystems/SecretStashSystem.cs index 3691f6e2b6..7e83b50fba 100644 --- a/Content.Shared/Storage/EntitySystems/SecretStashSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SecretStashSystem.cs @@ -8,7 +8,6 @@ using Content.Shared.Interaction; using Content.Shared.Item; using Content.Shared.Materials; using Content.Shared.Nutrition; -using Content.Shared.Nutrition.EntitySystems; using Content.Shared.Popups; using Content.Shared.Storage.Components; using Content.Shared.Tools.EntitySystems; @@ -26,7 +25,6 @@ namespace Content.Shared.Storage.EntitySystems; /// public sealed class SecretStashSystem : EntitySystem { - [Dependency] private readonly IngestionSystem _ingestion = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly SharedContainerSystem _containerSystem = default!;