diff --git a/Content.Client/Nutrition/EntitySystems/InfantSystem.cs b/Content.Client/Nutrition/EntitySystems/InfantSystem.cs
new file mode 100644
index 00000000000..dbda75c58fd
--- /dev/null
+++ b/Content.Client/Nutrition/EntitySystems/InfantSystem.cs
@@ -0,0 +1,34 @@
+using Content.Shared.Nutrition.AnimalHusbandry;
+using Robust.Client.GameObjects;
+
+namespace Content.Client.Nutrition.EntitySystems;
+
+///
+/// This handles visuals for
+///
+public sealed class InfantSystem : EntitySystem
+{
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnStartup);
+ SubscribeLocalEvent(OnShutdown);
+ }
+
+ private void OnStartup(EntityUid uid, InfantComponent component, ComponentStartup args)
+ {
+ if (!TryComp(uid, out var sprite))
+ return;
+
+ component.DefaultScale = sprite.Scale;
+ sprite.Scale = component.VisualScale;
+ }
+
+ private void OnShutdown(EntityUid uid, InfantComponent component, ComponentShutdown args)
+ {
+ if (!TryComp(uid, out var sprite))
+ return;
+
+ sprite.Scale = component.DefaultScale;
+ }
+}
diff --git a/Content.Server/Nutrition/EntitySystems/AnimalHusbandrySystem.cs b/Content.Server/Nutrition/EntitySystems/AnimalHusbandrySystem.cs
new file mode 100644
index 00000000000..1a9167182f1
--- /dev/null
+++ b/Content.Server/Nutrition/EntitySystems/AnimalHusbandrySystem.cs
@@ -0,0 +1,253 @@
+using Content.Server.Administration.Logs;
+using Content.Server.Interaction.Components;
+using Content.Server.Mind.Components;
+using Content.Server.Nutrition.Components;
+using Content.Server.Popups;
+using Content.Shared.Database;
+using Content.Shared.IdentityManagement;
+using Content.Shared.Mobs.Systems;
+using Content.Shared.Nutrition.AnimalHusbandry;
+using Content.Shared.Nutrition.Components;
+using Content.Shared.Nutrition.EntitySystems;
+using Content.Shared.Storage;
+using Robust.Server.GameObjects;
+using Robust.Shared.Random;
+using Robust.Shared.Timing;
+
+namespace Content.Server.Nutrition.EntitySystems;
+
+///
+/// This handles logic and interactions related to
+///
+public sealed class AnimalHusbandrySystem : EntitySystem
+{
+ [Dependency] private readonly IAdminLogManager _adminLog = default!;
+ [Dependency] private readonly IGameTiming _timing = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly EntityLookupSystem _entityLookup = default!;
+ [Dependency] private readonly HungerSystem _hunger = default!;
+ [Dependency] private readonly MetaDataSystem _metaData = default!;
+ [Dependency] private readonly MobStateSystem _mobState = default!;
+ [Dependency] private readonly PopupSystem _popup = default!;
+ [Dependency] private readonly SharedAudioSystem _audio = default!;
+
+ private readonly HashSet _failedAttempts = new();
+
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnUnpaused);
+ SubscribeLocalEvent(OnMindAdded);
+ SubscribeLocalEvent(OnInfantUnpaused);
+ SubscribeLocalEvent(OnInfantStartup);
+ SubscribeLocalEvent(OnInfantShutdown);
+ }
+
+ private void OnUnpaused(EntityUid uid, ReproductiveComponent component, ref EntityUnpausedEvent args)
+ {
+ component.NextBreedAttempt += args.PausedTime;
+ }
+
+ private void OnInfantUnpaused(EntityUid uid, InfantComponent component, ref EntityUnpausedEvent args)
+ {
+ component.InfantEndTime += args.PausedTime;
+ }
+
+ // we express EZ-pass terminate the pregnancy if a player takes the role
+ private void OnMindAdded(EntityUid uid, ReproductiveComponent component, MindAddedMessage args)
+ {
+ component.Gestating = false;
+ component.GestationEndTime = null;
+ }
+
+ private void OnInfantStartup(EntityUid uid, InfantComponent component, ComponentStartup args)
+ {
+ var meta = MetaData(uid);
+ component.OriginalName = meta.EntityName;
+ _metaData.SetEntityName(uid, Loc.GetString("infant-name-prefix", ("name", meta.EntityName)), meta);
+ }
+
+ private void OnInfantShutdown(EntityUid uid, InfantComponent component, ComponentShutdown args)
+ {
+ _metaData.SetEntityName(uid, component.OriginalName);
+ }
+
+ ///
+ /// Attempts to breed the entity with a valid
+ /// partner nearby.
+ ///
+ public bool TryReproduceNearby(EntityUid uid, ReproductiveComponent? component = null)
+ {
+ if (!Resolve(uid, ref component))
+ return false;
+
+ var xform = Transform(uid);
+ var partners = _entityLookup.GetComponentsInRange(xform.Coordinates, component.BreedRange);
+ foreach (var comp in partners)
+ {
+ var partner = comp.Owner;
+ if (TryReproduce(uid, partner, component))
+ return true;
+
+ // exit early if a valid attempt failed
+ if (_failedAttempts.Contains(uid))
+ return false;
+ }
+ return false;
+ }
+
+ ///
+ /// Attempts to breed an entity with
+ /// the specified partner.
+ ///
+ public bool TryReproduce(EntityUid uid, EntityUid partner, ReproductiveComponent? component = null)
+ {
+ if (!Resolve(uid, ref component))
+ return false;
+
+ if (uid == partner)
+ return false;
+
+ if (!CanReproduce(uid, component))
+ return false;
+
+ if (!IsValidPartner(uid, partner, component))
+ return false;
+
+ // if the partner is valid, yet it fails the random check
+ // invalidate the entity from further attempts this tick
+ // in order to reduce total possible pairs.
+ if (!_random.Prob(component.BreedChance))
+ {
+ _failedAttempts.Add(uid);
+ _failedAttempts.Add(partner);
+ return false;
+ }
+
+ // this is kinda wack but it's the only sound associated with most animals
+ if (TryComp(uid, out var interactionPopup))
+ _audio.PlayPvs(interactionPopup.InteractSuccessSound, uid);
+
+ _hunger.ModifyHunger(uid, -component.HungerPerBirth);
+ _hunger.ModifyHunger(partner, -component.HungerPerBirth);
+
+ component.GestationEndTime = _timing.CurTime + component.GestationDuration;
+ component.Gestating = true;
+ _adminLog.Add(LogType.Action, $"{ToPrettyString(uid)} (carrier) and {ToPrettyString(partner)} (partner) successfully bred.");
+ return true;
+ }
+
+ ///
+ /// Checks if an entity satisfies
+ /// the conditions to be able to breed.
+ ///
+ public bool CanReproduce(EntityUid uid, ReproductiveComponent? component = null)
+ {
+ if (_failedAttempts.Contains(uid))
+ return false;
+
+ if (Resolve(uid, ref component, false) && component.Gestating)
+ return false;
+
+ if (HasComp(uid))
+ return false;
+
+ if (_mobState.IsIncapacitated(uid))
+ return false;
+
+ if (TryComp(uid, out var hunger) && _hunger.GetHungerThreshold(hunger) < HungerThreshold.Okay)
+ return false;
+
+ if (TryComp(uid, out var thirst) && thirst.CurrentThirstThreshold < ThirstThreshold.Okay)
+ return false;
+
+ return true;
+ }
+
+ ///
+ /// Checks if a given entity is a valid partner.
+ /// Does not include the random check, for sane API reasons.
+ ///
+ public bool IsValidPartner(EntityUid uid, EntityUid partner, ReproductiveComponent? component = null)
+ {
+ if (!Resolve(uid, ref component))
+ return false;
+
+ if (!CanReproduce(partner))
+ return false;
+
+ return component.PartnerWhitelist.IsValid(partner);
+ }
+
+ ///
+ /// Gives birth to offspring and
+ /// resets the parent entity.
+ ///
+ public void Birth(EntityUid uid, ReproductiveComponent? component = null)
+ {
+ if (!Resolve(uid, ref component))
+ return;
+
+ // this is kinda wack but it's the only sound associated with most animals
+ if (TryComp(uid, out var interactionPopup))
+ _audio.PlayPvs(interactionPopup.InteractSuccessSound, uid);
+
+ var xform = Transform(uid);
+ var spawns = EntitySpawnCollection.GetSpawns(component.Offspring, _random);
+ foreach (var spawn in spawns)
+ {
+ var offspring = Spawn(spawn, xform.Coordinates.Offset(_random.NextVector2(0.3f)));
+ if (component.MakeOffspringInfant)
+ {
+ var infant = AddComp(offspring);
+ infant.InfantEndTime = _timing.CurTime + infant.InfantDuration;
+ }
+ _adminLog.Add(LogType.Action, $"{ToPrettyString(uid)} gave birth to {ToPrettyString(offspring)}.");
+ }
+
+ _popup.PopupEntity(Loc.GetString(component.BirthPopup, ("parent", Identity.Entity(uid, EntityManager))), uid);
+
+ component.Gestating = false;
+ component.GestationEndTime = null;
+ }
+
+ public override void Update(float frameTime)
+ {
+ base.Update(frameTime);
+
+ HashSet birthQueue = new();
+ _failedAttempts.Clear();
+
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var uid, out var reproductive))
+ {
+ if (reproductive.GestationEndTime != null && _timing.CurTime >= reproductive.GestationEndTime)
+ {
+ birthQueue.Add(uid);
+ }
+
+ if (_timing.CurTime < reproductive.NextBreedAttempt)
+ continue;
+ reproductive.NextBreedAttempt += _random.Next(reproductive.MinBreedAttemptInterval, reproductive.MaxBreedAttemptInterval);
+
+ // no.
+ if (HasComp(uid) || TryComp(uid, out var mind) && mind.HasMind)
+ continue;
+
+ TryReproduceNearby(uid, reproductive);
+ }
+
+ foreach (var queued in birthQueue)
+ {
+ Birth(queued);
+ }
+
+ var infantQuery = EntityQueryEnumerator();
+ while (infantQuery.MoveNext(out var uid, out var infant))
+ {
+ if (_timing.CurTime < infant.InfantEndTime)
+ continue;
+ RemCompDeferred(uid, infant);
+ }
+ }
+}
diff --git a/Content.Shared/Blocking/BlockingSystem.cs b/Content.Shared/Blocking/BlockingSystem.cs
index 7ca77499d35..7e9d132974f 100644
--- a/Content.Shared/Blocking/BlockingSystem.cs
+++ b/Content.Shared/Blocking/BlockingSystem.cs
@@ -161,6 +161,13 @@ public bool StartBlocking(EntityUid item, BlockingComponent component, EntityUid
return false;
}
+ // Don't allow someone to block if they're not holding the shield
+ if(!_handsSystem.IsHolding(user, item, out _))
+ {
+ CantBlockError(user);
+ return false;
+ }
+
//Don't allow someone to block if someone else is on the same tile
var playerTileRef = xform.Coordinates.GetTileRef();
if (playerTileRef != null)
diff --git a/Content.Shared/Construction/Conditions/NoWindowsInTile.cs b/Content.Shared/Construction/Conditions/NoWindowsInTile.cs
index 3488c8927de..04fc44bcdb5 100644
--- a/Content.Shared/Construction/Conditions/NoWindowsInTile.cs
+++ b/Content.Shared/Construction/Conditions/NoWindowsInTile.cs
@@ -2,7 +2,6 @@
using Content.Shared.Tag;
using JetBrains.Annotations;
using Robust.Shared.Map;
-using Robust.Shared.Map.Components;
namespace Content.Shared.Construction.Conditions
{
@@ -13,17 +12,11 @@ public sealed class NoWindowsInTile : IConstructionCondition
public bool Condition(EntityUid user, EntityCoordinates location, Direction direction)
{
var entManager = IoCManager.Resolve();
- var gridUid = location.GetGridUid(entManager);
-
- if (!entManager.TryGetComponent(gridUid, out var grid))
- return true;
-
var tagQuery = entManager.GetEntityQuery();
var sysMan = entManager.EntitySysManager;
var tagSystem = sysMan.GetEntitySystem();
- var lookup = sysMan.GetEntitySystem();
- foreach (var entity in lookup.GetEntitiesIntersecting(gridUid.Value, grid.LocalToTile(location)))
+ foreach (var entity in location.GetEntitiesInTile(LookupFlags.Approximate | LookupFlags.Static))
{
if (tagSystem.HasTag(entity, "Window", tagQuery))
return false;
diff --git a/Content.Shared/Nutrition/AnimalHusbandry/InfantComponent.cs b/Content.Shared/Nutrition/AnimalHusbandry/InfantComponent.cs
new file mode 100644
index 00000000000..0baeab5251b
--- /dev/null
+++ b/Content.Shared/Nutrition/AnimalHusbandry/InfantComponent.cs
@@ -0,0 +1,42 @@
+using Robust.Shared.GameStates;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
+
+namespace Content.Shared.Nutrition.AnimalHusbandry;
+
+///
+/// This is used for marking entities as infants.
+/// Infants have half the size, visually, and cannot breed.
+///
+[RegisterComponent, NetworkedComponent]
+public sealed class InfantComponent : Component
+{
+ ///
+ /// How long the entity remains an infant.
+ ///
+ [DataField("infantDuration")]
+ public TimeSpan InfantDuration = TimeSpan.FromMinutes(3);
+
+ ///
+ /// The base scale of the entity
+ ///
+ [DataField("defaultScale")]
+ public Vector2 DefaultScale = Vector2.One;
+
+ ///
+ /// The size difference of the entity while it's an infant.
+ ///
+ [DataField("visualScale")]
+ public Vector2 VisualScale = new(.5f, .5f);
+
+ ///
+ /// When the entity will stop being an infant.
+ ///
+ [DataField("infantEndTime", customTypeSerializer: typeof(TimeOffsetSerializer))]
+ public TimeSpan InfantEndTime;
+
+ ///
+ /// The entity's name before the "baby" prefix is added.
+ ///
+ [DataField("originalName")]
+ public string OriginalName = string.Empty;
+}
diff --git a/Content.Shared/Nutrition/AnimalHusbandry/ReproductiveComponent.cs b/Content.Shared/Nutrition/AnimalHusbandry/ReproductiveComponent.cs
new file mode 100644
index 00000000000..4cb1499d4f0
--- /dev/null
+++ b/Content.Shared/Nutrition/AnimalHusbandry/ReproductiveComponent.cs
@@ -0,0 +1,102 @@
+using Content.Shared.Nutrition.Components;
+using Content.Shared.Storage;
+using Content.Shared.Whitelist;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
+
+namespace Content.Shared.Nutrition.AnimalHusbandry;
+
+///
+/// This is used for simple animal husbandry. Entities with this component,
+/// given they are next to a particular entity that fulfills a whitelist,
+/// can create several "child" entities.
+///
+[RegisterComponent]
+public sealed class ReproductiveComponent : Component
+{
+ ///
+ /// The next time when breeding will be attempted.
+ ///
+ [DataField("nextBreedAttempt", customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)]
+ public TimeSpan NextBreedAttempt;
+
+ ///
+ /// Minimum length between each attempt to breed.
+ ///
+ [DataField("minBreedAttemptInterval"), ViewVariables(VVAccess.ReadWrite)]
+ public TimeSpan MinBreedAttemptInterval = TimeSpan.FromSeconds(45);
+
+ ///
+ /// Maximum length between each attempt to breed.
+ ///
+ [DataField("maxBreedAttemptInterval"), ViewVariables(VVAccess.ReadWrite)]
+ public TimeSpan MaxBreedAttemptInterval = TimeSpan.FromSeconds(60);
+
+ ///
+ /// How close to a partner an entity must be in order to breed.
+ /// Unrealistically long.
+ ///
+ [DataField("breedRange"), ViewVariables(VVAccess.ReadWrite)]
+ public float BreedRange = 3f;
+
+ ///
+ /// The chance that, on a given attempt,
+ /// for each valid partner, the entity will breed.
+ ///
+ [DataField("breedChance"), ViewVariables(VVAccess.ReadWrite)]
+ public float BreedChance = 0.15f;
+
+ ///
+ /// Entity prototypes for what type of
+ /// offspring can be produced by this entity.
+ ///
+ [DataField("offspring", required: true)]
+ public List Offspring = default!;
+
+ ///
+ /// Whether or not this entity has bred successfully
+ /// and will produce offspring imminently
+ ///
+ [DataField("gestating")]
+ public bool Gestating;
+
+ ///
+ /// When gestation will end.
+ /// Null if is false
+ ///
+ [DataField("gestationEndTime"), ViewVariables(VVAccess.ReadWrite)]
+ public TimeSpan? GestationEndTime;
+
+ ///
+ /// How long it takes the entity after breeding
+ /// to produce offspring
+ ///
+ [DataField("gestationDuration"), ViewVariables(VVAccess.ReadWrite)]
+ public TimeSpan GestationDuration = TimeSpan.FromMinutes(1.5);
+
+ ///
+ /// How much hunger is consumed when an entity
+ /// gives birth. A balancing tool to require feeding.
+ ///
+ [DataField("hungerPerBirth"), ViewVariables(VVAccess.ReadWrite)]
+ public float HungerPerBirth = 75f;
+
+ ///
+ /// Popup shown when an entity gives birth.
+ /// Configurable for things like laying eggs.
+ ///
+ [DataField("birthPopup"), ViewVariables(VVAccess.ReadWrite)]
+ public string BirthPopup = "reproductive-birth-popup";
+
+ ///
+ /// Whether or not the offspring should be made into "infants".
+ ///
+ [DataField("makeOffspringInfant"), ViewVariables(VVAccess.ReadWrite)]
+ public bool MakeOffspringInfant = true;
+
+ ///
+ /// An entity whitelist for what entities
+ /// can be this one's partner.
+ ///
+ [DataField("partnerWhitelist", required: true)]
+ public EntityWhitelist PartnerWhitelist = default!;
+}
diff --git a/Content.Shared/Nutrition/AnimalHusbandry/ReproductivePartnerComponent.cs b/Content.Shared/Nutrition/AnimalHusbandry/ReproductivePartnerComponent.cs
new file mode 100644
index 00000000000..e18646b0657
--- /dev/null
+++ b/Content.Shared/Nutrition/AnimalHusbandry/ReproductivePartnerComponent.cs
@@ -0,0 +1,12 @@
+namespace Content.Shared.Nutrition.AnimalHusbandry;
+
+///
+/// This is used for denoting entities which are
+/// valid partners for .
+/// This functions outside of the whitelist.
+///
+[RegisterComponent]
+public sealed class ReproductivePartnerComponent : Component
+{
+
+}
diff --git a/Resources/Audio/Ambience/Objects/attributions.yml b/Resources/Audio/Ambience/Objects/attributions.yml
index e1dec23786e..e5cd81a3725 100644
--- a/Resources/Audio/Ambience/Objects/attributions.yml
+++ b/Resources/Audio/Ambience/Objects/attributions.yml
@@ -56,4 +56,9 @@
- files: ["reclaimer_ambience.ogg"]
license: "CC0-1.0"
copyright: "Taken from source"
- source: "https://freesound.org/people/cmorris035/sounds/319152/"
\ No newline at end of file
+ source: "https://freesound.org/people/cmorris035/sounds/319152/"
+
+- files: ["fireplace.ogg"]
+ license: "CC-BY-4.0"
+ copyright: "Taken and edited from source"
+ source: "https://freesound.org/people/juskiddink/sounds/215658/"
diff --git a/Resources/Audio/Ambience/Objects/fireplace.ogg b/Resources/Audio/Ambience/Objects/fireplace.ogg
new file mode 100644
index 00000000000..c78a3f4dbbe
Binary files /dev/null and b/Resources/Audio/Ambience/Objects/fireplace.ogg differ
diff --git a/Resources/Locale/en-US/nutrition/components/animal-husbandry.ftl b/Resources/Locale/en-US/nutrition/components/animal-husbandry.ftl
new file mode 100644
index 00000000000..6ca108b653a
--- /dev/null
+++ b/Resources/Locale/en-US/nutrition/components/animal-husbandry.ftl
@@ -0,0 +1,3 @@
+infant-name-prefix = baby {$name}
+reproductive-birth-popup = {CAPITALIZE(THE($parent))} gave birth!
+reproductive-laid-egg-popup = {CAPITALIZE(THE($parent))} lays an egg!
diff --git a/Resources/Prototypes/AlertLevels/alert_levels.yml b/Resources/Prototypes/AlertLevels/alert_levels.yml
index 327ab29d85d..73f3452f6de 100644
--- a/Resources/Prototypes/AlertLevels/alert_levels.yml
+++ b/Resources/Prototypes/AlertLevels/alert_levels.yml
@@ -5,11 +5,12 @@
green:
announcement: alert-level-green-announcement
color: Green
- shuttleTime: 600
+ shuttleTime: 1200
blue:
announcement: alert-level-blue-announcement
sound: /Audio/Misc/bluealert.ogg
color: DodgerBlue
+ shuttleTime: 600
violet:
announcement: alert-level-violet-announcement
sound: /Audio/Misc/notice1.ogg
@@ -21,11 +22,12 @@
sound: /Audio/Misc/notice1.ogg
color: Yellow
emergencyLightColor: Goldenrod
- shuttleTime: 400
+ shuttleTime: 600
red:
announcement: alert-level-red-announcement
sound: /Audio/Misc/redalert.ogg
color: Red
+ shuttleTime: 600 #No reduction in time as we don't have swiping for red alert like in /tg/. Shuttle times are intended to create friction, so having a way to brainlessly bypass that would be dumb.
gamma:
announcement: alert-level-gamma-announcement
selectable: false
diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
index b468268ec42..f1734f759b8 100644
--- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
+++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
@@ -222,6 +222,17 @@
fiberColor: fibers-black
- type: FingerprintMask
+- type: entity
+ parent: ClothingHandsGlovesCombat
+ id: ClothingHandsTacticalMaidGloves
+ name: tactical maid gloves
+ description: Tactical maid gloves, every self-respecting maid should be able to discreetly eliminate her goals.
+ components:
+ - type: Sprite
+ sprite: Clothing/Hands/Gloves/tacticalmaidgloves.rsi
+ - type: Clothing
+ sprite: Clothing/Hands/Gloves/tacticalmaidgloves.rsi
+
- type: entity
parent: ClothingHandsBase
id: ClothingHandsMercGlovesCombat
diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml b/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml
index 3eb7aaa5d53..8dc0e1c591a 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml
@@ -121,3 +121,32 @@
sprite: Clothing/Head/Hardhats/yellow.rsi
- type: Clothing
sprite: Clothing/Head/Hardhats/yellow.rsi
+
+- type: entity
+ parent: ClothingHeadHatHardhatBase
+ id: ClothingHeadHatHardhatYellowDark
+ name: dark yellow hard hat
+ description: A hard hat, painted in dark yellow, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
+ components:
+ - type: Sprite
+ sprite: Clothing/Head/Hardhats/dark_yellow.rsi
+ - type: Clothing
+ sprite: Clothing/Head/Hardhats/dark_yellow.rsi
+
+- type: entity
+ parent: ClothingHeadHatHardhatBase
+ id: ClothingHeadHatHardhatArmored
+ name: armored hard hat
+ description: An armored hard hat. Provides the best of both worlds in both protection & utility - perfect for the engineer on the frontlines.
+ components:
+ - type: Sprite
+ sprite: Clothing/Head/Hardhats/armored.rsi
+ - type: Clothing
+ sprite: Clothing/Head/Hardhats/armored.rsi
+ - type: Armor #Copied from the sec helmet, as it's hard to give these sane values without locational damage existing.
+ modifiers:
+ coefficients:
+ Blunt: 0.8
+ Slash: 0.8
+ Piercing: 0.9
+ Heat: 0.8
diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml
index 25550da6639..03841d71a22 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml
@@ -645,6 +645,39 @@
coefficients:
Blunt: 0.95
+- type: entity
+ parent: ClothingHeadBase
+ id: ClothingHeadHatSyndie
+ name: syndicate hat
+ description: A souvenir hat from "Syndieland", their production has already been closed.
+ components:
+ - type: Sprite
+ sprite: Clothing/Head/Hats/syndiecap.rsi
+ - type: Clothing
+ sprite: Clothing/Head/Hats/syndiecap.rsi
+
+- type: entity
+ parent: ClothingHeadBase
+ id: ClothingHeadHatSyndieMAA
+ name: master at arms hat
+ description: Master at arms hat, looks intimidating, I doubt that you will like to communicate with its owner...
+ components:
+ - type: Sprite
+ sprite: Clothing/Head/Hats/syndiecap_maa.rsi
+ - type: Clothing
+ sprite: Clothing/Head/Hats/syndiecap_maa.rsi
+
+- type: entity
+ parent: ClothingHeadBase
+ id: ClothingHeadHatTacticalMaidHeadband
+ name: tactical maid headband
+ description: "A red headband - don't imagine yourself a Rambo and don't pick up a few machine guns."
+ components:
+ - type: Sprite
+ sprite: Clothing/Head/Hats/tacticalmaidheadband.rsi
+ - type: Clothing
+ sprite: Clothing/Head/Hats/tacticalmaidheadband.rsi
+
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatHetmanHat
diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml
index 324016784df..483279bdc1b 100644
--- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml
+++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml
@@ -420,6 +420,21 @@
- type: BreathMask
- type: IdentityBlocker
+- type: entity
+ parent: ClothingMaskBase
+ id: ClothingMaskNeckGaiter
+ name: neck gaiter
+ description: Stylish neck gaiter for your neck, can protect from the cosmic wind?...
+ components:
+ - type: Sprite
+ sprite: Clothing/Mask/neckgaiter.rsi
+ - type: Clothing
+ sprite: Clothing/Mask/neckgaiter.rsi
+ - type: IdentityBlocker
+ - type: Tag
+ tags:
+ - WhitelistChameleon
+
- type: entity
parent: ClothingMaskClownBase
id: ClothingMaskSexyClown
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
index 2a7fe48e825..5c9d73960ea 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
@@ -267,6 +267,28 @@
- type: Clothing
sprite: Clothing/OuterClothing/Coats/windbreaker_paramedic.rsi
+- type: entity
+ parent: ClothingOuterStorageBase
+ id: ClothingOuterCoatSyndieCap
+ name: syndicate's coat
+ description: The syndicate's coat is made of durable fabric, with gilded patterns.
+ components:
+ - type: Sprite
+ sprite: Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi
+ - type: Clothing
+ sprite: Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi
+
+- type: entity
+ parent: ClothingOuterCoatHoSTrench
+ id: ClothingOuterCoatSyndieCapArmored
+ name: syndicate's armored coat
+ description: The syndicate's armored coat is made of durable fabric, with gilded patterns.
+ components:
+ - type: Sprite
+ sprite: Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi
+ - type: Clothing
+ sprite: Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi
+
- type: entity
parent: ClothingOuterStorageBase
id: ClothingOuterCoatAMG
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml
index 184788ddbc1..8a1a2227d69 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml
@@ -351,6 +351,39 @@
Piercing: 0.6 #slightly less bulletproof than wardens normal coat
Heat: 0.75
+- type: entity
+ parent: ClothingOuterWinterCoat
+ id: ClothingOuterWinterSyndieCap
+ name: syndicate's winter coat
+ description: "The syndicate's winter coat is made of durable fabric, with gilded patterns, and coarse wool."
+ components:
+ - type: Sprite
+ sprite: Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi
+ - type: Clothing
+ sprite: Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi
+
+- type: entity
+ parent: ClothingOuterWinterWarden
+ id: ClothingOuterWinterSyndieCapArmored
+ name: syndicate's armored winter coat
+ description: "The syndicate's armored winter coat is made of durable fabric, with gilded patterns, and coarse wool."
+ components:
+ - type: Sprite
+ sprite: Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi
+ - type: Clothing
+ sprite: Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi
+
+- type: entity
+ parent: ClothingOuterWinterCoat
+ id: ClothingOuterWinterSyndie
+ name: syndicate's winter coat
+ description: Insulated winter coat, looks like a merch from "Syndieland"
+ components:
+ - type: Sprite
+ sprite: Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi
+ - type: Clothing
+ sprite: Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi
+
- type: entity
parent: ClothingOuterWinterCoat
id: ClothingOuterWinterMusician
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
index 1efa1eaae2f..44cdb63e4b2 100644
--- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
+++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
@@ -686,6 +686,28 @@
- type: Clothing
sprite: Clothing/Uniforms/Jumpskirt/lawyergood.rsi
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpskirtSyndieFormalDress
+ name: syndicate formal dress
+ description: "The syndicate's uniform is made in an elegant style, it's even a pity to do dirty tricks in this."
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi
+
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpskirtTacticalMaid
+ name: tactical maid suitskirt
+ description: It is assumed that the best maids should have designer suits.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi
+
- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtOfLife
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml
index 2427c2fef20..6415ea5fd51 100644
--- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml
+++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml
@@ -1160,6 +1160,17 @@
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/hawaiyellow.rsi
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitSyndieFormalDress
+ name: syndicate formal dress
+ description: "The syndicate's uniform is made in an elegant style, it's even a pity to do dirty tricks in this."
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi
+
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitFlannel
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/ship_vs_ship.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/ship_vs_ship.yml
new file mode 100644
index 00000000000..bb42d7d51df
--- /dev/null
+++ b/Resources/Prototypes/Entities/Clothing/Uniforms/ship_vs_ship.yml
@@ -0,0 +1,96 @@
+#Where all of the uniforms for the yet-to-be-implimented ship vs. ship gamemode go (or Nanotrasen VS. Syndicate, if you'd like.)
+#In its own file to further avoid bloating jumpsuits.yml.
+
+#CREW
+#Recruit
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitRecruitNT
+ name: recruit jumpsuit
+ description: A classy grey jumpsuit with blue trims. Perfect for the dignified helper.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/recruit_nt.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/recruit_nt.rsi
+
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitRecruitSyndie
+ name: syndicate recuit jumpsuit
+ description: A dubious,, dark-grey jumpsuit. As if passengers weren't dubious enough already.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi
+
+#Repairman
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitRepairmanNT
+ name: repairman jumpsuit
+ description: A jumpsuit that reminds you of a certain crew-sector work position. Hopefully, you won't have to do the same job as THOSE freaks.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/repairman_nt.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/repairman_nt.rsi
+
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitRepairmanSyndie
+ name: syndicate repairman jumpsuit
+ description: Functional, fashionable, and badass. Nanotrasen's engineers wish they could look as good as this.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi
+
+#Paramedic
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitParamedicNT
+ name: paramedic jumpsuit
+ description: A basic white & blue jumpsuit made for Nanotrasen paramedics stationed in combat sectors.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi
+
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitParamedicSyndie
+ name: syndicate paramedic jumpsuit
+ description: For some reason, wearing this makes you feel like you're awfully close to violating the Geneva Convention.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi
+
+#HEADS OF STAFF
+#Chief Engineer
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitChiefEngineerNT
+ name: chief engineer jumpsuit
+ description: It is often joked that the role of the combat-sector Chief Engineer is where the actual, logistically-minded engineers are promoted to. Good luck.
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/ce_nt.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/ce_nt.rsi
+
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformJumpsuitChiefEngineerSyndie
+ name: syndicate chief engineer jumpsuit
+ description: An evil-looking jumpsuit with a reflective vest & red undershirt. #TODO: Write a better description for this once Ship vs. Ship is real and actual player habits begin forming
+ components:
+ - type: Sprite
+ sprite: Clothing/Uniforms/Jumpsuit/ce_syndie.rsi
+ - type: Clothing
+ sprite: Clothing/Uniforms/Jumpsuit/ce_syndie.rsi
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index 2e5b69f7cd8..d7948b92ba1 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -169,6 +169,22 @@
- MobMask
layer:
- MobLayer
+ - type: Tag
+ tags:
+ - DoorBumpOpener
+ - Chicken
+ - type: Reproductive
+ breedChance: 0.05
+ birthPopup: reproductive-laid-egg-popup
+ makeOffspringInfant: false
+ partnerWhitelist:
+ tags:
+ - Chicken
+ offspring:
+ - id: FoodEggChickenFertilized
+ maxAmount: 3
+ - type: ReproductivePartner
+ - type: Appearance
- type: DamageStateVisuals
states:
Alive:
@@ -202,6 +218,21 @@
factions:
- Passive
+- type: entity
+ id: FoodEggChickenFertilized
+ parent: FoodEgg
+ suffix: Fertilized, Chicken
+ components:
+ - type: Timer
+ - type: TimedSpawner
+ prototypes:
+ - MobChicken
+ intervalSeconds: 20
+ minimumEntitiesSpawned: 1
+ maximumEntitiesSpawned: 1
+ - type: TimedDespawn #delete the egg after the chicken spawns
+ lifetime: 21
+
- type: entity
name: mallard duck #Quack
parent: SimpleMobBase
@@ -225,6 +256,22 @@
- MobMask
layer:
- MobLayer
+ - type: Tag
+ tags:
+ - DoorBumpOpener
+ - Duck
+ - type: Reproductive
+ breedChance: 0.05
+ birthPopup: reproductive-laid-egg-popup
+ makeOffspringInfant: false
+ partnerWhitelist:
+ tags:
+ - Duck
+ offspring:
+ - id: FoodEggDuckFertilized
+ maxAmount: 3
+ - type: ReproductivePartner
+ - type: Appearance
- type: DamageStateVisuals
states:
Alive:
@@ -294,6 +341,23 @@
Dead:
Base: dead-2
+- type: entity
+ id: FoodEggDuckFertilized
+ parent: FoodEgg
+ suffix: Fertilized, Duck
+ components:
+ - type: Timer
+ - type: TimedSpawner
+ prototypes:
+ - MobDuckMallard
+ - MobDuckWhite
+ - MobDuckBrown
+ intervalSeconds: 20
+ minimumEntitiesSpawned: 1
+ maximumEntitiesSpawned: 1
+ - type: TimedDespawn #delete the egg after the chicken spawns
+ lifetime: 21
+
- type: entity
name: butterfly
parent: SimpleMobBase
@@ -359,6 +423,17 @@
- map: ["enum.DamageStateVisualLayers.Base"]
state: cow
sprite: Mobs/Animals/cow.rsi
+ - type: Tag
+ tags:
+ - DoorBumpOpener
+ - Cow
+ - type: Reproductive
+ partnerWhitelist:
+ tags:
+ - Cow
+ offspring:
+ - id: MobCow
+ - type: ReproductivePartner
- type: Physics
- type: Fixtures
fixtures:
@@ -484,6 +559,18 @@
- MobMask
layer:
- MobLayer
+ - type: Tag
+ tags:
+ - DoorBumpOpener
+ - Goat
+ - type: Reproductive
+ partnerWhitelist:
+ tags:
+ - Goat
+ offspring:
+ - id: MobGoat
+ - type: ReproductivePartner
+ - type: Appearance
- type: DamageStateVisuals
states:
Alive:
@@ -2181,6 +2268,17 @@
- type: Inventory
speciesId: pig
templateId: pet
+ - type: Tag
+ tags:
+ - DoorBumpOpener
+ - Pig
+ - type: Reproductive
+ partnerWhitelist:
+ tags:
+ - Pig
+ offspring:
+ - id: MobPig
+ - type: ReproductivePartner
- type: InventorySlots
- type: Strippable
- type: UserInterface
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
index 65af3799ec3..b43caa05bc9 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
@@ -411,6 +411,8 @@
- type: Tag
tags:
- CannotSuicide
+ - DoorBumpOpener
+ - Pig
- type: entity
name: Renault
diff --git a/Resources/Prototypes/Entities/Structures/Decoration/banners.yml b/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
index 8ee7ccbf6dc..cc0c90503d0 100644
--- a/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
+++ b/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
@@ -77,6 +77,16 @@
sprite: Structures/Decoration/banner.rsi
state: banner_revolution
+- type: entity
+ id: BannerSyndicate
+ parent: BannerBase
+ name: syndicate banner
+ description: A banner from which, according to the syndicate, you should feel hatred for NT.
+ components:
+ - type: Sprite
+ sprite: Structures/Decoration/banner.rsi
+ state: banner_syndicate
+
- type: entity
id: BannerScience
parent: BannerBase
diff --git a/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml b/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml
index 918f857f622..03851318e1f 100644
--- a/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml
+++ b/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml
@@ -12,6 +12,11 @@
shader: unshaded
- state: fireplace_glow
shader: unshaded
+ - type: AmbientSound
+ volume: -6
+ range: 5
+ sound:
+ path: /Audio/Ambience/Objects/fireplace.ogg
- type: PointLight
radius: 3
energy: 3
diff --git a/Resources/Prototypes/Roles/Jobs/Ship_VS_Ship/nanotrasen.yml b/Resources/Prototypes/Roles/Jobs/Ship_VS_Ship/nanotrasen.yml
new file mode 100644
index 00000000000..637abd43c3d
--- /dev/null
+++ b/Resources/Prototypes/Roles/Jobs/Ship_VS_Ship/nanotrasen.yml
@@ -0,0 +1,69 @@
+#These are startingGear definitions for the currently yet=to-be-added Ship VS. Ship gamemode.
+#These are not gamemode-ready and are just here so that people know what their general outfit is supposed to look like.
+#For the love of god, please move these out of this file when the gamemode is actually added. They are currently all here for convienence's sake.
+
+#CREW
+#Recruit
+- type: startingGear
+ id: RecruitNTGear
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitRecruitNT
+ back: ClothingBackpackFilled
+ shoes: ClothingShoesColorBlack
+ gloves: ClothingHandsGlovesColorBlack
+ id: PassengerPDA
+ ears: ClothingHeadsetGrey
+ innerclothingskirt: ClothingUniformJumpsuitRecruitNT #Wearing a jumpskirt into combat is a little unfitting and silly, so there is no jumpskirt counterpart for any of the Ship VS. Ship suits.
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
+
+#Repairman
+- type: startingGear
+ id: RepairmanNTGear
+ equipment:
+ head: ClothingHeadHatHardhatYellow
+ jumpsuit: ClothingUniformJumpsuitRepairmanNT
+ back: ClothingBackpackEngineeringFilled
+ shoes: ClothingShoesBootsWork
+ gloves: ClothingHandsGlovesColorYellow #Should maybe still be in lockers - this is just so people know that they're there and a part of the outfit.
+ id: EngineerPDA
+ eyes: ClothingEyesGlassesMeson
+ belt: ClothingBeltUtilityEngineering
+ ears: ClothingHeadsetAltCommand #Should use the "alt" engineering headset sprite.
+ innerclothingskirt: ClothingUniformJumpsuitRepairmanNT
+ satchel: ClothingBackpackSatchelEngineeringFilled
+ duffelbag: ClothingBackpackDuffelEngineeringFilled
+
+#Paramedic
+- type: startingGear
+ id: ParamedicNTGear
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitParamedicNT
+ back: ClothingBackpackFilled #The medical backpack sprite looks way worse so this will do for now.
+ shoes: ClothingShoesColorBlue
+ id: MedicalPDA
+ ears: ClothingHeadsetMedical
+ eyes: ClothingEyesHudMedical
+ gloves: ClothingHandsGlovesLatex
+ belt: ClothingBeltMedicalFilled
+ innerclothingskirt: ClothingUniformJumpskirtMedicalDoctor
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
+
+#HEADS OF STAFF
+#Chief Engineer
+- type: startingGear
+ id: ChiefEngineerNTGear
+ equipment:
+ head: ClothingHeadHatHardhatArmored
+ jumpsuit: ClothingUniformJumpsuitChiefEngineerNT
+ back: ClothingBackpackFilled #Again, the regular sprite here looks way worse than the regular backpack.
+ shoes: ClothingShoesBootsJack
+ gloves: ClothingHandsGlovesCombat
+ id: CEPDA
+ eyes: ClothingEyesGlassesMeson
+ ears: ClothingHeadsetAltCommand #Same as repairman - make this use the alt headset sprite.
+ belt: ClothingBeltUtilityEngineering
+ innerclothingskirt: ClothingUniformJumpsuitChiefEngineerNT
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
diff --git a/Resources/Prototypes/Roles/Jobs/Ship_VS_Ship/syndicate.yml b/Resources/Prototypes/Roles/Jobs/Ship_VS_Ship/syndicate.yml
new file mode 100644
index 00000000000..353b69730e5
--- /dev/null
+++ b/Resources/Prototypes/Roles/Jobs/Ship_VS_Ship/syndicate.yml
@@ -0,0 +1,68 @@
+#These are startingGear definitions for the currently yet=to-be-added Ship VS. Ship gamemode.
+#Refer to Nanotrasen.yml for additional comments.
+
+#CREW
+#Recruit
+- type: startingGear
+ id: RecruitSyndieGear
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitRecruitSyndie
+ back: ClothingBackpackFilled
+ shoes: ClothingShoesColorBlack
+ gloves: ClothingHandsGlovesColorBlack
+ id: PassengerPDA
+ ears: ClothingHeadsetGrey
+ innerclothingskirt: ClothingUniformJumpsuitRecruitSyndie #Wearing a jumpskirt into combat is a little unfitting and silly, so there is no jumpskirt counterpart for any of the Ship VS. Ship suits.
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
+
+#Repairman
+- type: startingGear
+ id: RepairmanSyndieGear
+ equipment:
+ head: ClothingHeadHatHardhatYellow
+ jumpsuit: ClothingUniformJumpsuitRepairmanSyndie
+ back: ClothingBackpackFilled #The regular industrial backpack looks really weird here, so I've opted for this instead for now. If a new one is never made, then make sure to make a prototype that has this with extended internals!
+ shoes: ClothingShoesBootsWork
+ gloves: ClothingHandsGlovesColorYellow #Should maybe still be in lockers - this is just so people know that they're there and a part of the outfit.
+ id: EngineerPDA
+ eyes: ClothingEyesGlassesMeson
+ belt: ClothingBeltUtilityEngineering
+ ears: ClothingHeadsetAltCommand #Should use the "alt" engineering headset sprite.
+ innerclothingskirt: ClothingUniformJumpsuitRepairmanSyndie
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
+
+#Paramedic
+- type: startingGear
+ id: ParamedicSyndieGear
+ equipment:
+ jumpsuit: ClothingUniformJumpsuitParamedicSyndie
+ back: ClothingBackpackFilled #The default job backpack again looks way worse. Same case as the NT Paramedc and Syndicate repairman.
+ shoes: ClothingShoesColorRed
+ id: MedicalPDA
+ ears: ClothingHeadsetMedical
+ eyes: ClothingEyesHudMedical
+ gloves: ClothingHandsGlovesLatex
+ belt: ClothingBeltMedicalFilled
+ innerclothingskirt: ClothingUniformJumpsuitParamedicSyndie
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
+
+#HEADS OF STAFF
+#Chief Engineer
+- type: startingGear
+ id: ChiefEngineerSyndieGear
+ equipment:
+ head: ClothingHeadHatHardhatArmored
+ jumpsuit: ClothingUniformJumpsuitChiefEngineerSyndie
+ back: ClothingBackpackFilled #In a running theme, the default station job backpack still continues to look strange in comparison to the regular one. It's not as bad as on the syndicate engineer here, though.
+ shoes: ClothingShoesBootsJack
+ gloves: ClothingHandsGlovesCombat
+ id: CEPDA
+ eyes: ClothingEyesGlassesMeson
+ ears: ClothingHeadsetAltCommand
+ belt: ClothingBeltUtilityEngineering
+ innerclothingskirt: ClothingUniformJumpsuitChiefEngineerSyndie
+ satchel: ClothingBackpackSatchelFilled
+ duffelbag: ClothingBackpackDuffelFilled
diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml
index 842931a7ed8..497e054f47d 100644
--- a/Resources/Prototypes/tags.yml
+++ b/Resources/Prototypes/tags.yml
@@ -149,6 +149,9 @@
- type: Tag
id: Catwalk
+- type: Tag
+ id: Chicken
+
- type: Tag
id: Cigarette
@@ -176,6 +179,9 @@
- type: Tag #Ohioans die happy
id: Corn
+- type: Tag
+ id: Cow
+
- type: Tag
id: Crayon
@@ -263,6 +269,9 @@
- type: Tag
id: DroneUsable
+- type: Tag
+ id: Duck
+
- type: Tag
id: Ectoplasm
@@ -344,6 +353,9 @@
- type: Tag
id: GlassShard
+- type: Tag
+ id: Goat
+
- type: Tag
id: Grenade
@@ -607,6 +619,9 @@
- type: Tag
id: Pie
+- type: Tag
+ id: Pig
+
- type: Tag
id: PillCanister
diff --git a/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/equipped-EARS.png b/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/equipped-EARS.png
new file mode 100644
index 00000000000..f071b43109b
Binary files /dev/null and b/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/equipped-EARS.png differ
diff --git a/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/icon.png b/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/icon.png
new file mode 100644
index 00000000000..608b9ef7a0a
Binary files /dev/null and b/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/meta.json b/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/meta.json
new file mode 100644
index 00000000000..774e33fbe70
--- /dev/null
+++ b/Resources/Textures/Clothing/Ears/Headsets/base_syndicate.rsi/meta.json
@@ -0,0 +1,18 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Edited by Flareguy for Space Station 14. Originally from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-EARS",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/equipped-HAND.png b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/equipped-HAND.png
new file mode 100644
index 00000000000..105768d4d20
Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/equipped-HAND.png differ
diff --git a/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/icon.png b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/icon.png
new file mode 100644
index 00000000000..aac3e6b5dd5
Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/inhand-left.png b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/inhand-left.png
new file mode 100644
index 00000000000..4f3c426eef8
Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/inhand-right.png b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/inhand-right.png
new file mode 100644
index 00000000000..58ce8df4b45
Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/meta.json b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/meta.json
new file mode 100644
index 00000000000..915aae54506
--- /dev/null
+++ b/Resources/Textures/Clothing/Hands/Gloves/tacticalmaidgloves.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-HAND",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/icon.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/icon.png
new file mode 100644
index 00000000000..7adc2b13859
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/light-icon.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/light-icon.png
new file mode 100644
index 00000000000..3a850ef0d89
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/light-icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/meta.json
new file mode 100644
index 00000000000..02f235207e0
--- /dev/null
+++ b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/meta.json
@@ -0,0 +1,41 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "light-icon"
+ },
+ {
+ "name": "off-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "off-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "off-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "on-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "on-inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-equipped-HELMET.png
new file mode 100644
index 00000000000..537dc0aec83
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-inhand-left.png
new file mode 100644
index 00000000000..4a12424a90e
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-inhand-right.png
new file mode 100644
index 00000000000..cd617205b30
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/off-inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-equipped-HELMET.png
new file mode 100644
index 00000000000..fc49dc07d73
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-inhand-left.png
new file mode 100644
index 00000000000..21a66c0b7a3
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-inhand-right.png
new file mode 100644
index 00000000000..5245cc00c3f
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/armored.rsi/on-inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/icon.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/icon.png
new file mode 100644
index 00000000000..3d3aa75958d
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/light-icon.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/light-icon.png
new file mode 100644
index 00000000000..3a850ef0d89
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/light-icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/meta.json
new file mode 100644
index 00000000000..02f235207e0
--- /dev/null
+++ b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/meta.json
@@ -0,0 +1,41 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "light-icon"
+ },
+ {
+ "name": "off-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "off-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "off-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "on-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "on-inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-equipped-HELMET.png
new file mode 100644
index 00000000000..6e4ed70e686
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-inhand-left.png
new file mode 100644
index 00000000000..9a1ddf8ad37
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-inhand-right.png
new file mode 100644
index 00000000000..15522f5f975
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/off-inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-equipped-HELMET.png
new file mode 100644
index 00000000000..36f4d3c06e3
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-inhand-left.png
new file mode 100644
index 00000000000..d413e067762
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-inhand-right.png
new file mode 100644
index 00000000000..2a0c1a8a49b
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardhats/dark_yellow.rsi/on-inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/equipped-HELMET.png
new file mode 100644
index 00000000000..08b0ed8e6c8
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/icon.png b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/icon.png
new file mode 100644
index 00000000000..d1b4935037c
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/inhand-left.png
new file mode 100644
index 00000000000..9fc657693f2
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/inhand-right.png
new file mode 100644
index 00000000000..60db8e6ae3b
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/meta.json
new file mode 100644
index 00000000000..9b680ad5a59
--- /dev/null
+++ b/Resources/Textures/Clothing/Head/Hats/syndiecap.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/equipped-HELMET.png
new file mode 100644
index 00000000000..d423ba0d4cf
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/icon.png b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/icon.png
new file mode 100644
index 00000000000..dbdaed336f0
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/inhand-left.png
new file mode 100644
index 00000000000..0e84c524bf1
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/inhand-right.png
new file mode 100644
index 00000000000..77935dcadd3
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/meta.json
new file mode 100644
index 00000000000..9b680ad5a59
--- /dev/null
+++ b/Resources/Textures/Clothing/Head/Hats/syndiecap_maa.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/equipped-HELMET.png
new file mode 100644
index 00000000000..4a9e5a73398
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/equipped-HELMET.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/icon.png b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/icon.png
new file mode 100644
index 00000000000..0c74439dcd4
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/inhand-left.png
new file mode 100644
index 00000000000..a5955748817
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/inhand-right.png
new file mode 100644
index 00000000000..233e54dbcad
Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/meta.json
new file mode 100644
index 00000000000..9b680ad5a59
--- /dev/null
+++ b/Resources/Textures/Clothing/Head/Hats/tacticalmaidheadband.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK-reptilian.png b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK-reptilian.png
new file mode 100644
index 00000000000..9ff31af24f3
Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK-reptilian.png differ
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK-vox.png
new file mode 100644
index 00000000000..d8313d5cbbd
Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK-vox.png differ
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK.png b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK.png
new file mode 100644
index 00000000000..572796b0303
Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/equipped-MASK.png differ
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/icon.png b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/icon.png
new file mode 100644
index 00000000000..8c746f155e1
Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/inhand-left.png b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/inhand-left.png
new file mode 100644
index 00000000000..40ff08ad57c
Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/inhand-right.png b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/inhand-right.png
new file mode 100644
index 00000000000..09748ec2085
Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Mask/neckgaiter.rsi/meta.json b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/meta.json
new file mode 100644
index 00000000000..4da74959ddc
--- /dev/null
+++ b/Resources/Textures/Clothing/Mask/neckgaiter.rsi/meta.json
@@ -0,0 +1,34 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord) | equipped-MASK-vox sprited by PuroSlavKing (Github)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-MASK",
+ "directions": 4
+ },
+ {
+ "name": "equipped-MASK-vox",
+ "directions": 4
+ },
+ {
+ "name": "equipped-MASK-reptilian",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 00000000000..5c2ac4f43be
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/icon.png
new file mode 100644
index 00000000000..2feedb30992
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/inhand-left.png
new file mode 100644
index 00000000000..8b8da21af78
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/inhand-right.png
new file mode 100644
index 00000000000..dee70e81104
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/meta.json
new file mode 100644
index 00000000000..eadf9c61d48
--- /dev/null
+++ b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecap.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 00000000000..c99facfeb64
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/icon.png
new file mode 100644
index 00000000000..d532a0c3b9e
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/inhand-left.png
new file mode 100644
index 00000000000..5f1100dface
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/inhand-right.png
new file mode 100644
index 00000000000..8022ac7cbc8
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/meta.json
new file mode 100644
index 00000000000..eadf9c61d48
--- /dev/null
+++ b/Resources/Textures/Clothing/OuterClothing/Coats/syndicate/coatsyndiecaparmored.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 00000000000..0f68ef8d1e5
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/icon.png
new file mode 100644
index 00000000000..e80dfe80684
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/inhand-left.png
new file mode 100644
index 00000000000..b87f5e3b67a
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/inhand-right.png
new file mode 100644
index 00000000000..c045fd47f84
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/meta.json
new file mode 100644
index 00000000000..eadf9c61d48
--- /dev/null
+++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecap.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 00000000000..5be3e2a4b1c
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/icon.png
new file mode 100644
index 00000000000..58ddc0afc5c
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/inhand-left.png
new file mode 100644
index 00000000000..6df7ed14b7a
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/inhand-right.png
new file mode 100644
index 00000000000..16093bec94f
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/meta.json
new file mode 100644
index 00000000000..eadf9c61d48
--- /dev/null
+++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/coatsyndiecaparmored.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 00000000000..90f79db76f9
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/icon.png
new file mode 100644
index 00000000000..a3e47e0c12f
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/inhand-left.png
new file mode 100644
index 00000000000..0754a7103f6
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/inhand-right.png
new file mode 100644
index 00000000000..c8dc0c63c02
Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/meta.json
new file mode 100644
index 00000000000..eadf9c61d48
--- /dev/null
+++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/syndicate/wintercoatsyndie.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 00000000000..b9d4410e5e6
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..6090c939fac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/icon.png
new file mode 100644
index 00000000000..555ca02cbf2
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/inhand-left.png
new file mode 100644
index 00000000000..68a63d9db2b
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/inhand-right.png
new file mode 100644
index 00000000000..5921624c314
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/meta.json
new file mode 100644
index 00000000000..1af9e0836fd
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpskirt/syndieformaldress.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord) | equipped-INNERCLOTHING-monkey sprited by Puro (Github)",
+ "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/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 00000000000..f0ed97e5112
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..162ed66a757
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/icon.png
new file mode 100644
index 00000000000..38968fb83aa
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/inhand-left.png
new file mode 100644
index 00000000000..83034313026
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/inhand-right.png
new file mode 100644
index 00000000000..759cf4b40d4
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/meta.json
new file mode 100644
index 00000000000..1af9e0836fd
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpskirt/tacticalmaid.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord) | equipped-INNERCLOTHING-monkey sprited by Puro (Github)",
+ "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/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..c450e31b387
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/icon.png
new file mode 100644
index 00000000000..6fe32e0e748
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/meta.json
new file mode 100644
index 00000000000..8b0bae84eac
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_nt.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..cd61b427079
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/icon.png
new file mode 100644
index 00000000000..66f067e68e5
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/meta.json
new file mode 100644
index 00000000000..8b0bae84eac
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce_syndie.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..3ef348699a4
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/icon.png
new file mode 100644
index 00000000000..6bffc57eaa1
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/meta.json
new file mode 100644
index 00000000000..8b0bae84eac
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_nt.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..7ca069b33f2
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/icon.png
new file mode 100644
index 00000000000..a6b4935b582
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/meta.json
new file mode 100644
index 00000000000..8b0bae84eac
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/paramedic_syndie.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 00000000000..b4d3c9bf45a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..e514f41bc02
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/icon.png
new file mode 100644
index 00000000000..c00fc557ea3
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/meta.json
new file mode 100644
index 00000000000..c20fa3e0040
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_nt.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "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/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 00000000000..53a14c885ca
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..2c7cbfcc6b0
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/icon.png
new file mode 100644
index 00000000000..87b3fa9ec4d
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/meta.json
new file mode 100644
index 00000000000..c20fa3e0040
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/recruit_syndie.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "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/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..c5cf949c4b7
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/icon.png
new file mode 100644
index 00000000000..472c9e0b855
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/meta.json
new file mode 100644
index 00000000000..8b0bae84eac
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_nt.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..e4c5903b5cb
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/icon.png
new file mode 100644
index 00000000000..7f147b279b1
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/inhand-left.png
new file mode 100644
index 00000000000..ae15d262d7a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/inhand-right.png
new file mode 100644
index 00000000000..60bea1b51ac
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/meta.json
new file mode 100644
index 00000000000..8b0bae84eac
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/repairman_syndie.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Flareguy for Space Station 14, base sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, monkey made by brainfood1183 (github) for ss14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/equipped-INNERCLOTHING-monkey.png
new file mode 100644
index 00000000000..34182dd2a42
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/equipped-INNERCLOTHING-monkey.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..cf96b744706
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/icon.png
new file mode 100644
index 00000000000..39dfb6e8ae6
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/icon.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/inhand-left.png
new file mode 100644
index 00000000000..fbc700f2ea1
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/inhand-right.png
new file mode 100644
index 00000000000..49dbf47794a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/meta.json
new file mode 100644
index 00000000000..1af9e0836fd
--- /dev/null
+++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/syndieformaldress.rsi/meta.json
@@ -0,0 +1,30 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by belay5 (Discord) | equipped-INNERCLOTHING-monkey sprited by Puro (Github)",
+ "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/Structures/Decoration/banner.rsi/banner_syndicate.png b/Resources/Textures/Structures/Decoration/banner.rsi/banner_syndicate.png
new file mode 100644
index 00000000000..c8424057d02
Binary files /dev/null and b/Resources/Textures/Structures/Decoration/banner.rsi/banner_syndicate.png differ
diff --git a/Resources/Textures/Structures/Decoration/banner.rsi/meta.json b/Resources/Textures/Structures/Decoration/banner.rsi/meta.json
index f9fb3f5839f..2de33ea0290 100644
--- a/Resources/Textures/Structures/Decoration/banner.rsi/meta.json
+++ b/Resources/Textures/Structures/Decoration/banner.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "https://github.com/tgstation/tgstation/commit/fa9e44d937026d5a2ba72615afccf2f18a87c485",
+ "copyright": "https://github.com/tgstation/tgstation/commit/fa9e44d937026d5a2ba72615afccf2f18a87c485 | banner_syndicate sprited by mureixlol (Discord)",
"size": {
"x": 32,
"y": 32
@@ -39,6 +39,9 @@
},
{
"name": "banner_revolution"
+ },
+ {
+ "name": "banner_syndicate"
}
]
-}
\ No newline at end of file
+}