diff --git a/Content.Client/SS220/Overlays/IgnoreLightVisionOverlay.cs b/Content.Client/SS220/Overlays/IgnoreLightVisionOverlay.cs
new file mode 100644
index 000000000000..d9295ef52e74
--- /dev/null
+++ b/Content.Client/SS220/Overlays/IgnoreLightVisionOverlay.cs
@@ -0,0 +1,176 @@
+// Original code github.com/CM-14 Licence MIT, EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+using System.Numerics;
+using Content.Shared.SS220.Thermals;
+using Content.Shared.Mobs.Components;
+using Robust.Client.GameObjects;
+using Robust.Client.Graphics;
+using Robust.Client.Player;
+using Robust.Shared.Enums;
+using Robust.Shared.Map;
+using System.Diagnostics.CodeAnalysis;
+using Content.Shared.Mobs;
+using Content.Shared.Stealth.Components;
+using Content.Client.Stealth;
+
+namespace Content.Client.SS220.Overlays;
+
+public abstract class IgnoreLightVisionOverlay : Overlay
+{
+ [Dependency] protected readonly IEntityManager Entity = default!;
+ [Dependency] protected readonly IPlayerManager PlayerManager = default!;
+ [Dependency] private readonly IComponentFactory _componentFactory = default!;
+
+ /// Defines radius in which you can see entities in containers
+ protected float ShowCloseRadius;
+ protected float ShowRadius;
+
+ private readonly ContainerSystem _container;
+ private readonly EntityLookupSystem _entityLookup;
+ private readonly StealthSystem _stealthSystem;
+ /// If use lesser value wierd thing happens with admin spawn menu and GetEntitiesInRange.
+ private const float MIN_CLOSE_RANGE = 1.5f;
+ /// Useless const due to how stealth work, but if they change it...
+ private const float STEALTH_VISION_TRESHHOLD = 0;
+ public override OverlaySpace Space => OverlaySpace.WorldSpace;
+
+ public IgnoreLightVisionOverlay(float showRadius)
+ {
+ IoCManager.InjectDependencies(this);
+
+ _container = Entity.System();
+ _entityLookup = Entity.System();
+ _stealthSystem = Entity.System();
+
+ ShowRadius = showRadius < MIN_CLOSE_RANGE ? MIN_CLOSE_RANGE : showRadius;
+ ShowCloseRadius = ShowRadius / 4 < MIN_CLOSE_RANGE ? MIN_CLOSE_RANGE : ShowRadius / 4;
+ }
+ protected override void Draw(in OverlayDrawArgs args)
+ {
+ if (PlayerManager.LocalEntity == null)
+ return;
+ if (!Entity.TryGetComponent(PlayerManager.LocalEntity, out var mobstateComp))
+ return;
+ if (mobstateComp.CurrentState != MobState.Alive)
+ return;
+ if (!Entity.TryGetComponent(PlayerManager.LocalEntity, out ThermalVisionComponent? thermalVision) ||
+ thermalVision.State == ThermalVisionState.Off)
+ return;
+
+ if (!Entity.TryGetComponent(PlayerManager.LocalEntity,
+ out var playerTransform))
+ return; // maybe need to log it
+
+ var handle = args.WorldHandle;
+ var eye = args.Viewport.Eye;
+ var eyeRot = eye?.Rotation ?? default;
+
+ var entities = _entityLookup.GetEntitiesInRange(playerTransform.Coordinates, ShowRadius);
+ var entitiesClose = _entityLookup.GetEntitiesInRange(playerTransform.Coordinates, ShowCloseRadius);
+
+ foreach (var (uid, stateComp) in entities)
+ {
+ var isCloseToOwner = entitiesClose.Contains((uid, stateComp));
+
+ if (CantBeRendered(uid, out var sprite, out var xform))
+ continue;
+ if (CantBeSeenByThermals((uid, stateComp)))
+ continue;
+ if (IsStealthToThermals(uid, isCloseToOwner))
+ continue;
+ if (_container.IsEntityOrParentInContainer(uid))
+ if (CantBeVisibleInContainer(uid, isCloseToOwner))
+ continue;
+
+ Render((uid, sprite, xform), eye?.Position.MapId, handle, eyeRot);
+ }
+ handle.SetTransform(Matrix3x2.Identity);
+ }
+ protected abstract void Render(Entity ent,
+ MapId? map, DrawingHandleWorld handle, Angle eyeRot);
+ ///
+ /// function wich defines what entities can be seen, f.e. pai or human, bread dog or reaper
+ /// Also contains list of components which defines it
+ ///
+ /// True if entities could be seen by thermals. Without any other obstacles
+ private bool CantBeSeenByThermals(Entity target)
+ {
+ var states = target.Comp.AllowedStates;
+
+ if (states.Contains(MobState.Dead) &&
+ states.Contains(MobState.Alive) &&
+ target.Comp.CurrentState == MobState.Dead)
+ return true;
+ else
+ return false;
+
+ return true;
+ }
+ private bool CantBeRendered(EntityUid target, [NotNullWhen(false)] out SpriteComponent? sprite,
+ [NotNullWhen(false)] out TransformComponent? xform)
+ {
+ sprite = null;
+ xform = null;
+
+ if (!Entity.TryGetComponent(target, out sprite))
+ return true;
+ if (!Entity.TryGetComponent(target, out xform))
+ return true;
+
+ return false;
+ }
+ ///
+ /// function wich defines what entities visible or not.
+ /// Also contains const values of invis perception
+ ///
+ /// True if entities could be seen by thermals. Without any other obstacles
+ private bool IsStealthToThermals(EntityUid target, bool isCloseToOwner)
+ {
+ if (!Entity.TryGetComponent(target, out var component))
+ return false;
+
+ if (!isCloseToOwner &&
+ _stealthSystem.GetVisibility(target, component) < STEALTH_VISION_TRESHHOLD)
+ return true;
+
+ return false;
+ }
+ /// function wich defines what entities visible or not.
+ /// Also contains const values of invis perception
+ /// True if entities could be seen by thermals. Without any other obstacles
+ private bool CantBeVisibleInContainer(EntityUid target, bool isCloseToOwner)
+ {
+ var blacklistComponentNames = new List() { "DarkReaper", "Devourer" };
+
+ if (isCloseToOwner == false)
+ return true;
+
+ var currentEntUid = target;
+ while (_container.TryGetContainingContainer((currentEntUid, null, null), out var container))
+ {
+ currentEntUid = container.Owner;
+
+ if (currentEntUid == PlayerManager.LocalEntity )
+ return true;
+ if (HasComponentFromList(currentEntUid, blacklistComponentNames))
+ return true;
+ }
+
+ return false;
+ }
+ /// Checks if entity has a components from list
+ /// True if entity has any of the listed components
+ /// Throw excep if List contains false comp name
+ private bool HasComponentFromList(EntityUid target, List blacklistComponentNames)
+ {
+ foreach (var compName in blacklistComponentNames)
+ {
+ if (!_componentFactory.TryGetRegistration(compName, out var compReg))
+ throw new Exception($"Cant find registration for component {compName} in blacklistComponents");
+
+ if (Entity.HasComponent(target, compReg.Type))
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/Content.Client/SS220/Overlays/ThermalVisionOverlay.cs b/Content.Client/SS220/Overlays/ThermalVisionOverlay.cs
new file mode 100644
index 000000000000..f95744e184db
--- /dev/null
+++ b/Content.Client/SS220/Overlays/ThermalVisionOverlay.cs
@@ -0,0 +1,28 @@
+// Original code github.com/CM-14 Licence MIT, EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+using Robust.Client.Graphics;
+using Robust.Client.GameObjects;
+using Robust.Shared.Map;
+
+namespace Content.Client.SS220.Overlays;
+
+public sealed class ThermalVisionOverlay : IgnoreLightVisionOverlay
+{
+ private readonly TransformSystem _transformSystem = default!;
+
+ public ThermalVisionOverlay(float showRadius) : base(showRadius)
+ {
+ _transformSystem = Entity.System();
+ }
+ protected override void Render(Entity ent,
+ MapId? map, DrawingHandleWorld handle, Angle eyeRot)
+ {
+ var (uid, sprite, xform) = ent;
+ if (xform.MapID != map)
+ return;
+
+ var position = _transformSystem.GetWorldPosition(xform);
+ var rotation = _transformSystem.GetWorldRotation(xform);
+
+ sprite.Render(handle, eyeRot, rotation, position: position);
+ }
+}
diff --git a/Content.Client/SS220/Thermals/ThermalVisionOverlay.cs b/Content.Client/SS220/Thermals/ThermalVisionOverlay.cs
deleted file mode 100644
index 962365c8ba54..000000000000
--- a/Content.Client/SS220/Thermals/ThermalVisionOverlay.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-// Original code github.com/CM-14 Licence MIT, EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
-using System.Numerics;
-using Content.Shared.SS220.Thermals;
-using Content.Shared.Mobs.Components;
-using Robust.Client.GameObjects;
-using Robust.Client.Graphics;
-using Robust.Client.Player;
-using Robust.Shared.Enums;
-using Robust.Shared.Map;
-using Robust.Shared.Prototypes;
-using Serilog;
-using Robust.Client.ComponentTrees;
-
-namespace Content.Client.SS220.Thermals;
-
-public sealed class ThermalVisionOverlay : Overlay
-{
- [Dependency] private readonly IEntityManager _entity = default!;
- [Dependency] private readonly IPlayerManager _playerManager = default!;
- [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
-
- private readonly ContainerSystem _container;
- private readonly TransformSystem _transform;
- private readonly EntityLookupSystem _entityLookup;
- private readonly float _showRadius;
- private readonly float _showCloseRadius;
- private const float MIN_RANGE = 0.3f;
- public override OverlaySpace Space => OverlaySpace.WorldSpace;
-
- public ThermalVisionOverlay(float showRadius)
- {
- IoCManager.InjectDependencies(this);
-
- _container = _entity.System();
- _transform = _entity.System();
- _entityLookup = _entity.System();
-
- _showRadius = showRadius;
- _showCloseRadius = _showRadius / 4 < MIN_RANGE ? MIN_RANGE : _showRadius / 4;
- }
-
- protected override void Draw(in OverlayDrawArgs args)
- {
- if (_playerManager.LocalEntity == null)
- return;
-
- if (!_entity.TryGetComponent(_playerManager.LocalEntity, out ThermalVisionComponent? thermalVision) ||
- thermalVision.State == ThermalVisionState.Off)
- return;
-
- if (_entity.TryGetComponent(_playerManager.LocalEntity,
- out var playerTransform) == false)
- return; // maybe need to log it
- var handle = args.WorldHandle;
- var eye = args.Viewport.Eye;
- var eyeRot = eye?.Rotation ?? default;
-
- if (_showRadius < MIN_RANGE)
- return; // can cause execp also need to log it
-
- var entities = _entityLookup.GetEntitiesInRange(playerTransform.Coordinates, _showRadius);
- var entitiesClose = _entityLookup.GetEntitiesInRange(playerTransform.Coordinates, _showCloseRadius);
-
- foreach (var (uid, stateComp) in entities)
- {
- if (_entity.TryGetComponent(uid, out var sprite) == false)
- continue;
- if (_entity.TryGetComponent(uid, out var xform) == false)
- continue;
- if (_container.IsEntityOrParentInContainer(uid)
- && entitiesClose.Contains((uid, stateComp)) == false)
- continue;
-
- Render((uid, sprite, xform), eye?.Position.MapId, handle, eyeRot);
- }
- handle.SetTransform(Matrix3x2.Identity);
- }
-
- private void Render(Entity ent,
- MapId? map, DrawingHandleWorld handle, Angle eyeRot)
- {
- var (uid, sprite, xform) = ent;
- if (xform.MapID != map)
- return;
-
-
-
- var position = _transform.GetWorldPosition(xform);
- var rotation = _transform.GetWorldRotation(xform);
-
- sprite.Render(handle, eyeRot, rotation, position: position);
- }
-}
diff --git a/Content.Client/SS220/Thermals/ThermalVisionSystem.cs b/Content.Client/SS220/Thermals/ThermalVisionSystem.cs
index c046073eb894..6fb2c4f3182c 100644
--- a/Content.Client/SS220/Thermals/ThermalVisionSystem.cs
+++ b/Content.Client/SS220/Thermals/ThermalVisionSystem.cs
@@ -1,5 +1,6 @@
// Original code github.com/CM-14 Licence MIT, All edits under © SS220, EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
using Content.Shared.SS220.Thermals;
+using Content.Client.SS220.Overlays;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.Player;
diff --git a/Content.Server/Body/Systems/RespiratorSystem.cs b/Content.Server/Body/Systems/RespiratorSystem.cs
index 62ff840298d1..2e58d499ab3c 100644
--- a/Content.Server/Body/Systems/RespiratorSystem.cs
+++ b/Content.Server/Body/Systems/RespiratorSystem.cs
@@ -5,6 +5,7 @@
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.EntityEffects.EffectConditions;
using Content.Server.EntityEffects.Effects;
+using Content.Server.Popups;
using Content.Shared.Alert;
using Content.Shared.Atmos;
using Content.Shared.Body.Components;
@@ -35,6 +36,7 @@ public sealed class RespiratorSystem : EntitySystem
[Dependency] private readonly IPrototypeManager _protoMan = default!;
[Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!;
[Dependency] private readonly ChatSystem _chat = default!;
+ [Dependency] private readonly PopupSystem _popupSystem = default!;
private static readonly ProtoId GasId = new("Gas");
@@ -96,6 +98,11 @@ public override void Update(float frameTime)
if (_gameTiming.CurTime >= respirator.LastGaspEmoteTime + respirator.GaspEmoteCooldown)
{
respirator.LastGaspEmoteTime = _gameTiming.CurTime;
+ // SS220 emotes begin
+ _popupSystem.PopupEntity(Loc.GetString("lung-behavior-gasp"), uid, Shared.Popups.PopupType.Medium);
+ var emoteType = _mobState.IsIncapacitated(uid) ? "CritGasp" : "Gasp";
+ _chat.TryEmoteWithoutChat(uid, emoteType, ignoreActionBlocker: true);
+ // SS220 emotes end
_chat.TryEmoteWithChat(uid, respirator.GaspEmote, ChatTransmitRange.HideChat, ignoreActionBlocker: true);
}
diff --git a/Content.Server/Mindshield/MindShieldSystem.cs b/Content.Server/Mindshield/MindShieldSystem.cs
index 7771ef0007ac..7d962da2ac9e 100644
--- a/Content.Server/Mindshield/MindShieldSystem.cs
+++ b/Content.Server/Mindshield/MindShieldSystem.cs
@@ -9,7 +9,6 @@
using Content.Shared.Mindshield.Components;
using Content.Shared.Revolutionary.Components;
using Content.Shared.Tag;
-using Content.Server.SS220.Thermals;
namespace Content.Server.Mindshield;
@@ -33,10 +32,6 @@ public sealed class MindShieldSystem : EntitySystem
[ValidatePrototypeId]
public const string MindSlaveTag = "MindSlave";
//SS220-mindslave end
- //SS220 Thermal implant begin
- [ValidatePrototypeId]
- public const string ThermalImplantTag = "ThermalImplant";
- //SS220 Thermal implant ends
public override void Initialize()
{
@@ -62,13 +57,6 @@ public void ImplantCheck(EntityUid uid, SubdermalImplantComponent comp, ref Impl
_sharedSubdermalImplant.ForceRemove(ev.Implanted.Value, ev.Implant);
}
//SS220-mindslave end
- //SS220 Thermalvisionimplant begins
- if (_tag.HasTag(ev.Implant, ThermalImplantTag) && ev.Implanted != null)
- {
- EnsureComp(ev.Implanted.Value);
- }
- // else (_tag.HasTag(ev.Implant, ThermalImplantTag) && ev.Implanted != null)
- //SS220 Thermalvisionimplant ends
}
///
diff --git a/Content.Server/SS220/Shuttles/Components/IgnoreFTLMassLimitComponent.cs b/Content.Server/SS220/Shuttles/Components/IgnoreFTLMassLimitComponent.cs
new file mode 100644
index 000000000000..cd7c6fec0509
--- /dev/null
+++ b/Content.Server/SS220/Shuttles/Components/IgnoreFTLMassLimitComponent.cs
@@ -0,0 +1,7 @@
+// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+namespace Content.Server.SS220.Shuttles.Components;
+
+[RegisterComponent]
+public sealed partial class IgnoreFTLMassLimitComponent : Component
+{
+}
diff --git a/Content.Server/SS220/TeleportAFKtoCryoSystem/TeleportAFKtoCryoSystem.cs b/Content.Server/SS220/TeleportAFKtoCryoSystem/TeleportAFKtoCryoSystem.cs
index e5f388d159d9..b4664ce0c0ee 100644
--- a/Content.Server/SS220/TeleportAFKtoCryoSystem/TeleportAFKtoCryoSystem.cs
+++ b/Content.Server/SS220/TeleportAFKtoCryoSystem/TeleportAFKtoCryoSystem.cs
@@ -124,7 +124,7 @@ public bool TeleportEntityToCryoStorage(EntityUid target)
var cryostorageComponents = EntityQueryEnumerator();
while (cryostorageComponents.MoveNext(out var cryostorageUid, out var сryostorageComp))
{
- if (TryTeleportToCryo(target, cryostorageUid, сryostorageComp.TeleportPortralID))
+ if (TryTeleportToCryo(target, cryostorageUid, station.Value, сryostorageComp.TeleportPortralID))
return true;
}
@@ -136,8 +136,11 @@ private bool TargetAlreadyInCryo(EntityUid target)
return EntityQuery().Any(comp => comp.StoredPlayers.Contains(target));
}
- private bool TryTeleportToCryo(EntityUid target, EntityUid cryopodUid, string teleportPortralID)
+ private bool TryTeleportToCryo(EntityUid target, EntityUid cryopodUid, EntityUid station, string teleportPortralID)
{
+ if (station != _station.GetOwningStation(cryopodUid))
+ return false;
+
var portal = Spawn(teleportPortralID, Transform(target).Coordinates);
if (TryComp(portal, out var ambientSoundComponent))
diff --git a/Content.Server/SS220/Thermals/ThermalVisionClothingComponent.cs b/Content.Server/SS220/Thermals/ThermalVisionClothingComponent.cs
index a046d32b739e..be1202586484 100644
--- a/Content.Server/SS220/Thermals/ThermalVisionClothingComponent.cs
+++ b/Content.Server/SS220/Thermals/ThermalVisionClothingComponent.cs
@@ -9,6 +9,6 @@ namespace Content.Server.SS220.Thermals;
[RegisterComponent]
public sealed partial class ThermalVisionClothingComponent : Component
{
- [DataField, ViewVariables]
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
public float ThermalVisionRadius = 8f;
}
diff --git a/Content.Server/SS220/Thermals/ThermalVisionImplantComponent.cs b/Content.Server/SS220/Thermals/ThermalVisionImplantComponent.cs
index f441689986c3..c68ce5bc2127 100644
--- a/Content.Server/SS220/Thermals/ThermalVisionImplantComponent.cs
+++ b/Content.Server/SS220/Thermals/ThermalVisionImplantComponent.cs
@@ -10,7 +10,7 @@ namespace Content.Server.SS220.Thermals;
public sealed partial class ThermalVisionImplantComponent : Component
{
[DataField]
- public bool IsAcive = false;
+ public bool IsActive = false;
[DataField, ViewVariables]
public float ThermalVisionRadius = 8f;
}
diff --git a/Content.Server/SS220/Thermals/ThermalVisionImplantSystem.cs b/Content.Server/SS220/Thermals/ThermalVisionImplantSystem.cs
index f8f04b6957eb..af60b6ed2d5e 100644
--- a/Content.Server/SS220/Thermals/ThermalVisionImplantSystem.cs
+++ b/Content.Server/SS220/Thermals/ThermalVisionImplantSystem.cs
@@ -1,30 +1,30 @@
//EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
using Content.Shared.SS220.Thermals;
-
namespace Content.Server.SS220.Thermals;
-
///
-/// Handles enabling of thermal vision when clothing is equipped and disabling when unequipped.
+/// Handles enabling of thermal vision when impanted with thermalVisionImplant.
///
public sealed class SharedThermalVisionImplantSystem : EntitySystem
{
-
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnThermalVisionAction);
}
-
private void OnThermalVisionAction(Entity ent, ref UseThermalVisionEvent args)
{
- if (!TryComp(args.Performer, out var thermalVisionImpalnt))
+ if (ent.Comp.IsActive &&
+ HasComp(args.Performer))
+ {
+ RemComp(args.Performer);
+ ent.Comp.IsActive = !ent.Comp.IsActive;
+ args.Handled = true;
return;
+ }
- if (HasComp(args.Performer) && thermalVisionImpalnt.IsAcive)
- RemComp(args.Performer);
- else if (!TryComp(args.Performer, out var thermalVision))
+ if (!TryComp(args.Performer, out var thermalVision))
AddComp(args.Performer, new ThermalVisionComponent(ent.Comp.ThermalVisionRadius));
else
{
@@ -32,6 +32,7 @@ private void OnThermalVisionAction(Entity ent, re
Dirty(args.Performer, thermalVision);
}
- thermalVisionImpalnt.IsAcive = !thermalVisionImpalnt.IsAcive;
+ ent.Comp.IsActive = !ent.Comp.IsActive;
+ args.Handled = true;
}
}
diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
index 28f784f1dda0..8986eac4d052 100644
--- a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
+++ b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
@@ -3,6 +3,7 @@
using System.Numerics;
using Content.Server.Shuttles.Components;
using Content.Server.Shuttles.Events;
+using Content.Server.SS220.Shuttles.Components;
using Content.Server.Station.Events;
using Content.Shared.Body.Components;
using Content.Shared.Buckle.Components;
@@ -219,7 +220,8 @@ public bool CanFTL(EntityUid shuttleUid, [NotNullWhen(false)] out string? reason
if (FTLMassLimit > 0 &&
TryComp(shuttleUid, out PhysicsComponent? shuttlePhysics) &&
- shuttlePhysics.Mass > FTLMassLimit)
+ shuttlePhysics.Mass > FTLMassLimit &&
+ !HasComp(shuttleUid)) //SS220 Add IgnoreFTLMassLimitComponent
{
reason = Loc.GetString("shuttle-console-mass");
return false;
diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml
index d9f1acafe8b3..0344928ad53d 100644
--- a/Resources/Changelog/Changelog220.yml
+++ b/Resources/Changelog/Changelog220.yml
@@ -4200,3 +4200,156 @@
id: 334
time: '2024-07-28T23:38:38.0000000+00:00'
url: https://github.com/SerbiaStrong-220/space-station-14/pull/1468
+- author: ReeZii
+ changes:
+ - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043E\u043F\
+ \u0438\u0441\u0430\u043D\u0438\u0435 \u0438\u043C\u043F\u043B\u0430\u043D\u0442\
+ \u0430 \u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435"
+ type: Fix
+ - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u044D\u043C\
+ \u043E\u0446\u0438\u044F \u0436\u0443\u0436\u0436\u0430\u043D\u0438\u044F \u0432\
+ \ \u0447\u0430\u0442\u0435 \u0434\u043B\u044F \u044F\u0449\u0435\u0440\u0438\
+ \u0446"
+ type: Fix
+ id: 335
+ time: '2024-07-29T20:31:07.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1467
+- author: Creamy
+ changes:
+ - message: "\u0418\u0437\u043C\u0435\u043D\u0451\u043D \u0441\u043F\u0440\u0430\u0439\
+ \u0442 \u0442\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E\
+ \ \u043A\u043E\u043C\u0431\u0438\u043D\u0435\u0437\u043E\u043D\u0430 \u0438\
+ \ \u0442\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u044E\u0431\
+ \u043A\u0438-\u043A\u043E\u043C\u0431\u0438\u043D\u0435\u0437\u043E\u043D\u0430\
+ ."
+ type: Tweak
+ id: 336
+ time: '2024-07-29T20:46:05.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1483
+- author: Kemran
+ changes:
+ - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0431\u0435\u0440\
+ \u0435\u0442, \u0444\u0443\u0440\u0430\u0436\u043A\u0430 \u0438 \u0448\u043B\
+ \u044F\u043F\u0430 \u041A\u0430\u043F\u0438\u0442\u0430\u043D\u0430 \u0432 \u043B\
+ \u043E\u0434\u0430\u0443\u0442 \u041A\u0430\u043F\u0438\u0442\u0430\u043D\u0430\
+ ."
+ type: Add
+ id: 337
+ time: '2024-07-29T20:47:21.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1484
+- author: Gnomeev
+ changes:
+ - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u043D\u0435\u0432\u0438\u0434\u0438\
+ \u043C\u0430\u044F \u0438 \u043E\u0431\u044B\u0447\u043D\u0430\u044F \u043A\u043E\
+ \u0440\u043E\u0431\u043A\u0430 \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\
+ \u043C\u044B!"
+ type: Tweak
+ id: 338
+ time: '2024-07-30T13:20:37.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1487
+- author: Gnomeev
+ changes:
+ - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u043E\u0432\
+ \u044B\u0435 \u0432\u0435\u0449\u0438 \u0432 \u043B\u043E\u0434\u0430\u0443\u0442\
+ \u044B \u0421\u0411!"
+ type: Add
+ id: 339
+ time: '2024-07-31T08:38:01.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1485
+- author: Kemran
+ changes:
+ - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0442\u0430\u0431\
+ \u0430\u043A\u0435\u0440\u043A\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\
+ \u0449\u0430\u044F \u0432 \u0441\u0435\u0431\u0435 6 \u0438\u0437\u043C\u0435\
+ \u043B\u044C\u0447\u0451\u043D\u043D\u043E\u0433\u043E \u0442\u0430\u0431\u0430\
+ \u043A\u0430."
+ type: Add
+ - message: "\u0428\u0435\u0439\u0434\u0438\u0421\u0438\u0433 \u0414\u0435\u043B\u044E\
+ \u043A\u0441 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0434\u0432\
+ \u0435 \u0442\u0430\u0431\u0430\u043A\u0435\u0440\u043A\u0438."
+ type: Add
+ - message: "\u0428\u0435\u0439\u0434\u0438\u0421\u0438\u0433 \u0414\u0435\u043B\u044E\
+ \u043A\u0441 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0441\u0435\
+ \u043C\u044C \u043F\u0435\u043F\u0435\u043B\u044C\u043D\u0438\u0446."
+ type: Add
+ - message: "\u0423\u0431\u0440\u0430\u043D\u0430 \u0432\u043E\u0437\u043C\u043E\u0436\
+ \u043D\u043E\u0441\u0442\u044C \u0441\u0442\u0430\u043A\u0430\u0442\u044C \u0438\
+ \u0437\u043C\u0435\u043B\u044C\u0447\u0435\u043D\u043D\u044B\u0439 \u0442\u0430\
+ \u0431\u0430\u043A, \u043A\u043E\u043D\u043E\u043F\u043B\u044E \u0438 \u0440\
+ \u0430\u0434\u0443\u0436\u043D\u0443\u044E \u043A\u043E\u043D\u043E\u043F\u043B\
+ \u044E."
+ type: Remove
+ id: 340
+ time: '2024-07-31T08:43:53.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1491
+- author: Kit0vras
+ changes:
+ - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B 9 \u0440\u0430\
+ \u0437\u043D\u043E\u0446\u0432\u0435\u0442\u043D\u044B\u0445 \u043A\u043E\u0432\
+ \u0440\u043E\u0432."
+ type: Add
+ - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B 3 \u0442\u0430\
+ \u0439\u043B\u0430 \u0433\u0440\u0443\u043D\u0442\u0430 \u0438 2 \u0442\u0430\
+ \u0439\u043B\u0430 \u0432\u043E\u0434\u044B."
+ type: Add
+ id: 341
+ time: '2024-07-31T15:52:48.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1052
+- author: NightmareStalker
+ changes:
+ - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0440\u0430\u0437\
+ \u043D\u044B\u0435 \u0432\u0438\u0434\u044B \u043D\u0430\u043F\u0440\u0430\u0432\
+ \u043B\u0435\u043D\u043D\u044B\u0445 \u043E\u043A\u043E\u043D \u0438\u0437 \u0441\
+ \u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0441\u0442\
+ \u0435\u043A\u043E\u043B, \u043A\u0430\u043A \u043E\u0431\u044A\u0435\u043A\u0442\
+ \u044B, \u0442\u0430\u043A \u0438 \u0432 \u043A\u0440\u0430\u0444\u0442"
+ type: Add
+ - message: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u0442\u0435\u043A\u0441\
+ \u0442\u0443\u0440\u044B \u0443\u0440\u0430\u043D\u043E\u0432\u043E\u0433\u043E\
+ \ \u0438 \u0443\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u043D\u043E\u0433\u043E\
+ \ \u0443\u0440\u0430\u043D\u043E\u0432\u043E\u0433\u043E \u0441\u0442\u0435\u043A\
+ \u043E\u043B \u043F\u043E\u0434 \u043E\u0431\u0449\u0438\u0439 \u0441\u0442\u0438\
+ \u043B\u044C"
+ type: Tweak
+ id: 342
+ time: '2024-08-01T09:18:39.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1476
+- author: Ady4
+ changes:
+ - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043E\u0442\
+ \u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\
+ \u043C\u0435\u0440\u0442\u043D\u043E\u0433\u043E \u0445\u0440\u0438\u043F\u0430\
+ ."
+ type: Fix
+ id: 343
+ time: '2024-08-01T09:20:56.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1497
+- author: NightmareStalker
+ changes:
+ - message: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D \u0441\u043F\u0440\u0430\u0439\
+ \u0442 \u0418\u0433\u0440\u0443\u0448\u0435\u0447\u043D\u043E\u0433\u043E \u043B\
+ \u0430\u0437\u0435\u0440\u043D\u043E\u0433\u043E \u043C\u0435\u0447\u0430"
+ type: Tweak
+ - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u043D\u0435\
+ \u0434\u043E\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0441 \u043A\u043B\u043E\
+ \u0443\u043D\u0441\u043A\u043E\u0439 \u043F\u043E\u0445\u043E\u0434\u043A\u043E\
+ \u0439 \u0432 \u0428\u043B\u0435\u043F\u0441\u043A\u0438\u0445 \u0437\u043E\u043B\
+ \u043E\u0442\u044B\u0445 \u0431\u043E\u0442\u0438\u043D\u043A\u0430\u0445 \u043A\
+ \u043B\u043E\u0443\u043D\u0430"
+ type: Fix
+ id: 344
+ time: '2024-08-01T09:21:55.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1492
+- author: AlwyAnri
+ changes:
+ - message: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E \"\u0442\u0435\u0440\
+ \u043C\u0430\u043B\u044C\u043D\u043E\u0435\" \u0437\u0440\u0435\u043D\u0438\u0435\
+ !"
+ type: Tweak
+ - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0432\u0438\
+ \u0434\u0438\u043C\u043E\u0441\u0442\u044C \"\u0442\u0435\u0440\u043C\u0430\u043B\
+ \u044C\u043D\u044B\u043C\" \u0437\u0440\u0435\u043D\u0438\u0435\u043C!"
+ type: Fix
+ id: 345
+ time: '2024-08-01T22:12:03.0000000+00:00'
+ url: https://github.com/SerbiaStrong-220/space-station-14/pull/1474
diff --git a/Resources/Locale/ru-RU/clothing/glasses.ftl b/Resources/Locale/ru-RU/clothing/glasses.ftl
deleted file mode 100644
index 480cf4329b2c..000000000000
--- a/Resources/Locale/ru-RU/clothing/glasses.ftl
+++ /dev/null
@@ -1,8 +0,0 @@
-ent-ThermalVisorChameleon = очки с термальным визором
- .desc = Термальный визор позволяет видеть существ сквозь стены, но в конечном радиусе. Функция хамелеон дополняет этот прекрасный инструмент.
-
-ent-ThermalVisorRND = термальный визор
- .desc = Термальный визор позволяет видеть существ сквозь стены, но в конечном радиусе.
-
-ent-ClothingEyesThermalGlassesSecurity = термальные очки охраны
- .desc = Модернизированные солнцезащитные очки с функцией защиты от вспышек, визором СБ и термальными визорами.
diff --git a/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl b/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl
index df894787abab..9d0868fabeb4 100644
--- a/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl
+++ b/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl
@@ -1,2 +1,11 @@
ent-ClothingEyesGlassesCentcom = очки Центком
.desc = Модернизированные солнцезащитные очки с функцией защиты от вспышек и визором СБ.
+
+ent-ThermalVisorChameleon = очки с термальным визором
+ .desc = Термальный визор позволяет видеть существ сквозь стены, но в конечном радиусе. Функция хамелеон дополняет этот прекрасный инструмент.
+
+ent-ThermalVisorRND = термальный визор
+ .desc = Термальный визор позволяет видеть существ сквозь стены, но в конечном радиусе.
+
+ent-ClothingEyesThermalGlassesSecurity = термальные очки охраны
+ .desc = Модернизированные солнцезащитные очки с функцией защиты от вспышек, визором СБ и термальными визорами.
diff --git a/Resources/Locale/ru-RU/ss220/directionalwindows.ftl b/Resources/Locale/ru-RU/ss220/directionalwindows.ftl
new file mode 100644
index 000000000000..4c45896c3b40
--- /dev/null
+++ b/Resources/Locale/ru-RU/ss220/directionalwindows.ftl
@@ -0,0 +1,59 @@
+ent-WindowDirectionalAng = направленное окно угловое
+ .desc = Смотри, не заляпай.
+ent-WindowReinforcedDirectionalAng = направленное бронеокно угловое
+ .desc = Смотри, не заляпай.
+ent-PlasmaWindowDirectionalAng = направленное плазменное окно угловое
+ .desc = Смотри, не заляпай.
+ent-PlasmaReinforcedWindowDirectionalAng = направленное плазменное бронеокно угловое
+ .desc = Смотри, не заляпай.
+ent-UraniumWindowDirectionalAng = направленное урановое окно угловое
+ .desc = Смотри, не заляпай.
+ent-UraniumReinforcedWindowDirectionalAng = направленное урановое бронеокно угловое
+ .desc = Смотри, не заляпай.
+ent-WindowClockworkDirectionalAng = направленное заводное окно угловое
+ .desc = Смотри, не заляпай.
+
+ent-WindowDirectionalU = направленное окно П-образное
+ .desc = Смотри, не заляпай.
+ent-WindowReinforcedDirectionalU = направленное бронеокно П-образное
+ .desc = Смотри, не заляпай.
+ent-PlasmaWindowDirectionalU = направленное плазменное окно П-образное
+ .desc = Смотри, не заляпай.
+ent-PlasmaReinforcedWindowDirectionalU = направленное плазменное бронеокно П-образное
+ .desc = Смотри, не заляпай.
+ent-UraniumWindowDirectionalU = направленное урановое окно П-образное
+ .desc = Смотри, не заляпай.
+ent-UraniumReinforcedWindowDirectionalU = направленное урановое бронеокно П-образное
+ .desc = Смотри, не заляпай.
+ent-WindowClockworkDirectionalU = направленное заводное окно П-образное
+ .desc = Смотри, не заляпай.
+
+ent-WindowDirectionalDoub = направленное окно двойное
+ .desc = Смотри, не заляпай.
+ent-WindowReinforcedDirectionalDoub = направленное бронеокно двойное
+ .desc = Смотри, не заляпай.
+ent-PlasmaWindowDirectionalDoub = направленное плазменное окно двойное
+ .desc = Смотри, не заляпай.
+ent-PlasmaReinforcedWindowDirectionalDoub = направленное плазменное бронеокно двойное
+ .desc = Смотри, не заляпай.
+ent-UraniumWindowDirectionalDoub = направленное урановое окно двойное
+ .desc = Смотри, не заляпай.
+ent-UraniumReinforcedWindowDirectionalDoub = направленное урановое бронеокно двойное
+ .desc = Смотри, не заляпай.
+ent-WindowClockworkDirectionalDoub = направленное заводное окно двойное
+ .desc = Смотри, не заляпай.
+
+ent-WindowDirectionalO = направленное окно О-образное
+ .desc = Смотри, не заляпай.
+ent-WindowReinforcedDirectionalO = направленное бронеокно О-образное
+ .desc = Смотри, не заляпай.
+ent-PlasmaWindowDirectionalO = направленное плазменное окно О-образное
+ .desc = Смотри, не заляпай.
+ent-PlasmaReinforcedWindowDirectionalO = направленное плазменное бронеокно О-образное
+ .desc = Смотри, не заляпай.
+ent-UraniumWindowDirectionalO = направленное урановое окно О-образное
+ .desc = Смотри, не заляпай.
+ent-UraniumReinforcedWindowDirectionalO = направленное урановое бронеокно О-образное
+ .desc = Смотри, не заляпай.
+ent-WindowClockworkDirectionalO = направленное заводное окно О-образное
+ .desc = Смотри, не заляпай.
diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/consumable/Smokeables/snuff-box.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/consumable/Smokeables/snuff-box.ftl
new file mode 100644
index 000000000000..4fa33feeb3c6
--- /dev/null
+++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/consumable/Smokeables/snuff-box.ftl
@@ -0,0 +1,2 @@
+ent-SnuffBox = табакерка
+ .desc = Небольшая коробочка с крышкой, предназначенная для хранения табака.
diff --git a/Resources/Locale/ru-RU/ss220/tiles/tiles.ftl b/Resources/Locale/ru-RU/ss220/tiles/tiles.ftl
index 53933e1a6909..ca4daeeb22c7 100644
--- a/Resources/Locale/ru-RU/ss220/tiles/tiles.ftl
+++ b/Resources/Locale/ru-RU/ss220/tiles/tiles.ftl
@@ -22,3 +22,15 @@ tiles-shuttle-glass-floor = стеклянный пол шаттла
tiles-reinforced-uranium-glass-floor = урановый бронестеклянный пол
tiles-reinforced-plasma-glass-floor = плазменный бронестеклянный пол
tiles-damaged-glass-floor = поврежденный стеклянный пол
+carpet-white = белый ковёр
+carpet-black = чёрный ковёр
+carpet-red = красный ковёр
+carpet-magenta = пурпурный ковёр
+carpet-purple = фиолетовый ковёр
+carpet-blue = синий ковёр
+carpet-cyan = голубой ковёр
+carpet-green = зелёный ковёр
+carpet-orange = оранжевый ковёр
+tiles-mud = грязь
+tiles-rocks = камень
+tiles-wasteland = пустошь
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/cigs.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/cigs.yml
index d2acb62f8598..3b8187f7e9be 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/cigs.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/cigs.yml
@@ -7,6 +7,8 @@
CigPackBlack: 2
CigPackMixed: 2
CigarCase: 1
+ SnuffBox: 2 #SS220-Snuff-box
+ Ashtray: 7 #SS220-Snuff-box
SmokingPipeFilledTobacco: 1
Vape: 1
Matchbox: 5
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
index 9ec387e56aaf..b6d8a22e231d 100644
--- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
+++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
@@ -519,9 +519,9 @@
description: Uniform for subpar operative LARPers performing tactical insulated glove theft in deep space.
components:
- type: Sprite
- sprite: Clothing/Uniforms/Jumpskirt/tacticool_s.rsi
+ sprite: SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi #SS220-tacticool_s-resprite
- type: Clothing
- sprite: Clothing/Uniforms/Jumpskirt/tacticool_s.rsi
+ sprite: SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi #SS220-tacticool_s-resprite
# Too cool for sensors to be on
- type: SuitSensor
randomMode: false
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml
index b3b586b59bac..fbee5d8aaa8d 100644
--- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml
+++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml
@@ -858,9 +858,9 @@
description: Uniform for subpar operative LARPers performing tactical insulated glove theft in deep space.
components:
- type: Sprite
- sprite: Clothing/Uniforms/Jumpsuit/tacticool.rsi
+ sprite: SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi #SS220-tacticool_s-resprite
- type: Clothing
- sprite: Clothing/Uniforms/Jumpsuit/tacticool.rsi
+ sprite: SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi #SS220-tacticool_s-resprite
# Too cool for sensors to be on
- type: SuitSensor
randomMode: false
diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml
index 12c1a48389ef..bae768c13038 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml
@@ -1198,7 +1198,7 @@
map: [ "blade" ]
- type: Item
size: Small
- sprite: Objects/Fun/toy_sword.rsi
+ sprite: Objects/Weapons/Melee/e_sword-inhands.rsi #SS220-esword-fix
- type: UseDelay
delay: 1.0
- type: PointLight
diff --git a/Resources/Prototypes/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/implanters.yml
index 9d5920853c89..c2936829932e 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/implanters.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/implanters.yml
@@ -254,7 +254,7 @@
- ResearchDirector
- Scientist
- Borg
- - label: corvax-hidden-desc-FreedomImplanter-syndicate
+ - label: corvax-hidden-desc-StorageImplanter-syndicate # ss220 fix
whitelistMind:
components:
- TraitorRole
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml
index 0c5db15c7c42..91edc7bf2ca4 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml
@@ -35,6 +35,24 @@
entity_storage: !type:Container
- type: Damageable
damageContainer: Box
+ # ss220 box fix begin
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 60
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WoodDestroyHeavy
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ MaterialCardboard:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ # ss220 box fix end
- type: Sprite
noRot: true
sprite: SS220/Structures/Storage/closet.rsi #SS220-Closet-Resprite
@@ -91,15 +109,16 @@
parent: BaseBigBox
components:
- type: InteractionOutline
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 15
- behaviors:
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
-
+ # ss220 box fix begin
+ # - type: Destructible
+ # thresholds:
+ # - trigger:
+ # !type:DamageTrigger
+ # damage: 15
+ # behaviors:
+ # - !type:DoActsBehavior
+ # acts: [ "Destruction" ]
+ # ss220 box fix end
#For admin spawning only
- type: entity
diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml
index 686709dcf6c9..25410df538b3 100644
--- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml
+++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml
@@ -65,10 +65,10 @@
components:
- type: Sprite
sprite: Structures/Windows/directional.rsi
- state: uranium_reinforced_window
+ state: uranium_reinforced_window #SS220-Resprite
- type: Icon
sprite: Structures/Windows/directional.rsi
- state: uranium_reinforced_window
+ state: uranium_reinforced_window #SS220-Resprite
- type: Construction
graph: WindowDirectional
node: uraniumReinforcedWindowDirectional
diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml
index 41be15e820f8..4c1db67e8188 100644
--- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml
+++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml
@@ -63,10 +63,10 @@
components:
- type: Sprite
sprite: Structures/Windows/directional.rsi
- state: uranium_window
+ state: uranium_window #SS220-Resprite
- type: Icon
sprite: Structures/Windows/directional.rsi
- state: uranium_window
+ state: uranium_window #SS220-Resprite
- type: Construction
graph: WindowDirectional
node: uraniumWindowDirectional
diff --git a/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml b/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml
index dbe20466b411..94233d523f14 100644
--- a/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml
+++ b/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml
@@ -56,7 +56,7 @@
- type: startingGear
id: CaptainCap
equipment:
- head: ClothingHeadHatCapcap
+ head: ClothingHeadCaptainCap #SS220-CapHeadLoadoutsChanges
# Neck
- type: loadout
@@ -131,4 +131,4 @@
- type: startingGear
id: CaptainWintercoat
equipment:
- outerClothing: ClothingOuterWinterCap
\ No newline at end of file
+ outerClothing: ClothingOuterWinterCap
diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml
index 139d1483b53a..f676a27a41b8 100644
--- a/Resources/Prototypes/Loadouts/loadout_groups.yml
+++ b/Resources/Prototypes/Loadouts/loadout_groups.yml
@@ -55,6 +55,10 @@
loadouts:
- CaptainHead
- CaptainCap
+ #SS220-CapHeadLoadoutsChanges-Begin
+ - CaptainBeret
+ - CaptainHeadHat
+ #SS220-CapHeadLoadoutsChanges-End
#ss220-loadout-captain-begin
- CaptainWhiteHead
- CaptainWhiteBeret
@@ -969,6 +973,7 @@
- HeadofSecurityHead
- HeadofSecurityBeret
- HeadofSecurityBigCap #SS220-FreedomHoSCap
+ - HatCapHoS #ss220 sec loadout update
- type: loadoutGroup
id: HeadofSecurityJumpsuit
@@ -979,6 +984,10 @@
- HeadofSecurityTurtleneck
- HeadofSecurityTurtleneckSkirt
- HeadofSecurityFormalSuit
+ - JumpsuitHoSGrey #ss220 sec loadout update
+ - JumpsuitHoSBlue #ss220 sec loadout update
+ - JumpskirtHoSParadeMale #ss220 sec loadout update
+ - JumpsuitHoSParadeMale #ss220 sec loadout update
# - HeadofSecurityFormalSkirt SS220-RemoveFormalSkirtLoadouts
- type: loadoutGroup
@@ -989,6 +998,7 @@
- HeadofSecurityCloak
- HeadofSecurityMantle
- SecurityHolster #SS220-HoS-Holster
+ - MantleHOSShoulder #ss220 sec loadout update
- type: loadoutGroup
id: HeadofSecurityOuterClothing
@@ -996,6 +1006,7 @@
loadouts:
- HeadofSecurityCoat
- HeadofSecurityWinterCoat
+ - WinterHoSUnarmored #ss220 sec loadout update
- type: loadoutGroup
id: WardenHead
@@ -1028,15 +1039,17 @@
- SecurityHelmet
- SecurityBeret
- SecurityHat
+ - HatCowboyBlack #ss220 sec loadout update
-#SS220 holster loadout begin
+#SS220 neck loadout begin
- type: loadoutGroup
id: SecurityNeck
name: loadout-group-security-neck
minLimit: 0
loadouts:
- - SecurityHolster
-#SS220 holster loadout end
+ - SecurityHolster #SS220 holster loadout
+ - Headphones #SS220 sec loadout update
+#SS220 neck loadout end
- type: loadoutGroup
id: SecurityJumpsuit
@@ -1050,6 +1063,7 @@
# - SeniorOfficerJumpskirt #SS220 Seniors roles
- SecurityJumpsuitTurtleneck #SS220-MoreTurtleneck-Begin
- SecurityJumpskirtTurtleneck #SS220-MoreTurtleneck-End
+ - JumpsuitSecBlue #ss220 sec loadout update
- type: loadoutGroup
id: SecurityBackpack
@@ -1073,6 +1087,8 @@
- ArmorVest
- ArmorVestSlim
- SecurityOfficerWintercoat
+ - CoatSecurityOvercoat #ss220 sec loadout update
+ - VestArmorSec #ss220 sec loadout update
- type: loadoutGroup
id: SecurityShoes
@@ -1081,6 +1097,7 @@
- CombatBoots
- JackBoots
- SecurityWinterBoots
+ - BootsJackSec #ss220 sec loadout update
- type: loadoutGroup
id: SecurityPDA
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml
index 96f009fabb76..7847795ba71c 100644
--- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml
+++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml
@@ -28,6 +28,7 @@
- material: ReinforcedPlasmaGlass
amount: 1
doAfter: 3
+
- to: uraniumWindowDirectional
steps:
- material: UraniumGlass
@@ -136,6 +137,7 @@
doAfter: 2
- tool: Anchoring
doAfter: 3
+
- node: uraniumWindowDirectional
entity: UraniumWindowDirectional
edges:
diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml
index b182c042c5da..8c9de756e3e1 100644
--- a/Resources/Prototypes/Recipes/Construction/structures.yml
+++ b/Resources/Prototypes/Recipes/Construction/structures.yml
@@ -1729,4 +1729,40 @@
state: state1
objectType: Structure
placementMode: SnapgridCenter
+
+- type: construction
+ name: directional uranium window
+ id: UraniumWindowDirectional
+ graph: WindowDirectional
+ startNode: start
+ targetNode: uraniumWindowDirectional
+ category: construction-category-structures
+ description: Clear.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: Structures/Windows/directional.rsi
+ state: uranium_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced uranium window
+ id: UraniumReinforcedWindowDirectional
+ graph: WindowDirectional
+ startNode: start
+ targetNode: uraniumReinforcedWindowDirectional
+ category: construction-category-structures
+ description: Clear.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: Structures/Windows/directional.rsi
+ state: uranium_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
#SS220-craft-end
diff --git a/Resources/Prototypes/SS220/Entities/Clothing/Sponsor/clothing.yml b/Resources/Prototypes/SS220/Entities/Clothing/Sponsor/clothing.yml
index 0cb06c46afa3..54aec3234b1f 100644
--- a/Resources/Prototypes/SS220/Entities/Clothing/Sponsor/clothing.yml
+++ b/Resources/Prototypes/SS220/Entities/Clothing/Sponsor/clothing.yml
@@ -154,6 +154,7 @@
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepClown
+ - type: WaddleWhenWorn
- type: entity
parent: ClothingSponsorMaskBase
diff --git a/Resources/Prototypes/SS220/Entities/Objects/Consumable/Smokeables/case.yml b/Resources/Prototypes/SS220/Entities/Objects/Consumable/Smokeables/case.yml
new file mode 100644
index 000000000000..e657fded9835
--- /dev/null
+++ b/Resources/Prototypes/SS220/Entities/Objects/Consumable/Smokeables/case.yml
@@ -0,0 +1,55 @@
+- type: entity
+ id: SnuffBox
+ parent: [ BaseStorageItem, BaseBagOpenClose ]
+ name: snuff box
+ description: A case for holding your cigars when you are not smoking them.
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi
+ layers:
+ - state: closed
+ - state: open
+ map: ["openLayer"]
+ - state: snuff1
+ map: ["snuff1"]
+ visible: false
+ - state: snuff2
+ map: ["snuff2"]
+ visible: false
+ - state: snuff3
+ map: ["snuff3"]
+ visible: false
+ - state: snuff4
+ map: ["snuff4"]
+ visible: false
+ - state: snuff5
+ map: ["snuff5"]
+ visible: false
+ - state: snuff6
+ map: ["snuff6"]
+ visible: false
+ - type: Storage
+ grid:
+ - 0,0,2,1
+ - type: Item
+ sprite: SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi
+ size: Normal
+ shape:
+ - 0,0,1,1
+ storedRotation: 90
+ - type: StorageFill
+ contents:
+ - id: GroundTobacco
+ amount: 6
+ - type: ItemCounter
+ count:
+ tags: [Smokable]
+ composite: true
+ layerStates:
+ - snuff1
+ - snuff2
+ - snuff3
+ - snuff4
+ - snuff5
+ - snuff6
+ - type: Appearance
diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/tiles.yml
index 62a73c9738fc..a4153eea91e4 100644
--- a/Resources/Prototypes/SS220/Entities/Objects/Misc/tiles.yml
+++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/tiles.yml
@@ -475,4 +475,159 @@
- Plating
- FloorWoodTileRed
- type: Stack
- stackType: FloorTileItemWoodTileRed
\ No newline at end of file
+ stackType: FloorTileItemWoodTileRed
+
+# Carpet
+
+- type: entity
+ name: white carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetWhite
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-white
+ - type: Item
+ heldPrefix: carpet-white
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetWhite
+ - type: Stack
+ stackType: FloorTileStackCarpetWhite
+
+- type: entity
+ name: black carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetBlack
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-black
+ - type: Item
+ heldPrefix: carpet-black
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetBlack
+ - type: Stack
+ stackType: FloorTileStackCarpetBlack
+
+- type: entity
+ name: red carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetRed
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-red
+ - type: Item
+ heldPrefix: carpet-red
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetRed
+ - type: Stack
+ stackType: FloorTileStackCarpetRed
+
+- type: entity
+ name: magenta carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetMagenta
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-magenta
+ - type: Item
+ heldPrefix: carpet-magenta
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetMagenta
+ - type: Stack
+ stackType: FloorTileStackCarpetMagenta
+
+- type: entity
+ name: blue carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetBlue
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-blue
+ - type: Item
+ heldPrefix: carpet-blue
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetBlue
+ - type: Stack
+ stackType: FloorTileStackCarpetBlue
+
+- type: entity
+ name: green carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetGreen
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-green
+ - type: Item
+ heldPrefix: carpet-green
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetGreen
+ - type: Stack
+ stackType: FloorTileStackCarpetGreen
+
+- type: entity
+ name: cyan carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetCyan
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-cyan
+ - type: Item
+ heldPrefix: carpet-cyan
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetCyan
+ - type: Stack
+ stackType: FloorTileStackCarpetCyan
+
+- type: entity
+ name: purple carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetPurple
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-purple
+ - type: Item
+ heldPrefix: carpet-purple
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetPurple
+ - type: Stack
+ stackType: FloorTileStackCarpetPurple
+
+- type: entity
+ name: orange carpet floor
+ parent: FloorTileItemBase
+ id: FloorTileItemCarpetOrange
+ components:
+ - type: Sprite
+ sprite: SS220/Objects/Tiles/tile_sh.rsi
+ state: carpet-orange
+ - type: Item
+ heldPrefix: carpet-orange
+ - type: FloorTile
+ outputs:
+ - Plating
+ - FloorTileCarpetOrange
+ - type: Stack
+ stackType: FloorTileStackCarpetOrange
diff --git a/Resources/Prototypes/SS220/Entities/Structures/directionalwindows.yml b/Resources/Prototypes/SS220/Entities/Structures/directionalwindows.yml
new file mode 100644
index 000000000000..e48e92276ab6
--- /dev/null
+++ b/Resources/Prototypes/SS220/Entities/Structures/directionalwindows.yml
@@ -0,0 +1,1665 @@
+#angular directional window
+- type: entity
+ id: WindowDirectionalAng
+ parent: BaseStructure
+ name: directional window angular
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: WallMount
+ arc: 360 # interact despite grilles
+ - type: Tag
+ tags:
+ - Window
+ - type: MeleeSound
+ soundGroups:
+ Brute:
+ collection: GlassSmack
+ - type: Sprite
+ drawdepth: Mobs
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: window
+ - type: InteractionPopup
+ interactSuccessString: comp-window-knock
+ messagePerceivedByOthers: comp-window-knock
+ interactSuccessSound:
+ path: /Audio/Effects/glass_knock.ogg
+ - type: Physics
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.49,-0.49,0.49,-0.36"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix2:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "0.49,0.49,0.36,-0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ - type: Repairable
+ - type: Damageable
+ damageContainer: Inorganic
+ damageModifierSet: Glass
+ - type: ExaminableDamage
+ messages: WindowMessages
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 2
+ fx: EffectRCDDeconstruct2
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - trigger:
+ !type:DamageTrigger
+ damage: 25
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlass:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: Airtight
+ noAirWhenFullyAirBlocked: false
+ airBlockedDirection:
+ - South
+ - East
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: windowDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: StaticPrice
+ price: 20
+
+- type: entity
+ id: PlasmaWindowDirectionalAng
+ parent: WindowDirectionalAng
+ name: directional plasma window angular
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: plasma_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: plasma_window
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: plasmaWindowDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 70
+ - type: RadiationBlocker
+ resistance: 1
+
+- type: entity
+ id: WindowReinforcedDirectionalAng
+ parent: WindowDirectionalAng
+ name: directional reinforced window angular
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: reinforced_window
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: windowReinforcedDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 4
+ fx: EffectRCDDeconstruct4
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 50
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassReinforced:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 50
+
+- type: entity
+ id: PlasmaReinforcedWindowDirectionalAng
+ parent: WindowDirectionalAng
+ name: directional reinforced plasma window angular
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: plasma_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: plasma_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: plasmaReinforcedWindowDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 36
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 1000
+ behaviors: #excess damage, don't spawn entities.
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 600
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 1
+ max: 2
+ PartRodMetal:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 150
+ - type: RadiationBlocker
+ resistance: 2
+
+- type: entity
+ id: UraniumReinforcedWindowDirectionalAng
+ parent: WindowDirectionalAng
+ name: directional reinforced uranium window angular
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: uranium_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: uranium_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: uraniumReinforcedWindowDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 1
+ max: 2
+ PartRodMetal1:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 140
+
+- type: entity
+ id: UraniumWindowDirectionalAng
+ parent: WindowDirectionalAng
+ name: directional uranium window angular
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: uranium_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: uranium_window
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: uraniumWindowDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 80
+
+- type: entity
+ id: WindowClockworkDirectionalAng
+ parent: WindowDirectionalAng
+ name: directional clockwork window angular
+ description: Don't smudge up the brass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: clock_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: clock_window
+ - type: Construction
+ graph: WindowDirectionalAng
+ node: windowClockworkDirectionalAng
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_ang.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassClockwork:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 50
+
+#U-shaped directional window
+- type: entity
+ id: WindowDirectionalU
+ parent: BaseStructure
+ name: directional window u-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: WallMount
+ arc: 360 # interact despite grilles
+ - type: Tag
+ tags:
+ - Window
+ - type: MeleeSound
+ soundGroups:
+ Brute:
+ collection: GlassSmack
+ - type: Sprite
+ drawdepth: Mobs
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: window
+ - type: InteractionPopup
+ interactSuccessString: comp-window-knock
+ messagePerceivedByOthers: comp-window-knock
+ interactSuccessSound:
+ path: /Audio/Effects/glass_knock.ogg
+ - type: Physics
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.49,-0.49,0.49,-0.36"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix2:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.49,-0.49,-0.36,0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix3:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "0.36,-0.49,0.49,0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ - type: Repairable
+ - type: Damageable
+ damageContainer: Inorganic
+ damageModifierSet: Glass
+ - type: ExaminableDamage
+ messages: WindowMessages
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 2
+ fx: EffectRCDDeconstruct2
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - trigger:
+ !type:DamageTrigger
+ damage: 25
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlass:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: Airtight
+ noAirWhenFullyAirBlocked: false
+ airBlockedDirection:
+ - South
+ - East
+ - West
+ - type: Construction
+ graph: WindowDirectionalU
+ node: windowDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: StaticPrice
+ price: 30
+
+- type: entity
+ id: PlasmaWindowDirectionalU
+ parent: WindowDirectionalU
+ name: directional plasma window u-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: plasma_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: plasma_window
+ - type: Construction
+ graph: WindowDirectionalU
+ node: plasmaWindowDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 100
+ - type: RadiationBlocker
+ resistance: 1
+
+- type: entity
+ id: WindowReinforcedDirectionalU
+ parent: WindowDirectionalU
+ name: directional reinforced window u-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: reinforced_window
+ - type: Construction
+ graph: WindowDirectionalU
+ node: windowReinforcedDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 4
+ fx: EffectRCDDeconstruct4
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 50
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassReinforced:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 70
+
+- type: entity
+ id: PlasmaReinforcedWindowDirectionalU
+ parent: WindowDirectionalU
+ name: directional reinforced plasma window u-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: plasma_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: plasma_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalU
+ node: plasmaReinforcedWindowDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 36
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 1000
+ behaviors: #excess damage, don't spawn entities.
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 600
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 1
+ max: 3
+ PartRodMetal:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 200
+ - type: RadiationBlocker
+ resistance: 2
+
+- type: entity
+ id: UraniumReinforcedWindowDirectionalU
+ parent: WindowDirectionalU
+ name: directional reinforced uranium window u-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: uranium_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: uranium_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalU
+ node: uraniumReinforcedWindowDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 1
+ max: 3
+ PartRodMetal1:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 230
+
+- type: entity
+ id: UraniumWindowDirectionalU
+ parent: WindowDirectionalU
+ name: directional uranium window u-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: uranium_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: uranium_window
+ - type: Construction
+ graph: WindowDirectionalU
+ node: uraniumWindowDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 130
+
+- type: entity
+ id: WindowClockworkDirectionalU
+ parent: WindowDirectionalU
+ name: directional clockwork window u-shaped
+ description: Don't smudge up the brass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: clock_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: clock_window
+ - type: Construction
+ graph: WindowDirectionalU
+ node: windowClockworkDirectionalU
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_u.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassClockwork:
+ min: 1
+ max: 3
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 70
+
+#double directional window
+- type: entity
+ id: WindowDirectionalDoub
+ parent: BaseStructure
+ name: directional window double
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: WallMount
+ arc: 360 # interact despite grilles
+ - type: Tag
+ tags:
+ - Window
+ - type: MeleeSound
+ soundGroups:
+ Brute:
+ collection: GlassSmack
+ - type: Sprite
+ drawdepth: Mobs
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: window
+ - type: InteractionPopup
+ interactSuccessString: comp-window-knock
+ messagePerceivedByOthers: comp-window-knock
+ interactSuccessSound:
+ path: /Audio/Effects/glass_knock.ogg
+ - type: Physics
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.49,-0.49,0.49,-0.36"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix2:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "0.49,0.36,-0.49,0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ - type: Repairable
+ - type: Damageable
+ damageContainer: Inorganic
+ damageModifierSet: Glass
+ - type: ExaminableDamage
+ messages: WindowMessages
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 2
+ fx: EffectRCDDeconstruct2
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - trigger:
+ !type:DamageTrigger
+ damage: 25
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlass:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: Airtight
+ noAirWhenFullyAirBlocked: false
+ airBlockedDirection:
+ - South
+ - North
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: windowDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: StaticPrice
+ price: 30
+
+- type: entity
+ id: PlasmaWindowDirectionalDoub
+ parent: WindowDirectionalDoub
+ name: directional plasma window double
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: plasma_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: plasma_window
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: plasmaWindowDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 70
+ - type: RadiationBlocker
+ resistance: 1
+
+- type: entity
+ id: WindowReinforcedDirectionalDoub
+ parent: WindowDirectionalDoub
+ name: directional reinforced window double
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: reinforced_window
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: windowReinforcedDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 4
+ fx: EffectRCDDeconstruct4
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 50
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassReinforced:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 50
+
+- type: entity
+ id: PlasmaReinforcedWindowDirectionalDoub
+ parent: WindowDirectionalDoub
+ name: directional reinforced plasma window double
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: plasma_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: plasma_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: plasmaReinforcedWindowDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 36
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 1000
+ behaviors: #excess damage, don't spawn entities.
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 600
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 1
+ max: 2
+ PartRodMetal:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 150
+ - type: RadiationBlocker
+ resistance: 2
+
+- type: entity
+ id: UraniumReinforcedWindowDirectionalDoub
+ parent: WindowDirectionalDoub
+ name: directional reinforced uranium window double
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: uranium_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: uranium_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: uraniumReinforcedWindowDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 1
+ max: 2
+ PartRodMetal1:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 150
+
+- type: entity
+ id: UraniumWindowDirectionalDoub
+ parent: WindowDirectionalDoub
+ name: directional uranium window double
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: uranium_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: uranium_window
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: uraniumWindowDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 85
+
+- type: entity
+ id: WindowClockworkDirectionalDoub
+ parent: WindowDirectionalDoub
+ name: directional clockwork window double
+ description: Don't smudge up the brass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: clock_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: clock_window
+ - type: Construction
+ graph: WindowDirectionalDoub
+ node: windowClockworkDirectionalDoub
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_doub.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassClockwork:
+ min: 1
+ max: 2
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 50
+
+#O-shaped window
+- type: entity
+ id: WindowDirectionalO
+ parent: BaseStructure
+ name: directional window o-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: WallMount
+ arc: 360 # interact despite grilles
+ - type: Tag
+ tags:
+ - Window
+ - type: MeleeSound
+ soundGroups:
+ Brute:
+ collection: GlassSmack
+ - type: Sprite
+ drawdepth: Mobs
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: window
+ - type: InteractionPopup
+ interactSuccessString: comp-window-knock
+ messagePerceivedByOthers: comp-window-knock
+ interactSuccessSound:
+ path: /Audio/Effects/glass_knock.ogg
+ - type: Physics
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.49,-0.49,0.49,-0.36"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix2:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.49,-0.49,-0.36,0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix3:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "0.36,-0.49,0.49,0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ fix4:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "0.49,0.36,-0.49,0.49"
+ density: 1500
+ mask:
+ - FullTileMask
+ layer:
+ - GlassLayer
+ - type: Repairable
+ - type: Damageable
+ damageContainer: Inorganic
+ damageModifierSet: Glass
+ - type: ExaminableDamage
+ messages: WindowMessages
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 2
+ fx: EffectRCDDeconstruct2
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - trigger:
+ !type:DamageTrigger
+ damage: 25
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlass:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: Airtight
+ noAirWhenFullyAirBlocked: false
+ airBlockedDirection:
+ - South
+ - East
+ - North
+ - West
+ - type: Construction
+ graph: WindowDirectionalO
+ node: windowDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: StaticPrice
+ price: 50
+
+- type: entity
+ id: PlasmaWindowDirectionalO
+ parent: WindowDirectionalO
+ name: directional plasma window o-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: plasma_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: plasma_window
+ - type: Construction
+ graph: WindowDirectionalO
+ node: plasmaWindowDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 130
+ - type: RadiationBlocker
+ resistance: 1
+
+- type: entity
+ id: WindowReinforcedDirectionalO
+ parent: WindowDirectionalO
+ name: directional reinforced window o-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: reinforced_window
+ - type: Construction
+ graph: WindowDirectionalO
+ node: windowReinforcedDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: RCDDeconstructable
+ cost: 4
+ delay: 4
+ fx: EffectRCDDeconstruct4
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 50
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassReinforced:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 90
+
+- type: entity
+ id: PlasmaReinforcedWindowDirectionalO
+ parent: WindowDirectionalO
+ name: directional reinforced plasma window o-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: plasma_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: plasma_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalO
+ node: plasmaReinforcedWindowDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 36
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 1000
+ behaviors: #excess damage, don't spawn entities.
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - trigger:
+ !type:DamageTrigger
+ damage: 600
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassPlasma:
+ min: 2
+ max: 4
+ PartRodMetal:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 270
+ - type: RadiationBlocker
+ resistance: 2
+
+- type: entity
+ id: UraniumReinforcedWindowDirectionalO
+ parent: WindowDirectionalO
+ name: directional reinforced uranium window o-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: uranium_reinforced_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: uranium_reinforced_window
+ - type: Construction
+ graph: WindowDirectionalO
+ node: uraniumReinforcedWindowDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 2
+ max: 4
+ PartRodMetal1:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 300
+
+- type: entity
+ id: UraniumWindowDirectionalO
+ parent: WindowDirectionalO
+ name: directional uranium window o-shaped
+ description: Don't smudge up the glass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: uranium_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: uranium_window
+ - type: Construction
+ graph: WindowDirectionalO
+ node: uraniumWindowDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 3.333
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassUranium:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 170
+
+- type: entity
+ id: WindowClockworkDirectionalO
+ parent: WindowDirectionalO
+ name: directional clockwork window o-shaped
+ description: Don't smudge up the brass down there.
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Window
+ components:
+ - type: Sprite
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: clock_window
+ - type: Icon
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: clock_window
+ - type: Construction
+ graph: WindowDirectionalO
+ node: windowClockworkDirectionalO
+ - type: Appearance
+ - type: DamageVisuals
+ thresholds: [4, 8, 12]
+ damageDivisor: 10
+ trackAllDamage: true
+ damageOverlay:
+ sprite: SS220/Structures/Windows/directionals/cracks_directional_o.rsi
+ - type: Damageable
+ damageModifierSet: RGlass
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 150
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WindowShatter
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ ShardGlassClockwork:
+ min: 2
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: StaticPrice
+ price: 90
diff --git a/Resources/Prototypes/SS220/Entities/ThermalVisionGoogles/ThermalVisionProto.yml b/Resources/Prototypes/SS220/Entities/ThermalVisionGoogles/ThermalVisionProto.yml
index 5968f9a585b6..bb01612b5a6c 100644
--- a/Resources/Prototypes/SS220/Entities/ThermalVisionGoogles/ThermalVisionProto.yml
+++ b/Resources/Prototypes/SS220/Entities/ThermalVisionGoogles/ThermalVisionProto.yml
@@ -3,7 +3,7 @@
id: ThermalVisorChameleon
name: optical thermal chameleon scanner
description: Useful both for security and cargonia.
- suffix: ThermalGoogles
+ suffix: Syndicate
components:
- type: ThermalVisionClothing
- type: Sprite
@@ -34,6 +34,7 @@
id: ThermalVisorRND
name: Advanced Thermal Glasses
description: This glasses alows you to see persons through the walls in finate radius
+ suffix: RND
components:
- type: ThermalVisionClothing
thermalVisionRadius: 5
@@ -48,6 +49,7 @@
id: ClothingEyesThermalGlassesSecurity
name: Advanced Security Glasses with SecHUD and Thermal Visor
description: This glasses provided with SecHUD and Thermal Visor, which alows you to see persons through the walls in finate radius
+ suffix: SecRND
components:
- type: ThermalVisionClothing
thermalVisionRadius: 5
diff --git a/Resources/Prototypes/SS220/Entities/ThermalVisionImplant/ThermalVisionAction.yml b/Resources/Prototypes/SS220/Entities/ThermalVisionImplant/ThermalVisionAction.yml
index 8df5eb3ec062..074b838e67a3 100644
--- a/Resources/Prototypes/SS220/Entities/ThermalVisionImplant/ThermalVisionAction.yml
+++ b/Resources/Prototypes/SS220/Entities/ThermalVisionImplant/ThermalVisionAction.yml
@@ -1,7 +1,7 @@
- type: entity
id: ActionActivateThermalVision
- name: ThermalVision
- description: I CAN SEE EVERYTYNG
+ name: Переключить термальные сенсоры
+ description: Переключает термальные сенсоры в импланте владельца, что позволяет видеть живых существ сквозь преграды в ограниченном радиусе.
noSpawn: true
components:
- type: InstantAction
@@ -11,4 +11,4 @@
sprite: /Textures/SS220/Misc/ThermalEye.rsi
state: EyeON
event: !type:UseThermalVisionEvent
- useDelay: 4
\ No newline at end of file
+ useDelay: 1
diff --git a/Resources/Prototypes/SS220/Loadouts/Jobs/Command/captain.yml b/Resources/Prototypes/SS220/Loadouts/Jobs/Command/captain.yml
index 286091395741..6e707468bb1b 100644
--- a/Resources/Prototypes/SS220/Loadouts/Jobs/Command/captain.yml
+++ b/Resources/Prototypes/SS220/Loadouts/Jobs/Command/captain.yml
@@ -22,6 +22,24 @@
jumpsuit: ClothingUniformWhiteJumpsuitCaptain
# Head
+- type: loadout
+ id: CaptainHeadHat
+ equipment: CaptainHeadHat
+
+- type: startingGear
+ id: CaptainHeadHat
+ equipment:
+ head: ClothingHeadCaptainHat
+
+- type: loadout
+ id: CaptainBeret
+ equipment: CaptainBeret
+
+- type: startingGear
+ id: CaptainBeret
+ equipment:
+ head: ClothingHeadBeretCap
+
- type: loadout
id: CaptainWhiteHead
equipment: CaptainWhiteHead
diff --git a/Resources/Prototypes/SS220/Loadouts/Jobs/Security/head_of_security.yml b/Resources/Prototypes/SS220/Loadouts/Jobs/Security/head_of_security.yml
index 0632ce24307d..99b50a4f8ea9 100644
--- a/Resources/Prototypes/SS220/Loadouts/Jobs/Security/head_of_security.yml
+++ b/Resources/Prototypes/SS220/Loadouts/Jobs/Security/head_of_security.yml
@@ -1,3 +1,40 @@
+# Jumpsuit
+- type: loadout
+ id: JumpsuitHoSParadeMale
+ equipment: JumpsuitHoSParadeMale
+
+- type: startingGear
+ id: JumpsuitHoSParadeMale
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitHoSParadeMale
+
+- type: loadout
+ id: JumpskirtHoSParadeMale
+ equipment: JumpskirtHoSParadeMale
+
+- type: startingGear
+ id: JumpskirtHoSParadeMale
+ equipment:
+ jumpsuit: ClothingUniformJumpskirtHoSParadeMale
+
+- type: loadout
+ id: JumpsuitHoSBlue
+ equipment: JumpsuitHoSBlue
+
+- type: startingGear
+ id: JumpsuitHoSBlue
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitHoSBlue
+
+- type: loadout
+ id: JumpsuitHoSGrey
+ equipment: JumpsuitHoSGrey
+
+- type: startingGear
+ id: JumpsuitHoSGrey
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitHoSGrey
+
# Head
- type: loadout
id: HeadofSecurityBigCap
@@ -7,3 +44,32 @@
id: HeadofSecurityBigCap
equipment:
head: ClothingHeadBigCapHoS
+
+- type: loadout
+ id: HatCapHoS
+ equipment: HatCapHoS
+
+- type: startingGear
+ id: HatCapHoS
+ equipment:
+ head: ClothingHeadHatCapHoS
+
+# Neck
+- type: loadout
+ id: MantleHOSShoulder
+ equipment: MantleHOSShoulder
+
+- type: startingGear
+ id: MantleHOSShoulder
+ equipment:
+ neck: ClothingNeckMantleHOSShoulder
+
+# Outer
+- type: loadout
+ id: WinterHoSUnarmored
+ equipment: WinterHoSUnarmored
+
+- type: startingGear
+ id: WinterHoSUnarmored
+ equipment:
+ outerClothing: ClothingOuterWinterHoSUnarmored
diff --git a/Resources/Prototypes/SS220/Loadouts/Jobs/Security/security_officer.yml b/Resources/Prototypes/SS220/Loadouts/Jobs/Security/security_officer.yml
index 21f680dfd8b2..f3f90cae94df 100644
--- a/Resources/Prototypes/SS220/Loadouts/Jobs/Security/security_officer.yml
+++ b/Resources/Prototypes/SS220/Loadouts/Jobs/Security/security_officer.yml
@@ -32,3 +32,63 @@
id: SecurityJumpskirtTurtleneck
equipment:
jumpsuit: ClothingUniformJumpskirtTurtleColorBlack
+
+- type: loadout
+ id: JumpsuitSecBlue
+ equipment: JumpsuitSecBlue
+
+- type: startingGear
+ id: JumpsuitSecBlue
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitSecBlue
+
+# Head
+- type: loadout
+ id: HatCowboyBlack
+ equipment: HatCowboyBlack
+
+- type: startingGear
+ id: HatCowboyBlack
+ equipment:
+ head: ClothingHeadHatCowboyBlack
+
+# Neck
+- type: loadout
+ id: Headphones
+ equipment: Headphones
+
+- type: startingGear
+ id: Headphones
+ equipment:
+ neck: ClothingNeckHeadphones
+
+#Outer
+- type: loadout
+ id: VestArmorSec
+ equipment: VestArmorSec
+
+- type: startingGear
+ id: VestArmorSec
+ equipment:
+ outerClothing: ClothingOuterVestArmorSec
+
+- type: loadout
+ id: CoatSecurityOvercoat
+ equipment: CoatSecurityOvercoat
+
+- type: startingGear
+ id: CoatSecurityOvercoat
+ equipment:
+ outerClothing: ClothingOuterCoatSecurityOvercoat
+
+# Shoes
+- type: loadout
+ id: BootsJackSec
+ equipment: BootsJackSec
+
+- type: startingGear
+ id: BootsJackSec
+ equipment:
+ shoes: ClothingShoesBootsJackSec
+
+
diff --git a/Resources/Prototypes/SS220/Recipes/Construction/Graphs/structures/directionalwindows.yml b/Resources/Prototypes/SS220/Recipes/Construction/Graphs/structures/directionalwindows.yml
new file mode 100644
index 000000000000..df2581a2d482
--- /dev/null
+++ b/Resources/Prototypes/SS220/Recipes/Construction/Graphs/structures/directionalwindows.yml
@@ -0,0 +1,711 @@
+#angular directional window
+- type: constructionGraph
+ id: WindowDirectionalAng
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: windowDirectionalAng
+ steps:
+ - material: Glass
+ amount: 2
+ doAfter: 2
+
+ - to: windowReinforcedDirectionalAng
+ steps:
+ - material: ReinforcedGlass
+ amount: 2
+ doAfter: 3
+
+ - to: plasmaWindowDirectionalAng
+ steps:
+ - material: PlasmaGlass
+ amount: 2
+ doAfter: 2
+
+ - to: plasmaReinforcedWindowDirectionalAng
+ steps:
+ - material: ReinforcedPlasmaGlass
+ amount: 2
+ doAfter: 3
+
+ - to: uraniumWindowDirectionalAng
+ steps:
+ - material: UraniumGlass
+ amount: 2
+ doAfter: 2
+
+ - to: uraniumReinforcedWindowDirectionalAng
+ steps:
+ - material: ReinforcedUraniumGlass
+ amount: 2
+ doAfter: 3
+
+ - to: windowClockworkDirectionalAng
+ steps:
+ - material: ClockworkGlass
+ amount: 2
+ doAfter: 3
+
+ - node: windowDirectionalAng
+ entity: WindowDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: windowReinforcedDirectionalAng
+ entity: WindowReinforcedDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Prying
+ doAfter: 2
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: plasmaWindowDirectionalAng
+ entity: PlasmaWindowDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetPGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: windowClockworkDirectionalAng
+ entity: WindowClockworkDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetClockworkGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: plasmaReinforcedWindowDirectionalAng
+ entity: PlasmaReinforcedWindowDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRPGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumWindowDirectionalAng
+ entity: UraniumWindowDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetUGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumReinforcedWindowDirectionalAng
+ entity: UraniumReinforcedWindowDirectionalAng
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRUGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+#U-shaped directional window
+- type: constructionGraph
+ id: WindowDirectionalU
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: windowDirectionalU
+ steps:
+ - material: Glass
+ amount: 3
+ doAfter: 2
+
+ - to: windowReinforcedDirectionalU
+ steps:
+ - material: ReinforcedGlass
+ amount: 3
+ doAfter: 3
+
+ - to: plasmaWindowDirectionalU
+ steps:
+ - material: PlasmaGlass
+ amount: 3
+ doAfter: 2
+
+ - to: plasmaReinforcedWindowDirectionalU
+ steps:
+ - material: ReinforcedPlasmaGlass
+ amount: 3
+ doAfter: 3
+
+ - to: uraniumWindowDirectionalU
+ steps:
+ - material: UraniumGlass
+ amount: 3
+ doAfter: 2
+
+ - to: uraniumReinforcedWindowDirectionalU
+ steps:
+ - material: ReinforcedUraniumGlass
+ amount: 3
+ doAfter: 3
+
+ - to: windowClockworkDirectionalU
+ steps:
+ - material: ClockworkGlass
+ amount: 3
+ doAfter: 3
+
+ - node: windowDirectionalU
+ entity: WindowDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: windowReinforcedDirectionalU
+ entity: WindowReinforcedDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Prying
+ doAfter: 2
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: plasmaWindowDirectionalU
+ entity: PlasmaWindowDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetPGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: windowClockworkDirectionalU
+ entity: WindowClockworkDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetClockworkGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: plasmaReinforcedWindowDirectionalU
+ entity: PlasmaReinforcedWindowDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRPGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumWindowDirectionalU
+ entity: UraniumWindowDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetUGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumReinforcedWindowDirectionalU
+ entity: UraniumReinforcedWindowDirectionalU
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRUGlass1
+ amount: 3
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+#double directional window
+- type: constructionGraph
+ id: WindowDirectionalDoub
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: windowDirectionalDoub
+ steps:
+ - material: Glass
+ amount: 2
+ doAfter: 2
+
+ - to: windowReinforcedDirectionalDoub
+ steps:
+ - material: ReinforcedGlass
+ amount: 2
+ doAfter: 3
+
+ - to: plasmaWindowDirectionalDoub
+ steps:
+ - material: PlasmaGlass
+ amount: 2
+ doAfter: 2
+
+ - to: plasmaReinforcedWindowDirectionalDoub
+ steps:
+ - material: ReinforcedPlasmaGlass
+ amount: 2
+ doAfter: 3
+
+ - to: uraniumWindowDirectionalDoub
+ steps:
+ - material: UraniumGlass
+ amount: 2
+ doAfter: 2
+
+ - to: uraniumReinforcedWindowDirectionalDoub
+ steps:
+ - material: ReinforcedUraniumGlass
+ amount: 2
+ doAfter: 3
+
+ - to: windowClockworkDirectionalDoub
+ steps:
+ - material: ClockworkGlass
+ amount: 2
+ doAfter: 3
+
+ - node: windowDirectionalDoub
+ entity: WindowDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: windowReinforcedDirectionalDoub
+ entity: WindowReinforcedDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Prying
+ doAfter: 2
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: plasmaWindowDirectionalDoub
+ entity: PlasmaWindowDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetPGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: windowClockworkDirectionalDoub
+ entity: WindowClockworkDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetClockworkGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: plasmaReinforcedWindowDirectionalDoub
+ entity: PlasmaReinforcedWindowDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRPGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumWindowDirectionalDoub
+ entity: UraniumWindowDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetUGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumReinforcedWindowDirectionalDoub
+ entity: UraniumReinforcedWindowDirectionalDoub
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRUGlass1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+#O-shaped window
+- type: constructionGraph
+ id: WindowDirectionalO
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: windowDirectionalO
+ steps:
+ - material: Glass
+ amount: 4
+ doAfter: 2
+
+ - to: windowReinforcedDirectionalO
+ steps:
+ - material: ReinforcedGlass
+ amount: 4
+ doAfter: 3
+
+ - to: plasmaWindowDirectionalO
+ steps:
+ - material: PlasmaGlass
+ amount: 4
+ doAfter: 2
+
+ - to: plasmaReinforcedWindowDirectionalO
+ steps:
+ - material: ReinforcedPlasmaGlass
+ amount: 4
+ doAfter: 3
+
+ - to: uraniumWindowDirectionalO
+ steps:
+ - material: UraniumGlass
+ amount: 4
+ doAfter: 2
+
+ - to: uraniumReinforcedWindowDirectionalO
+ steps:
+ - material: ReinforcedUraniumGlass
+ amount: 4
+ doAfter: 3
+
+ - to: windowClockworkDirectionalO
+ steps:
+ - material: ClockworkGlass
+ amount: 4
+ doAfter: 3
+
+ - node: windowDirectionalO
+ entity: WindowDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: windowReinforcedDirectionalO
+ entity: WindowReinforcedDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 1
+ - tool: Prying
+ doAfter: 2
+ - tool: Screwing
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 2
+
+ - node: plasmaWindowDirectionalO
+ entity: PlasmaWindowDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetPGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: windowClockworkDirectionalO
+ entity: WindowClockworkDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetClockworkGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: plasmaReinforcedWindowDirectionalO
+ entity: PlasmaReinforcedWindowDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRPGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumWindowDirectionalO
+ entity: UraniumWindowDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetUGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
+
+ - node: uraniumReinforcedWindowDirectionalO
+ entity: UraniumReinforcedWindowDirectionalO
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRUGlass1
+ amount: 4
+ - !type:DeleteEntity {}
+ steps:
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Screwing
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 3
diff --git a/Resources/Prototypes/SS220/Recipes/Construction/Structures/directionalwindows.yml b/Resources/Prototypes/SS220/Recipes/Construction/Structures/directionalwindows.yml
new file mode 100644
index 000000000000..d72c7993cd3f
--- /dev/null
+++ b/Resources/Prototypes/SS220/Recipes/Construction/Structures/directionalwindows.yml
@@ -0,0 +1,507 @@
+#angular directional window
+- type: construction
+ name: directional window angular
+ id: WindowDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: windowDirectionalAng
+ category: construction-category-structures
+ description: Clear.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced window angular
+ id: WindowReinforcedDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: windowReinforcedDirectionalAng
+ category: construction-category-structures
+ description: Clear but tough.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional clockwork window angular
+ id: WindowClockworkDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: windowClockworkDirectionalAng
+ category: construction-category-structures
+ description: Clear and tough, with a golden tint.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: clock_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional plasma window angular
+ id: PlasmaWindowDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: plasmaWindowDirectionalAng
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Clear and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: plasma_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced plasma window angular
+ id: PlasmaReinforcedWindowDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: plasmaReinforcedWindowDirectionalAng
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: plasma_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional uranium window angular
+ id: UraniumWindowDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: uraniumWindowDirectionalAng
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: uranium_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced uranium window angular
+ id: UraniumReinforcedWindowDirectionalAng
+ graph: WindowDirectionalAng
+ startNode: start
+ targetNode: uraniumReinforcedWindowDirectionalAng
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/angular.rsi
+ state: uranium_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+#U-shaped directional window
+- type: construction
+ name: directional window u-shaped
+ id: WindowDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: windowDirectionalU
+ category: construction-category-structures
+ description: Clear.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced window u-shaped
+ id: WindowReinforcedDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: windowReinforcedDirectionalU
+ category: construction-category-structures
+ description: Clear but tough.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional clockwork window u-shaped
+ id: WindowClockworkDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: windowClockworkDirectionalU
+ category: construction-category-structures
+ description: Clear and tough, with a golden tint.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: clock_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional plasma window u-shaped
+ id: PlasmaWindowDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: plasmaWindowDirectionalU
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Clear and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: plasma_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced plasma window u-shaped
+ id: PlasmaReinforcedWindowDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: plasmaReinforcedWindowDirectionalU
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: plasma_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional uranium window u-shaped
+ id: UraniumWindowDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: uraniumWindowDirectionalU
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: uranium_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced uranium window u-shaped
+ id: UraniumReinforcedWindowDirectionalU
+ graph: WindowDirectionalU
+ startNode: start
+ targetNode: uraniumReinforcedWindowDirectionalU
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/U-shaped.rsi
+ state: uranium_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+#double directional window
+- type: construction
+ name: directional window double
+ id: WindowDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: windowDirectionalDoub
+ category: construction-category-structures
+ description: Clear.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced window double
+ id: WindowReinforcedDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: windowReinforcedDirectionalDoub
+ category: construction-category-structures
+ description: Clear but tough.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional clockwork window double
+ id: WindowClockworkDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: windowClockworkDirectionalDoub
+ category: construction-category-structures
+ description: Clear and tough, with a golden tint.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: clock_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional plasma window double
+ id: PlasmaWindowDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: plasmaWindowDirectionalDoub
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Clear and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: plasma_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced plasma window double
+ id: PlasmaReinforcedWindowDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: plasmaReinforcedWindowDirectionalDoub
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: plasma_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional uranium window double
+ id: UraniumWindowDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: uraniumWindowDirectionalDoub
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: uranium_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced uranium window double
+ id: UraniumReinforcedWindowDirectionalDoub
+ graph: WindowDirectionalDoub
+ startNode: start
+ targetNode: uraniumReinforcedWindowDirectionalDoub
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/double.rsi
+ state: uranium_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+#O-shaped window
+- type: construction
+ name: directional window o-shaped
+ id: WindowDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: windowDirectionalO
+ category: construction-category-structures
+ description: Clear.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced window o-shaped
+ id: WindowReinforcedDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: windowReinforcedDirectionalO
+ category: construction-category-structures
+ description: Clear but tough.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional clockwork window o-shaped
+ id: WindowClockworkDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: windowClockworkDirectionalO
+ category: construction-category-structures
+ description: Clear and tough, with a golden tint.
+ canBuildInImpassable: true
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: clock_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional plasma window o-shaped
+ id: PlasmaWindowDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: plasmaWindowDirectionalO
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Clear and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: plasma_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced plasma window o-shaped
+ id: PlasmaReinforcedWindowDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: plasmaReinforcedWindowDirectionalO
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a purple tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: plasma_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional uranium window o-shaped
+ id: UraniumWindowDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: uraniumWindowDirectionalO
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: uranium_window
+ objectType: Structure
+ placementMode: SnapgridCenter
+
+- type: construction
+ name: directional reinforced uranium window o-shaped
+ id: UraniumReinforcedWindowDirectionalO
+ graph: WindowDirectionalO
+ startNode: start
+ targetNode: uraniumReinforcedWindowDirectionalO
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Fire resistant and even tougher, with a green tint.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: SS220/Structures/Windows/directionals/O-shaped.rsi
+ state: uranium_reinforced_window
+ objectType: Structure
+ placementMode: SnapgridCenter
diff --git a/Resources/Prototypes/SS220/Recipes/Lathes/devices.yml b/Resources/Prototypes/SS220/Recipes/Lathes/devices.yml
index d5d1c9d82b76..2345dde71244 100644
--- a/Resources/Prototypes/SS220/Recipes/Lathes/devices.yml
+++ b/Resources/Prototypes/SS220/Recipes/Lathes/devices.yml
@@ -3,17 +3,17 @@
result: ThermalVisorRND
completetime: 4
materials:
- Steel: 200
- Glass: 100
- Plasma: 200
- Plastic: 100
+ Steel: 500
+ Glass: 300
+ Plasma: 600
+ Plastic: 400
- type: latheRecipe
id: ClothingEyesThermalGlassesSecurity
result: ClothingEyesThermalGlassesSecurity
completetime: 4
materials:
- Steel: 400
- Glass: 300
- Plasma: 200
- Plastic: 100
+ Steel: 800
+ Glass: 400
+ Plasma: 600
+ Plastic: 400
diff --git a/Resources/Prototypes/SS220/Stacks/floor_tile_stacks.yml b/Resources/Prototypes/SS220/Stacks/floor_tile_stacks.yml
index eeb00f62670d..226ff75adda5 100644
--- a/Resources/Prototypes/SS220/Stacks/floor_tile_stacks.yml
+++ b/Resources/Prototypes/SS220/Stacks/floor_tile_stacks.yml
@@ -154,3 +154,59 @@
name: tile red wood floor
spawn: FloorTileItemWoodTileRed
maxCount: 30
+
+# Carpet
+
+- type: stack
+ id: FloorTileStackCarpetWhite
+ name: white carpet floor
+ spawn: FloorTileItemCarpetWhite
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetBlack
+ name: black carpet floor
+ spawn: FloorTileItemCarpetBlack
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetBlue
+ name: blue carpet floor
+ spawn: FloorTileItemCarpetBlue
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetOrange
+ name: orange carpet floor
+ spawn: FloorTileItemCarpetOrange
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetCyan
+ name: cyan carpet floor
+ spawn: FloorTileItemCarpetCyan
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetMagenta
+ name: magenta carpet floor
+ spawn: FloorTileItemCarpetMagenta
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetGreen
+ name: green carpet floor
+ spawn: FloorTileItemCarpetGreen
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetPurple
+ name: purple carpet floor
+ spawn: FloorTileItemCarpetPurple
+ maxCount: 30
+
+- type: stack
+ id: FloorTileStackCarpetRed
+ name: red carpet floor
+ spawn: FloorTileItemCarpetRed
+ maxCount: 30
diff --git a/Resources/Prototypes/SS220/Tiles/floors.yml b/Resources/Prototypes/SS220/Tiles/floors.yml
index 3098bd97026e..59eb0cb1065f 100644
--- a/Resources/Prototypes/SS220/Tiles/floors.yml
+++ b/Resources/Prototypes/SS220/Tiles/floors.yml
@@ -682,3 +682,192 @@
collection: FootstepTile
itemDrop: ShardGlass
heatCapacity: 10000
+
+###################
+- type: tile
+ id: FloorTileCarpetWhite
+ name: carpet-white
+ sprite: /Textures/SS220/Tiles/carpetwhite.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetWhite
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetBlack
+ name: carpet-black
+ sprite: /Textures/SS220/Tiles/carpetblack.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetBlack
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetRed
+ name: carpet-red
+ sprite: /Textures/SS220/Tiles/carpetred.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetRed
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetMagenta
+ name: carpet-magenta
+ sprite: /Textures/SS220/Tiles/carpetmagenta.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetMagenta
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetPurple
+ name: carpet-purple
+ sprite: /Textures/SS220/Tiles/carpetpurple.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetPurple
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetBlue
+ name: carpet-blue
+ sprite: /Textures/SS220/Tiles/carpetblue.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetBlue
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetCyan
+ name: carpet-cyan
+ sprite: /Textures/SS220/Tiles/carpetcyan.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetCyan
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetGreen
+ name: carpet-green
+ sprite: /Textures/SS220/Tiles/carpetgreen.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetGreen
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileCarpetOrange
+ name: carpet-orange
+ sprite: /Textures/SS220/Tiles/carpetorange.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepCarpet
+ barestepSounds:
+ collection: BarestepCarpet
+ friction: 0.25
+ itemDrop: FloorTileItemCarpetOrange
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorTileMud
+ name: tiles-mud
+ sprite: /Textures/SS220/Tiles/mud.png
+ baseTurf: FloorDirt
+ isSubfloor: false
+ footstepSounds:
+ collection: FootstepGrass
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorRocks
+ name: tiles-rocks
+ sprite: /Textures/SS220/Tiles/rocks.png
+ variants: 9
+ placementVariants:
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.09
+ baseTurf: FloorDirt
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepTile
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorWasteland
+ name: tiles-wasteland
+ sprite: /Textures/SS220/Tiles/wasteland.png
+ variants: 9
+ placementVariants:
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.09
+ baseTurf: FloorDirt
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepTile
+ heatCapacity: 10000
+###################
diff --git a/Resources/Prototypes/SS220/Tiles/planet.yml b/Resources/Prototypes/SS220/Tiles/planet.yml
new file mode 100644
index 000000000000..00a11abc9c65
--- /dev/null
+++ b/Resources/Prototypes/SS220/Tiles/planet.yml
@@ -0,0 +1,113 @@
+- type: entity
+ id: FloorDirtyWaterEntity
+ name: грязная вода
+ description: Пить это явно не стоит...
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Wall
+ components:
+ - type: FloorOccluder
+ - type: Transform
+ anchored: true
+ - type: SyncSprite
+ - type: Clickable
+ - type: Sprite
+ sprite: SS220/Tiles/Planet/dirty_water.rsi
+ drawdepth: BelowFloor
+ layers:
+ - state: dirty_water
+ - type: SolutionContainerManager
+ solutions:
+ pool:
+ maxVol: 9999999 #.inf seems to break the whole yaml file, but would definitely be preferable.
+ reagents:
+ - ReagentId: Water
+ Quantity: 9999999
+ - type: SolutionRegeneration
+ solution: tank
+ generated:
+ reagents:
+ - ReagentId: Water
+ Quantity: 100
+ - type: DrainableSolution
+ solution: pool
+ - type: SpeedModifierContacts
+ walkSpeedModifier: 0.5
+ sprintSpeedModifier: 0.5
+ - type: Physics
+ bodyType: Static
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.5,0.5,0.5"
+ layer:
+ - SlipLayer
+ mask:
+ - ItemMask
+ density: 1000
+ hard: false
+ - type: FootstepModifier
+ footstepSoundCollection:
+ collection: FootstepWater
+ params:
+ volume: 8
+
+- type: entity
+ id: FloorStagnantDirtyWaterEntity
+ name: грязная вода
+ description: Пить это явно не стоит...
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Wall
+ components:
+ - type: FloorOccluder
+ - type: Transform
+ anchored: true
+ - type: SyncSprite
+ - type: Clickable
+ - type: Sprite
+ sprite: SS220/Tiles/Planet/stagnant_water.rsi
+ drawdepth: BelowFloor
+ layers:
+ - state: stagnant_water
+ - type: SolutionContainerManager
+ solutions:
+ pool:
+ maxVol: 9999999 #.inf seems to break the whole yaml file, but would definitely be preferable.
+ reagents:
+ - ReagentId: Water
+ Quantity: 9999999
+ - type: SolutionRegeneration
+ solution: tank
+ generated:
+ reagents:
+ - ReagentId: Water
+ Quantity: 100
+ - type: DrainableSolution
+ solution: pool
+ - type: SpeedModifierContacts
+ walkSpeedModifier: 0.5
+ sprintSpeedModifier: 0.5
+ - type: Physics
+ bodyType: Static
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.5,0.5,0.5"
+ layer:
+ - SlipLayer
+ mask:
+ - ItemMask
+ density: 1000
+ hard: false
+ - type: FootstepModifier
+ footstepSoundCollection:
+ collection: FootstepWater
+ params:
+ volume: 8
diff --git a/Resources/Prototypes/Stacks/consumable_stacks.yml b/Resources/Prototypes/Stacks/consumable_stacks.yml
index e7feab7b5202..63927a4029fe 100644
--- a/Resources/Prototypes/Stacks/consumable_stacks.yml
+++ b/Resources/Prototypes/Stacks/consumable_stacks.yml
@@ -36,21 +36,21 @@
name: ground tobacco
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: GroundTobacco
- maxCount: 5
+ maxCount: 1 #SS220-Snuff-box
- type: stack
id: GroundCannabis
name: ground cannabis
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: GroundCannabis
- maxCount:
+ maxCount: 1 #SS220-Snuff-box
- type: stack
id: GroundCannabisRainbow
name: ground rainbow cannabis
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: powderpile_rainbow }
spawn: GroundCannabisRainbow
- maxCount:
+ maxCount: 1 #SS220-Snuff-box
- type: stack
id: LeavesTobaccoDried
diff --git a/Resources/Prototypes/Voice/speech_verbs.yml b/Resources/Prototypes/Voice/speech_verbs.yml
index 0da9ab653fbe..a134ba992503 100644
--- a/Resources/Prototypes/Voice/speech_verbs.yml
+++ b/Resources/Prototypes/Voice/speech_verbs.yml
@@ -68,7 +68,7 @@
- chat-speech-verb-reptilian-1
- chat-speech-verb-reptilian-2
- chat-speech-verb-reptilian-3
- - chat-speech-verb-insect-2
+ # - chat-speech-verb-insect-2 #ss220 fix
- type: speechVerb
id: Skeleton
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 000000000000..15a340e529f0
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 000000000000..3fc0f784c159
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/icon.png
new file mode 100644
index 000000000000..3536362f63a7
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/icon.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/inhand-left.png
new file mode 100644
index 000000000000..c52b43551706
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/inhand-left.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/inhand-right.png
new file mode 100644
index 000000000000..f4735c9d9de7
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/inhand-right.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/meta.json
new file mode 100644
index 000000000000..c9591ea66bc7
--- /dev/null
+++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/tacticool_s.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt",
+ "copyright": "Sprite by molochk (Discord) for SS220",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "equipped-INNERCLOTHING-monkey",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 000000000000..391dbfc71253
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 000000000000..711744909aa7
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/icon.png
new file mode 100644
index 000000000000..8d288ba9ae48
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/icon.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/inhand-left.png
new file mode 100644
index 000000000000..c52b43551706
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/inhand-left.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/inhand-right.png
new file mode 100644
index 000000000000..f4735c9d9de7
Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/inhand-right.png differ
diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/meta.json
new file mode 100644
index 000000000000..c9591ea66bc7
--- /dev/null
+++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/tacticool.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt",
+ "copyright": "Sprite by molochk (Discord) for SS220",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "equipped-INNERCLOTHING-monkey",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/closed.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/closed.png
new file mode 100644
index 000000000000..3978a9c142c1
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/closed.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/inhand-left.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/inhand-left.png
new file mode 100644
index 000000000000..10fb051f75b0
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/inhand-right.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/inhand-right.png
new file mode 100644
index 000000000000..567d4b07e5c9
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/meta.json b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/meta.json
new file mode 100644
index 000000000000..8594a854ed9b
--- /dev/null
+++ b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/meta.json
@@ -0,0 +1,43 @@
+{
+ "version": 1,
+ "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt",
+ "copyright": "Sprited by Estkemran (Github) for SS220",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "snuff1"
+ },
+ {
+ "name": "snuff2"
+ },
+ {
+ "name": "snuff3"
+ },
+ {
+ "name": "snuff4"
+ },
+ {
+ "name": "snuff5"
+ },
+ {
+ "name": "snuff6"
+ },
+ {
+ "name": "open"
+ },
+ {
+ "name": "closed"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/open.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/open.png
new file mode 100644
index 000000000000..ddb883c8e93d
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/open.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff1.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff1.png
new file mode 100644
index 000000000000..d90cd5853980
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff1.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff2.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff2.png
new file mode 100644
index 000000000000..f38270b03dbe
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff2.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff3.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff3.png
new file mode 100644
index 000000000000..9fae6badff1b
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff3.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff4.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff4.png
new file mode 100644
index 000000000000..f36dc4afe90b
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff4.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff5.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff5.png
new file mode 100644
index 000000000000..01c4b157fc6c
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff5.png differ
diff --git a/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff6.png b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff6.png
new file mode 100644
index 000000000000..13385911d96c
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Consumable/Smokeables/Snuff/snuff-box.rsi/snuff6.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black-inhand-left.png
new file mode 100644
index 000000000000..c1db5dfc067e
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black-inhand-right.png
new file mode 100644
index 000000000000..c9e8455b5058
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black.png
new file mode 100644
index 000000000000..671941d0cb6e
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-black.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue-inhand-left.png
new file mode 100644
index 000000000000..5cde874bfdd6
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue-inhand-right.png
new file mode 100644
index 000000000000..62de62ecc482
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue.png
new file mode 100644
index 000000000000..2603ee0a0aca
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-blue.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan-inhand-left.png
new file mode 100644
index 000000000000..3323c0c47797
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan-inhand-right.png
new file mode 100644
index 000000000000..4fe7b0798565
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan.png
new file mode 100644
index 000000000000..e36e51e92a2e
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-cyan.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green-inhand-left.png
new file mode 100644
index 000000000000..faa2a2f6d7b7
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green-inhand-right.png
new file mode 100644
index 000000000000..e9a7f4c4c7b9
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green.png
new file mode 100644
index 000000000000..ebef0a944830
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-green.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta-inhand-left.png
new file mode 100644
index 000000000000..0665d719b5fe
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta-inhand-right.png
new file mode 100644
index 000000000000..3058b6466beb
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta.png
new file mode 100644
index 000000000000..9969cd7082a1
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-magenta.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange-inhand-left.png
new file mode 100644
index 000000000000..115ad1d53e5e
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange-inhand-right.png
new file mode 100644
index 000000000000..e881c1fafacb
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange.png
new file mode 100644
index 000000000000..90f03818e008
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-orange.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple-inhand-left.png
new file mode 100644
index 000000000000..4cdc76b45a37
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple-inhand-right.png
new file mode 100644
index 000000000000..ea57d49341fd
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple.png
new file mode 100644
index 000000000000..4df47b126a68
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-purple.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red-inhand-left.png
new file mode 100644
index 000000000000..1ff871c585ea
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red-inhand-right.png
new file mode 100644
index 000000000000..fb4f87b32f00
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red.png
new file mode 100644
index 000000000000..2b51f0dea994
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-red.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white-inhand-left.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white-inhand-left.png
new file mode 100644
index 000000000000..38093fafffe5
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white-inhand-left.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white-inhand-right.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white-inhand-right.png
new file mode 100644
index 000000000000..cb65021c607d
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white-inhand-right.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white.png b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white.png
new file mode 100644
index 000000000000..4088eff75215
Binary files /dev/null and b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/carpet-white.png differ
diff --git a/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/meta.json b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/meta.json
new file mode 100644
index 000000000000..23c0c62ebe51
--- /dev/null
+++ b/Resources/Textures/SS220/Objects/Tiles/tile_sh.rsi/meta.json
@@ -0,0 +1,110 @@
+{
+ "version": 1,
+ "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt",
+ "copyright": "Sprited by Estkemran (Github) for SS220",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "carpet-black"
+ },
+ {
+ "name": "carpet-blue"
+ },
+ {
+ "name": "carpet-green"
+ },
+ {
+ "name": "carpet-orange"
+ },
+ {
+ "name": "carpet-purple"
+ },
+ {
+ "name": "carpet-red"
+ },
+ {
+ "name": "carpet-cyan"
+ },
+ {
+ "name": "carpet-white"
+ },
+ {
+ "name": "carpet-magenta"
+ },
+ {
+ "name": "carpet-black-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-black-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-blue-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-blue-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-green-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-green-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-orange-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-orange-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-purple-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-purple-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-red-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-red-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-magenta-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-magenta-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-cyan-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-cyan-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "carpet-white-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "carpet-white-inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/clock_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/clock_window.png
new file mode 100644
index 000000000000..6457abfd3e2a
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/clock_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/frosted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/frosted_window.png
new file mode 100644
index 000000000000..1cfcb8054656
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/frosted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/meta.json
new file mode 100644
index 000000000000..d561fbaed329
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/meta.json
@@ -0,0 +1,47 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from skyrat-tg at commit https://github.com/Skyrat-SS13/Skyrat-tg/commit/639e77f6e957bce88d9734b4b97b249738af42b1, uranium windows made via edit by SphiraI(github), clockwork windows from https://github.com/tgstation/tgstation/blob/21b42d49ecf2b87f665b5f122368f6a247676721/icons/obj/smooth_structures/structure_variations.dmi, O-shaped version and resprited uranium windows for SS220 by NightmareStalker(GitHub)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "window",
+ "directions": 1
+ },
+ {
+ "name": "reinforced_window",
+ "directions": 1
+ },
+ {
+ "name": "tinted_window",
+ "directions": 1
+ },
+ {
+ "name": "frosted_window",
+ "directions": 1
+ },
+ {
+ "name": "clock_window",
+ "directions": 1
+ },
+ {
+ "name": "plasma_window",
+ "directions": 1
+ },
+ {
+ "name": "plasma_reinforced_window",
+ "directions": 1
+ },
+ {
+ "name": "uranium_window",
+ "directions": 1
+ },
+ {
+ "name": "uranium_reinforced_window",
+ "directions": 1
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/plasma_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/plasma_reinforced_window.png
new file mode 100644
index 000000000000..957ad21b78a4
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/plasma_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/plasma_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/plasma_window.png
new file mode 100644
index 000000000000..fc018ba65e93
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/plasma_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/reinforced_window.png
new file mode 100644
index 000000000000..247f992a646a
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/tinted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/tinted_window.png
new file mode 100644
index 000000000000..1cfcb8054656
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/tinted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/uranium_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/uranium_reinforced_window.png
new file mode 100644
index 000000000000..b8d52dc0f44f
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/uranium_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/uranium_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/uranium_window.png
new file mode 100644
index 000000000000..f71b552c8a14
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/uranium_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/window.png b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/window.png
new file mode 100644
index 000000000000..eacdd51d9686
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/O-shaped.rsi/window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/clock_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/clock_window.png
new file mode 100644
index 000000000000..be9b01437d00
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/clock_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/frosted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/frosted_window.png
new file mode 100644
index 000000000000..9fc5061e59fd
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/frosted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/meta.json
new file mode 100644
index 000000000000..5414656646e4
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/meta.json
@@ -0,0 +1,47 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from skyrat-tg at commit https://github.com/Skyrat-SS13/Skyrat-tg/commit/639e77f6e957bce88d9734b4b97b249738af42b1, uranium windows made via edit by SphiraI(github), clockwork windows from https://github.com/tgstation/tgstation/blob/21b42d49ecf2b87f665b5f122368f6a247676721/icons/obj/smooth_structures/structure_variations.dmi, U-shaped version and resprited uranium windows for SS220 by NightmareStalker(GitHub)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "window",
+ "directions": 4
+ },
+ {
+ "name": "reinforced_window",
+ "directions": 4
+ },
+ {
+ "name": "tinted_window",
+ "directions": 4
+ },
+ {
+ "name": "frosted_window",
+ "directions": 4
+ },
+ {
+ "name": "clock_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_reinforced_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_reinforced_window",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/plasma_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/plasma_reinforced_window.png
new file mode 100644
index 000000000000..4cf0116a6169
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/plasma_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/plasma_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/plasma_window.png
new file mode 100644
index 000000000000..dc27d9a12779
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/plasma_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/reinforced_window.png
new file mode 100644
index 000000000000..80402c727adb
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/tinted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/tinted_window.png
new file mode 100644
index 000000000000..9fc5061e59fd
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/tinted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/uranium_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/uranium_reinforced_window.png
new file mode 100644
index 000000000000..a5325ef41040
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/uranium_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/uranium_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/uranium_window.png
new file mode 100644
index 000000000000..5952556bcbb9
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/uranium_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/window.png b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/window.png
new file mode 100644
index 000000000000..010322fc2b33
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/U-shaped.rsi/window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/clock_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/clock_window.png
new file mode 100644
index 000000000000..c42033bfc6cf
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/clock_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/frosted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/frosted_window.png
new file mode 100644
index 000000000000..d5801d0149ca
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/frosted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/meta.json
new file mode 100644
index 000000000000..9bcf2f333005
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/meta.json
@@ -0,0 +1,47 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from skyrat-tg at commit https://github.com/Skyrat-SS13/Skyrat-tg/commit/639e77f6e957bce88d9734b4b97b249738af42b1, uranium windows made via edit by SphiraI(github), clockwork windows from https://github.com/tgstation/tgstation/blob/21b42d49ecf2b87f665b5f122368f6a247676721/icons/obj/smooth_structures/structure_variations.dmi, angular version and resprited uranium windows for SS220 by NightmareStalker(GitHub)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "window",
+ "directions": 4
+ },
+ {
+ "name": "reinforced_window",
+ "directions": 4
+ },
+ {
+ "name": "tinted_window",
+ "directions": 4
+ },
+ {
+ "name": "frosted_window",
+ "directions": 4
+ },
+ {
+ "name": "clock_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_reinforced_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_reinforced_window",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/plasma_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/plasma_reinforced_window.png
new file mode 100644
index 000000000000..acf8e485277e
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/plasma_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/plasma_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/plasma_window.png
new file mode 100644
index 000000000000..1fdabc7e6738
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/plasma_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/reinforced_window.png
new file mode 100644
index 000000000000..587f4e9e00f8
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/tinted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/tinted_window.png
new file mode 100644
index 000000000000..d5801d0149ca
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/tinted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/uranium_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/uranium_reinforced_window.png
new file mode 100644
index 000000000000..8e8c9ec7558f
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/uranium_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/uranium_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/uranium_window.png
new file mode 100644
index 000000000000..ec4206013b01
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/uranium_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/window.png b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/window.png
new file mode 100644
index 000000000000..d55ab4b42a4d
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/angular.rsi/window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_12.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_12.png
new file mode 100644
index 000000000000..dde1356fa948
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_12.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_4.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_4.png
new file mode 100644
index 000000000000..53525e9a6b25
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_4.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_8.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_8.png
new file mode 100644
index 000000000000..a395bc20f227
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/DamageOverlay_8.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/meta.json
new file mode 100644
index 000000000000..2299888418a8
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_ang.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie, modifired for angular directional for SS220 by NightmareStalker(GitHub)",
+ "states": [
+ {
+ "name": "DamageOverlay_4",
+ "directions": 4
+ },
+ {
+ "name": "DamageOverlay_8",
+ "directions": 4
+ },
+ {
+ "name": "DamageOverlay_12",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_12.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_12.png
new file mode 100644
index 000000000000..515caff076e4
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_12.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_4.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_4.png
new file mode 100644
index 000000000000..1164accb02cf
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_4.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_8.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_8.png
new file mode 100644
index 000000000000..e9f6ea6d61c7
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/DamageOverlay_8.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/meta.json
new file mode 100644
index 000000000000..c012828e2fd3
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_doub.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie, modifired for double directional for SS220 by NightmareStalker(GitHub)",
+ "states": [
+ {
+ "name": "DamageOverlay_4",
+ "directions": 4
+ },
+ {
+ "name": "DamageOverlay_8",
+ "directions": 4
+ },
+ {
+ "name": "DamageOverlay_12",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_12.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_12.png
new file mode 100644
index 000000000000..6cb582328cb4
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_12.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_4.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_4.png
new file mode 100644
index 000000000000..48e6b3a16346
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_4.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_8.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_8.png
new file mode 100644
index 000000000000..a5c16a9792b9
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/DamageOverlay_8.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/meta.json
new file mode 100644
index 000000000000..011405373b0c
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_o.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie, modifired for O-shaped directional for SS220 by NightmareStalker(GitHub)",
+ "states": [
+ {
+ "name": "DamageOverlay_4",
+ "directions": 1
+ },
+ {
+ "name": "DamageOverlay_8",
+ "directions": 1
+ },
+ {
+ "name": "DamageOverlay_12",
+ "directions": 1
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_12.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_12.png
new file mode 100644
index 000000000000..f808fb7d86c3
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_12.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_4.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_4.png
new file mode 100644
index 000000000000..aed4c69e4ad8
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_4.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_8.png b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_8.png
new file mode 100644
index 000000000000..29432166ebc6
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/DamageOverlay_8.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/meta.json
new file mode 100644
index 000000000000..7b2a58526fa9
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/cracks_directional_u.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie, modifired for U-shaped directional for SS220 by NightmareStalker(GitHub)",
+ "states": [
+ {
+ "name": "DamageOverlay_4",
+ "directions": 4
+ },
+ {
+ "name": "DamageOverlay_8",
+ "directions": 4
+ },
+ {
+ "name": "DamageOverlay_12",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/clock_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/clock_window.png
new file mode 100644
index 000000000000..d707095ff4d3
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/clock_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/frosted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/frosted_window.png
new file mode 100644
index 000000000000..99f3d26cae71
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/frosted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/meta.json b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/meta.json
new file mode 100644
index 000000000000..078dc79b839d
--- /dev/null
+++ b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/meta.json
@@ -0,0 +1,47 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from skyrat-tg at commit https://github.com/Skyrat-SS13/Skyrat-tg/commit/639e77f6e957bce88d9734b4b97b249738af42b1, uranium windows made via edit by SphiraI(github), clockwork windows from https://github.com/tgstation/tgstation/blob/21b42d49ecf2b87f665b5f122368f6a247676721/icons/obj/smooth_structures/structure_variations.dmi, double version and resprited uranium windows for SS220 by NightmareStalker(GitHub)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "window",
+ "directions": 4
+ },
+ {
+ "name": "reinforced_window",
+ "directions": 4
+ },
+ {
+ "name": "tinted_window",
+ "directions": 4
+ },
+ {
+ "name": "frosted_window",
+ "directions": 4
+ },
+ {
+ "name": "clock_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_reinforced_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_reinforced_window",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/plasma_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/plasma_reinforced_window.png
new file mode 100644
index 000000000000..1bf19ddf7a99
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/plasma_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/plasma_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/plasma_window.png
new file mode 100644
index 000000000000..200c5d6c2f9e
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/plasma_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/reinforced_window.png
new file mode 100644
index 000000000000..bdba7dddaafe
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/tinted_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/tinted_window.png
new file mode 100644
index 000000000000..99f3d26cae71
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/tinted_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/uranium_reinforced_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/uranium_reinforced_window.png
new file mode 100644
index 000000000000..3e0761bdc850
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/uranium_reinforced_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/uranium_window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/uranium_window.png
new file mode 100644
index 000000000000..cd9798132de3
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/uranium_window.png differ
diff --git a/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/window.png b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/window.png
new file mode 100644
index 000000000000..7252bb9c0aac
Binary files /dev/null and b/Resources/Textures/SS220/Structures/Windows/directionals/double.rsi/window.png differ
diff --git a/Resources/Textures/SS220/Tiles/Planet/dirty_water.rsi/dirty_water.png b/Resources/Textures/SS220/Tiles/Planet/dirty_water.rsi/dirty_water.png
new file mode 100644
index 000000000000..f6b02294bc28
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/Planet/dirty_water.rsi/dirty_water.png differ
diff --git a/Resources/Textures/SS220/Tiles/Planet/dirty_water.rsi/meta.json b/Resources/Textures/SS220/Tiles/Planet/dirty_water.rsi/meta.json
new file mode 100644
index 000000000000..d86c2c91c0fb
--- /dev/null
+++ b/Resources/Textures/SS220/Tiles/Planet/dirty_water.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "https://github.com/Citadel-Station-13/Citadel-Station-13-RP/tree/2ac1c566b89a6862c46380de02700c7c0d21a10d/icons/turf, recolored by kit0vras (Github)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "dirty_water",
+ "delays": [
+ [
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/SS220/Tiles/Planet/stagnant_water.rsi/meta.json b/Resources/Textures/SS220/Tiles/Planet/stagnant_water.rsi/meta.json
new file mode 100644
index 000000000000..48bd30440008
--- /dev/null
+++ b/Resources/Textures/SS220/Tiles/Planet/stagnant_water.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from Shiptest at https://github.com/shiptest-ss13/Shiptest/blob/5c297839a311a630af630ffcf920d0fa8adc3ae6/icons/turf/floors.dmi",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "stagnant_water"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/SS220/Tiles/Planet/stagnant_water.rsi/stagnant_water.png b/Resources/Textures/SS220/Tiles/Planet/stagnant_water.rsi/stagnant_water.png
new file mode 100644
index 000000000000..65cb5d71e9a4
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/Planet/stagnant_water.rsi/stagnant_water.png differ
diff --git a/Resources/Textures/SS220/Tiles/attributions.yml b/Resources/Textures/SS220/Tiles/attributions.yml
index fce82502a64d..c0f69f749b9f 100644
--- a/Resources/Textures/SS220/Tiles/attributions.yml
+++ b/Resources/Textures/SS220/Tiles/attributions.yml
@@ -37,3 +37,13 @@
license: "CC0-1.0"
copyright: "tgstation commit 8abb19545828230d92ba18827feeb42a67a55d49, rglass modified by github user @notquitehadouken, modified by github user @Kit0vras."
source: "https://github.com/space-wizards/space-station-14/pull/17948"
+
+- files: ["wasteland.png", "mud.png", "rocks.png"]
+ license: "CC0-1.0"
+ copyright: "Taken from Shiptest at https://github.com/shiptest-ss13/Shiptest/blob/5c297839a311a630af630ffcf920d0fa8adc3ae6/icons/turf/floors.dmi, rocks are recolored wasteland tile."
+ source: "https://github.com/SerbiaStrong-220/space-station-14/pull/1052" #Чтобы не вызывало ошибок, потом сменить
+
+- files: ["carpetwhite.png", "carpetred.png", "carpetpurple.png", "carpetorange.png", "carpetmagenta.png", "carpetgreen.png", "carpetcyan.png", "carpetblue.png", "carpetblack.png"]
+ license: "Custom"
+ copyright: "Created by github user @Kit0vras. EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt"
+ source: "https://github.com/SerbiaStrong-220/space-station-14/pull/1052"
diff --git a/Resources/Textures/SS220/Tiles/carpetblack.png b/Resources/Textures/SS220/Tiles/carpetblack.png
new file mode 100644
index 000000000000..22ee3ad91ac1
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetblack.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetblue.png b/Resources/Textures/SS220/Tiles/carpetblue.png
new file mode 100644
index 000000000000..60232ec847f1
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetblue.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetcyan.png b/Resources/Textures/SS220/Tiles/carpetcyan.png
new file mode 100644
index 000000000000..2e2245eaa626
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetcyan.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetgreen.png b/Resources/Textures/SS220/Tiles/carpetgreen.png
new file mode 100644
index 000000000000..5822533e3ea0
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetgreen.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetmagenta.png b/Resources/Textures/SS220/Tiles/carpetmagenta.png
new file mode 100644
index 000000000000..3af0816c6097
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetmagenta.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetorange.png b/Resources/Textures/SS220/Tiles/carpetorange.png
new file mode 100644
index 000000000000..800699e86d27
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetorange.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetpurple.png b/Resources/Textures/SS220/Tiles/carpetpurple.png
new file mode 100644
index 000000000000..a7b26717e350
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetpurple.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetred.png b/Resources/Textures/SS220/Tiles/carpetred.png
new file mode 100644
index 000000000000..05985288b2eb
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetred.png differ
diff --git a/Resources/Textures/SS220/Tiles/carpetwhite.png b/Resources/Textures/SS220/Tiles/carpetwhite.png
new file mode 100644
index 000000000000..e119d29043b3
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/carpetwhite.png differ
diff --git a/Resources/Textures/SS220/Tiles/mud.png b/Resources/Textures/SS220/Tiles/mud.png
new file mode 100644
index 000000000000..1bf43cd5cd40
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/mud.png differ
diff --git a/Resources/Textures/SS220/Tiles/rocks.png b/Resources/Textures/SS220/Tiles/rocks.png
new file mode 100644
index 000000000000..24644e4147da
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/rocks.png differ
diff --git a/Resources/Textures/SS220/Tiles/wasteland.png b/Resources/Textures/SS220/Tiles/wasteland.png
new file mode 100644
index 000000000000..f3d103899c89
Binary files /dev/null and b/Resources/Textures/SS220/Tiles/wasteland.png differ
diff --git a/Resources/Textures/Structures/Windows/directional.rsi/meta.json b/Resources/Textures/Structures/Windows/directional.rsi/meta.json
index 7fbbd82344a5..8d39d44c09a3 100644
--- a/Resources/Textures/Structures/Windows/directional.rsi/meta.json
+++ b/Resources/Textures/Structures/Windows/directional.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from skyrat-tg at commit https://github.com/Skyrat-SS13/Skyrat-tg/commit/639e77f6e957bce88d9734b4b97b249738af42b1, uranium windows made via edit by SphiraI(github), clockwork windows from https://github.com/tgstation/tgstation/blob/21b42d49ecf2b87f665b5f122368f6a247676721/icons/obj/smooth_structures/structure_variations.dmi",
+ "copyright": "Taken from skyrat-tg at commit https://github.com/Skyrat-SS13/Skyrat-tg/commit/639e77f6e957bce88d9734b4b97b249738af42b1, uranium windows made via edit by SphiraI(github), clockwork windows from https://github.com/tgstation/tgstation/blob/21b42d49ecf2b87f665b5f122368f6a247676721/icons/obj/smooth_structures/structure_variations.dmi, resprited uranium windows for SS220 by NightmareStalker(GitHub)",
"size": {
"x": 32,
"y": 32
@@ -23,25 +23,25 @@
"name": "frosted_window",
"directions": 4
},
- {
- "name": "clock_window",
- "directions": 4
- },
- {
- "name": "plasma_window",
- "directions": 4
- },
{
- "name": "plasma_reinforced_window",
- "directions": 4
+ "name": "clock_window",
+ "directions": 4
},
{
- "name": "uranium_window",
- "directions": 4
+ "name": "plasma_window",
+ "directions": 4
+ },
+ {
+ "name": "plasma_reinforced_window",
+ "directions": 4
},
{
- "name": "uranium_reinforced_window",
- "directions": 4
+ "name": "uranium_window",
+ "directions": 4
+ },
+ {
+ "name": "uranium_reinforced_window",
+ "directions": 4
}
]
}
diff --git a/Resources/Textures/Structures/Windows/directional.rsi/uranium_reinforced_window.png b/Resources/Textures/Structures/Windows/directional.rsi/uranium_reinforced_window.png
index 2e5990bd0c65..2546b1ce2c77 100644
Binary files a/Resources/Textures/Structures/Windows/directional.rsi/uranium_reinforced_window.png and b/Resources/Textures/Structures/Windows/directional.rsi/uranium_reinforced_window.png differ
diff --git a/Resources/Textures/Structures/Windows/directional.rsi/uranium_window.png b/Resources/Textures/Structures/Windows/directional.rsi/uranium_window.png
index 8a4661a5f20b..8cec4b7476a7 100644
Binary files a/Resources/Textures/Structures/Windows/directional.rsi/uranium_window.png and b/Resources/Textures/Structures/Windows/directional.rsi/uranium_window.png differ