From 35c26cf0c907542f1580ab4d026d33e98863fd98 Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Sat, 25 Jan 2025 13:29:37 -0400 Subject: [PATCH 01/15] ChemMaster Improvements (#1650) Hate having to use the same buffer for pills? Want sorting and container solutions for output? No need to wait _any_ longer! A brand new pill buffer, a sort feature _for_ the new pill buffer **and** you have your amount buttons back! Showcase: https://ptb.discord.com/channels/1218698320155906090/1218698321053356060/1332224976803074123 :cl: - add: A new ChemMaster experience has been granted to the people of Einstein Engines. Includes a pill buffer! --- .../UI/ChemMasterBoundUserInterface.cs | 6 +- .../Chemistry/UI/ChemMasterWindow.xaml | 237 +++++++++--------- .../Chemistry/UI/ChemMasterWindow.xaml.cs | 229 ++++++++++++----- .../EntitySystems/ChemMasterSystem.cs | 128 +++++----- Content.Shared/Chemistry/SharedChemMaster.cs | 87 +++---- .../components/chem-master-component.ftl | 12 +- .../Structures/Machines/chem_master.yml | 1 + 7 files changed, 405 insertions(+), 295 deletions(-) diff --git a/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs b/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs index 57bd34ed064d..ff4bd0b71087 100644 --- a/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs +++ b/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs @@ -30,8 +30,6 @@ protected override void Open() // Setup static button actions. _window.InputEjectButton.OnPressed += _ => SendMessage( new ItemSlotButtonPressedEvent(SharedChemMaster.InputSlotName)); - _window.OutputEjectButton.OnPressed += _ => SendMessage( - new ItemSlotButtonPressedEvent(SharedChemMaster.OutputSlotName)); _window.BufferTransferButton.OnPressed += _ => SendMessage( new ChemMasterSetModeMessage(ChemMasterMode.Transfer)); _window.BufferDiscardButton.OnPressed += _ => SendMessage( @@ -49,11 +47,9 @@ protected override void Open() _window.PillTypeButtons[i].OnPressed += _ => SendMessage(new ChemMasterSetPillTypeMessage(pillType)); } - _window.OnReagentButtonPressed += (_, button, amount) => SendMessage(new ChemMasterReagentAmountButtonMessage(button.Id, amount, button.IsBuffer)); + _window.OnReagentButtonPressed += (_, button, amount, isOutput) => SendMessage(new ChemMasterReagentAmountButtonMessage(button.Id, amount, button.IsBuffer, isOutput)); _window.OnSortMethodChanged += sortMethod => SendMessage(new ChemMasterSortMethodUpdated(sortMethod)); _window.OnTransferAmountChanged += amount => SendMessage(new ChemMasterTransferringAmountUpdated(amount)); - - } /// diff --git a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml index 94e7a0e84bec..99dee5873588 100644 --- a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml +++ b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml @@ -2,136 +2,147 @@ xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client" - MinSize="500 770" + MinSize="800 00" Title="{Loc 'chem-master-bound-user-interface-title'}"> - - - - - + /// [DataField, ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 DamageCap = FixedPoint2.New(8); @@ -79,7 +69,7 @@ public float HeatCapacity /// Used to keep track of when damage starts/stops. Useful for logs. /// [DataField] - public bool TakingDamage = false; + public bool TakingDamage; [DataField] public ProtoId HotAlert = "Hot"; diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index ee13cb96a5e3..6586ce5613a2 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -414,17 +414,3 @@ private void RecalculateAndApplyParentThresholds(EntityUid uid, return (newHeatThreshold, newColdThreshold); } } - -public sealed class OnTemperatureChangeEvent : EntityEventArgs -{ - public float CurrentTemperature { get; } - public float LastTemperature { get; } - public float TemperatureDelta { get; } - - public OnTemperatureChangeEvent(float current, float last, float delta) - { - CurrentTemperature = current; - LastTemperature = last; - TemperatureDelta = delta; - } -} diff --git a/Content.Server/_DV/Abilities/Chitinid/BlockInjectionComponent.cs b/Content.Server/_DV/Abilities/Chitinid/BlockInjectionComponent.cs new file mode 100644 index 000000000000..8ba332ce765f --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/BlockInjectionComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Server.Abilities.Chitinid; + + +[RegisterComponent] +public sealed partial class BlockInjectionComponent : Component +{ + [DataField] + public string BlockReason { get; set; } = string.Empty; +} diff --git a/Content.Server/_DV/Abilities/Chitinid/ChitinidComponent.cs b/Content.Server/_DV/Abilities/Chitinid/ChitinidComponent.cs new file mode 100644 index 000000000000..871d10a7c275 --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/ChitinidComponent.cs @@ -0,0 +1,41 @@ +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Abilities.Chitinid; + +[RegisterComponent] +public sealed partial class ChitinidComponent : Component +{ + [DataField] + public EntProtoId ChitzitePrototype = "Chitzite"; + + [DataField] + public EntProtoId ChitziteActionId = "ActionChitzite"; + + [DataField] + public EntityUid? ChitziteAction; + + [DataField] + public FixedPoint2 AmountAbsorbed = 0f; + + [DataField] + public DamageSpecifier Healing = new() + { + DamageDict = new() + { + { "Radiation", -0.5 }, + } + }; + + [DataField] + public FixedPoint2 MaximumAbsorbed = 30f; + + [DataField] + public TimeSpan UpdateInterval = TimeSpan.FromSeconds(1); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan NextUpdate; +} diff --git a/Content.Server/_DV/Abilities/Chitinid/ChitinidSystem.cs b/Content.Server/_DV/Abilities/Chitinid/ChitinidSystem.cs new file mode 100644 index 000000000000..34d8244d5c9b --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/ChitinidSystem.cs @@ -0,0 +1,97 @@ +using Content.Server.Nutrition.Components; +using Content.Shared.Actions; +using Content.Shared.Actions.Events; +using Content.Shared.Audio; +using Content.Shared.Damage; +using Content.Shared.IdentityManagement; +using Content.Shared.Inventory; +using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Server.Abilities.Chitinid; + +public sealed partial class ChitinidSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnChitzite); + SubscribeLocalEvent(OnMapInit); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var chitinid, out var damageable)) + { + if (_timing.CurTime < chitinid.NextUpdate) + continue; + + chitinid.NextUpdate += chitinid.UpdateInterval; + + if (chitinid.AmountAbsorbed >= chitinid.MaximumAbsorbed || _mobState.IsDead(uid)) + continue; + + if (_damageable.TryChangeDamage(uid, chitinid.Healing, damageable: damageable) is {} delta) + { + chitinid.AmountAbsorbed += -delta.GetTotal().Float(); + if (chitinid.ChitziteAction != null && chitinid.AmountAbsorbed >= chitinid.MaximumAbsorbed) + { + _actions.SetCharges(chitinid.ChitziteAction, 1); // You get the charge back and that's it. Tough. + _actions.SetEnabled(chitinid.ChitziteAction, true); + } + } + } + + var entQuery = EntityQueryEnumerator(); + while (entQuery.MoveNext(out var ent, out var chitzite, out var chitinid)) + { + if (_timing.CurTime < chitzite.NextCough) + continue; + + Spawn(chitinid.ChitzitePrototype, Transform(ent).Coordinates); + chitinid.AmountAbsorbed = 0f; + RemCompDeferred(ent, chitzite); + } + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (ent.Comp.ChitziteAction != null) + return; + + ent.Comp.NextUpdate = _timing.CurTime + ent.Comp.UpdateInterval; + + _actions.AddAction(ent, ref ent.Comp.ChitziteAction, ent.Comp.ChitziteActionId); + } + + private void OnChitzite(Entity ent, ref ChitziteActionEvent args) + { + if (_inventory.TryGetSlotEntity(ent, "mask", out var maskUid) && + TryComp(maskUid, out var blocker) && + blocker.Enabled) + { + _popup.PopupEntity(Loc.GetString("chitzite-mask", ("mask", maskUid)), ent, ent); + return; + } + + _popup.PopupEntity(Loc.GetString("chitzite-cough", ("name", Identity.Entity(ent, EntityManager))), ent); + _audio.PlayPvs("/Audio/Animals/cat_hiss.ogg", ent, AudioHelpers.WithVariation(0.15f)); + + var chitzite = EnsureComp(ent); + chitzite.NextCough = _timing.CurTime + chitzite.CoughUpTime; + args.Handled = true; + } +} diff --git a/Content.Server/_DV/Abilities/Chitinid/CoughingUpChitziteComponent.cs b/Content.Server/_DV/Abilities/Chitinid/CoughingUpChitziteComponent.cs new file mode 100644 index 000000000000..1dae46b9437a --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/CoughingUpChitziteComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Abilities.Chitinid; + +[RegisterComponent, AutoGenerateComponentPause] +public sealed partial class CoughingUpChitziteComponent : Component +{ + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + [AutoPausedField] + public TimeSpan NextCough; + + [DataField] + public TimeSpan CoughUpTime = TimeSpan.FromSeconds(2.15); +} diff --git a/Content.Shared/Temperature/Components/TemperatureSpeedComponent.cs b/Content.Shared/Temperature/Components/TemperatureSpeedComponent.cs new file mode 100644 index 000000000000..74ba2a027490 --- /dev/null +++ b/Content.Shared/Temperature/Components/TemperatureSpeedComponent.cs @@ -0,0 +1,30 @@ +using Content.Shared.Temperature.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Temperature.Components; + +/// +/// This is used for an entity that varies in speed based on current temperature. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedTemperatureSystem)), AutoGenerateComponentState, AutoGenerateComponentPause] +public sealed partial class TemperatureSpeedComponent : Component +{ + /// + /// Pairs of temperature thresholds to applied slowdown values. + /// + [DataField] + public Dictionary Thresholds = new(); + + /// + /// The current speed modifier from we reached. + /// Stored and networked so that the client doesn't mispredict temperature + /// + [DataField, AutoNetworkedField] + public float? CurrentSpeedModifier; + + /// + /// The time at which the temperature slowdown is updated. + /// + [DataField, AutoNetworkedField, AutoPausedField] + public TimeSpan? NextSlowdownUpdate; +} diff --git a/Content.Shared/Temperature/Systems/SharedTemperatureSystem.cs b/Content.Shared/Temperature/Systems/SharedTemperatureSystem.cs new file mode 100644 index 000000000000..efea2df5affa --- /dev/null +++ b/Content.Shared/Temperature/Systems/SharedTemperatureSystem.cs @@ -0,0 +1,80 @@ +using System.Linq; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Temperature.Components; +using Robust.Shared.Timing; + +namespace Content.Shared.Temperature.Systems; + +/// +/// This handles predicting temperature based speedup. +/// +public sealed class SharedTemperatureSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifier = default!; + + /// + /// Band-aid for unpredicted atmos. Delays the application for a short period so that laggy clients can get the replicated temperature. + /// + private static readonly TimeSpan SlowdownApplicationDelay = TimeSpan.FromSeconds(1f); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnTemperatureChanged); + SubscribeLocalEvent(OnRefreshMovementSpeedModifiers); + } + + private void OnTemperatureChanged(Entity ent, ref OnTemperatureChangeEvent args) + { + foreach (var (threshold, modifier) in ent.Comp.Thresholds) + { + if (args.CurrentTemperature < threshold && args.LastTemperature > threshold || + args.CurrentTemperature > threshold && args.LastTemperature < threshold) + { + ent.Comp.NextSlowdownUpdate = _timing.CurTime + SlowdownApplicationDelay; + ent.Comp.CurrentSpeedModifier = modifier; + Dirty(ent); + break; + } + } + + var maxThreshold = ent.Comp.Thresholds.Max(p => p.Key); + if (args.CurrentTemperature > maxThreshold && args.LastTemperature < maxThreshold) + { + ent.Comp.NextSlowdownUpdate = _timing.CurTime + SlowdownApplicationDelay; + ent.Comp.CurrentSpeedModifier = null; + Dirty(ent); + } + } + + private void OnRefreshMovementSpeedModifiers(Entity ent, ref RefreshMovementSpeedModifiersEvent args) + { + // Don't update speed and mispredict while we're compensating for lag. + if (ent.Comp.NextSlowdownUpdate != null || ent.Comp.CurrentSpeedModifier == null) + return; + + args.ModifySpeed(ent.Comp.CurrentSpeedModifier.Value, ent.Comp.CurrentSpeedModifier.Value); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var temp, out var movement)) + { + if (temp.NextSlowdownUpdate == null) + continue; + + if (_timing.CurTime < temp.NextSlowdownUpdate) + continue; + + temp.NextSlowdownUpdate = null; + _movementSpeedModifier.RefreshMovementSpeedModifiers(uid, movement); + Dirty(uid, temp); + } + } +} diff --git a/Content.Shared/Temperature/TemperatureEvents.cs b/Content.Shared/Temperature/TemperatureEvents.cs index ac12224868f4..7a26d07e306d 100644 --- a/Content.Shared/Temperature/TemperatureEvents.cs +++ b/Content.Shared/Temperature/TemperatureEvents.cs @@ -13,3 +13,18 @@ public ModifyChangedTemperatureEvent(float temperature) TemperatureDelta = temperature; } } + +public sealed class OnTemperatureChangeEvent : EntityEventArgs +{ + public readonly float CurrentTemperature; + public readonly float LastTemperature; + public readonly float TemperatureDelta; + + public OnTemperatureChangeEvent(float current, float last, float delta) + { + CurrentTemperature = current; + LastTemperature = last; + TemperatureDelta = delta; + } +} + diff --git a/Content.Shared/_DV/Actions/Events/ChitziteActionEvent.cs b/Content.Shared/_DV/Actions/Events/ChitziteActionEvent.cs new file mode 100644 index 000000000000..a36bd148d611 --- /dev/null +++ b/Content.Shared/_DV/Actions/Events/ChitziteActionEvent.cs @@ -0,0 +1,3 @@ +namespace Content.Shared.Actions.Events; + +public sealed partial class ChitziteActionEvent : InstantActionEvent {} diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/attributions.yml b/Resources/Audio/DeltaV/Voice/Chitinid/attributions.yml new file mode 100644 index 000000000000..5d6386b81d6f --- /dev/null +++ b/Resources/Audio/DeltaV/Voice/Chitinid/attributions.yml @@ -0,0 +1,9 @@ +- files: ["moth_scream.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/tgstation/tgstation/commit/31c19654e0f641166ecd80c672ea05362fd19488" + source: "https://github.com/tgstation/tgstation/commits/master/sound/voice/moth/scream_moth.ogg" + +- files: ["moth_laugh.ogg, moth_chitter.ogg, moth_squeak.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/BeeStation/BeeStation-Hornet/commit/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d" + source: "https://github.com/BeeStation/BeeStation-Hornet/blob/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d/sound/emotes/" diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/male_cough_1.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/male_cough_1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8ddc42024474f27604fe11b32badc9123224bc59 GIT binary patch literal 13330 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�Equ%G$d-k1< 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/moth_chitter.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/moth_chitter.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b7240a5653611bf7c7c56a38a1c69b4c3f7c80f4 GIT binary patch literal 9381 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

FT|| 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/moth_squeak.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/moth_squeak.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5b77d98e56541fa3ee34654737e9f78e0b5c58b8 GIT binary patch literal 8676 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 Sjk5^K8yUkeeT$BKhW`hii5zbL literal 0 HcmV?d00001 diff --git a/Resources/Audio/_DV/Voice/Chitinid/attributions.yml b/Resources/Audio/_DV/Voice/Chitinid/attributions.yml new file mode 100644 index 000000000000..5d6386b81d6f --- /dev/null +++ b/Resources/Audio/_DV/Voice/Chitinid/attributions.yml @@ -0,0 +1,9 @@ +- files: ["moth_scream.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/tgstation/tgstation/commit/31c19654e0f641166ecd80c672ea05362fd19488" + source: "https://github.com/tgstation/tgstation/commits/master/sound/voice/moth/scream_moth.ogg" + +- files: ["moth_laugh.ogg, moth_chitter.ogg, moth_squeak.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/BeeStation/BeeStation-Hornet/commit/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d" + source: "https://github.com/BeeStation/BeeStation-Hornet/blob/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d/sound/emotes/" diff --git a/Resources/Audio/_DV/Voice/Chitinid/male_cough_1.ogg b/Resources/Audio/_DV/Voice/Chitinid/male_cough_1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8ddc42024474f27604fe11b32badc9123224bc59 GIT binary patch literal 13330 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�Equ%G$d-k1< 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/_DV/Voice/Chitinid/moth_chitter.ogg b/Resources/Audio/_DV/Voice/Chitinid/moth_chitter.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b7240a5653611bf7c7c56a38a1c69b4c3f7c80f4 GIT binary patch literal 9381 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

+/// Requires that a target dies once and only once. +/// Depends on to function. +/// +[RegisterComponent, Access(typeof(TeachLessonConditionSystem))] +public sealed partial class TeachLessonConditionComponent : Component +{ + /// + /// How close the assassin must be to the person "Being given a lesson", to ensure that the kill is reasonably + /// something that could be the assassin's doing. This way the objective isn't resolved by the target getting killed + /// by a space tick while on expedition. + /// + [DataField] + public float MaxDistance = 30f; +} diff --git a/Content.Server/DeltaV/Objectives/Systems/TeachLessonConditionSystem.cs b/Content.Server/DeltaV/Objectives/Systems/TeachLessonConditionSystem.cs new file mode 100644 index 000000000000..929a361a3fed --- /dev/null +++ b/Content.Server/DeltaV/Objectives/Systems/TeachLessonConditionSystem.cs @@ -0,0 +1,55 @@ +using Content.Server.DeltaV.Objectives.Components; +using Content.Server.Objectives.Components; +using Content.Server.Objectives.Systems; +using Content.Shared.Mind.Components; +using Content.Shared.Mobs; + +namespace Content.Server.DeltaV.Objectives.Systems; + +/// +/// Handles teach a lesson condition logic, does not assign target. +/// +public sealed class TeachLessonConditionSystem : EntitySystem +{ + [Dependency] private readonly CodeConditionSystem _codeCondition = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMobStateChanged); + } + + // TODO: subscribe by ref at some point in the future + private void OnMobStateChanged(MobStateChangedEvent args) + { + if (args.NewMobState != MobState.Dead) + return; + + // Get the mind of the entity that just died (if it had one) + // Uses OriginalMind so if someone ghosts or otherwise loses control of a mob, you can still greentext + if (!TryComp(args.Target, out var mc) || mc.OriginalMind is not {} mindId) + return; + + // Get all TeachLessonConditionComponent entities + var query = EntityQueryEnumerator(); + + while (query.MoveNext(out var uid, out var conditionComp, out var targetObjective)) + { + // Check if this objective's target matches the entity that died + if (targetObjective.Target != mindId) + continue; + + var userWorldPos = _transform.GetWorldPosition(uid); + var targetWorldPos = _transform.GetWorldPosition(args.Target); + + var distance = (userWorldPos - targetWorldPos).Length(); + if (distance > conditionComp.MaxDistance + || Transform(uid).MapID != Transform(args.Target).MapID) + continue; + + _codeCondition.SetCompleted(uid); + } + } +} diff --git a/Content.Server/Mind/MindSystem.cs b/Content.Server/Mind/MindSystem.cs index 2e7c31ec7a65..4934fb8bccd1 100644 --- a/Content.Server/Mind/MindSystem.cs +++ b/Content.Server/Mind/MindSystem.cs @@ -264,6 +264,7 @@ public override void TransferTo(EntityUid mindId, EntityUid? entity, bool ghostC if (entity != null) { component!.Mind = mindId; + component.OriginalMind ??= mindId; // DeltaV mind.OwnedEntity = entity; mind.OriginalOwnedEntity ??= GetNetEntity(mind.OwnedEntity); Entity mindEnt = (mindId, mind); diff --git a/Content.Shared/Mind/Components/MindContainerComponent.cs b/Content.Shared/Mind/Components/MindContainerComponent.cs index 62b26cbd3535..be6ad6b125ac 100644 --- a/Content.Shared/Mind/Components/MindContainerComponent.cs +++ b/Content.Shared/Mind/Components/MindContainerComponent.cs @@ -37,6 +37,12 @@ public sealed partial class MindContainerComponent : Component [DataField("ghostOnShutdown")] [Access(typeof(SharedMindSystem), Other = AccessPermissions.ReadWriteExecute)] // FIXME Friends public bool GhostOnShutdown { get; set; } = true; + + /// + /// DeltaV: The first mind to control this mob. Will only be null if the mob never had a mind at all. + /// + [DataField, AutoNetworkedField] + public EntityUid? OriginalMind; } public abstract class MindEvent : EntityEventArgs diff --git a/Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl b/Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl new file mode 100644 index 000000000000..0c557dbb0c1a --- /dev/null +++ b/Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl @@ -0,0 +1 @@ +objective-condition-teach-person-title = Teach {$targetName}, {CAPITALIZE($job)} a lesson. You need to be within 30 meters of the target, otherwise the syndicate can't take credit for the job. diff --git a/Resources/Prototypes/DeltaV/Objectives/traitor.yml b/Resources/Prototypes/DeltaV/Objectives/traitor.yml index 828142cdfa77..b4fced2c61f7 100644 --- a/Resources/Prototypes/DeltaV/Objectives/traitor.yml +++ b/Resources/Prototypes/DeltaV/Objectives/traitor.yml @@ -33,3 +33,34 @@ stealGroup: RubberStampNotary verifyMapExistence: true owner: job-name-clerk + +# teach lesson +- type: entity + abstract: true + parent: BaseTargetObjective + id: BaseTeachLessonObjective + components: + - type: Objective + unique: false + icon: + sprite: Objects/Weapons/Guns/Pistols/viper.rsi + state: icon + - type: TeachLessonCondition + - type: CodeCondition + - type: ObjectiveBlacklistRequirement + blacklist: + components: + - SocialObjective + +- type: entity + parent: [BaseTraitorObjective, BaseTeachLessonObjective] + id: TeachLessonRandomPersonObjective + description: Kill them, and show everyone we mean business. They only need to die once. + components: + - type: Objective + difficulty: 1.75 + unique: false + - type: TargetObjective + title: objective-condition-teach-person-title + - type: PickRandomPerson + - type: TeachLessonCondition \ No newline at end of file diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 16dc7c6d310a..68deacd78471 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -31,7 +31,8 @@ - type: weightedRandom id: TraitorObjectiveGroupKill weights: - KillRandomPersonObjective: 1 + # KillRandomPersonObjective: 1 # DeltaV Replaced for Teach Lesson + TeachLessonRandomPersonObjective: 1 KillRandomHeadObjective: 0.25 - type: weightedRandom From 3897f4c542ce41d56eb065d407cf0dba4353a6c5 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Sat, 25 Jan 2025 20:38:54 +0000 Subject: [PATCH 11/15] Automatic Changelog Update (#1654) --- Resources/Changelog/Changelog.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 98f0260cece0..6a65d966d0f8 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10728,3 +10728,12 @@ Entries: id: 6762 time: '2025-01-25T20:12:52.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1644 +- author: sleepyyapril + changes: + - type: Tweak + message: >- + Kill random person objective has been replaced by teaching them a + lesson, removing the need to RR a random person. + id: 6763 + time: '2025-01-25T20:38:25.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1654 From 1c28a1c2881bd9c6e1029932d44da72b3f9999cb Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 25 Jan 2025 15:39:09 -0500 Subject: [PATCH 12/15] Fix Melee Attack Speed Again (#1653) # Description Melee Weapons were accidentally given the wrong attack speed formula again. It took me awhile of reviewing the entire history, but eventually I found the line where the wizmerge introduced a new check that used the old formula. Also to help prevent this from happening again, I've put in a request to be set as codeowner for the relevant systems I have significantly modified. # Changelog :cl: - fix: Fixed melee weapons having the wrong attack speed calculations(again) --- .github/CODEOWNERS | 12 +++++++++++- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 12 +----------- .../Objects/Specific/Mech/Weapons/Melee/combat.yml | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 85545ac8a70d..37c1df8dfba3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,5 @@ # hasn't specified or all -* @sleepyyapril @VMSolidus @Remuchi +* @sleepyyapril @Remuchi /.* @DEATHB4DEFEAT *.sln @DEATHB4DEFEAT @@ -95,3 +95,13 @@ /Content.*/ProjectileSystem @angelofallars /Content.*/ThrownItem @angelofallars /Content.*/ThrowEvent @angelofallars + +# Nyano Systems +/Content.*/Weapons @VMSolidus +/Content.*/Abilities/Psionics @VMSolidus +/Content.*/Psionics @VMSolidus +/Content.*/Contests @VMSolidus +/Content.*/Carrying @VMSolidus + +# Physics Stuff +/Content.*/Atmos @VMSolidus diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index ce2228ff66b1..4e59ff32feee 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -53,16 +53,6 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem private const int AttackMask = (int) (CollisionGroup.MobMask | CollisionGroup.Opaque); - /// - /// Maximum amount of targets allowed for a wide-attack. - /// - public const int MaxTargets = 5; - - /// - /// If an attack is released within this buffer it's assumed to be full damage. - /// - public const float GracePeriod = 0.05f; - public override void Initialize() { base.Initialize(); @@ -105,7 +95,7 @@ private void OnMeleeSelected(EntityUid uid, MeleeWeaponComponent component, Hand // If someone swaps to this weapon then reset its cd. var curTime = Timing.CurTime; - var minimum = curTime + TimeSpan.FromSeconds(GetAttackRate(uid, args.User, component)); + var minimum = curTime + TimeSpan.FromSeconds(attackRate); if (minimum < component.NextAttack) return; diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml index dcb7ecfb45cd..85a5aeea01c7 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml @@ -13,7 +13,7 @@ wideAnimationRotation: -90 soundHit: path: "/Audio/Weapons/chainsaw.ogg" - attackRate: 3.5 + attackRate: 0.3 damage: types: Structural: 35 From 8c6f1a47c037ce8bf5a9a76678c0a24ad7120897 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Sat, 25 Jan 2025 20:39:33 +0000 Subject: [PATCH 13/15] Automatic Changelog Update (#1653) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 6a65d966d0f8..9076550a40f9 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10737,3 +10737,10 @@ Entries: id: 6763 time: '2025-01-25T20:38:25.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1654 +- author: VMSolidus + changes: + - type: Fix + message: Fixed melee weapons having the wrong attack speed calculations(again) + id: 6764 + time: '2025-01-25T20:39:09.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1653 From e68e0c3f4b9cf263e07efc888b32a091df62fb51 Mon Sep 17 00:00:00 2001 From: Skubman Date: Sun, 26 Jan 2025 05:13:19 +0800 Subject: [PATCH 14/15] New Species: Plasmaman (#1291) # Description Adds the Plasmamen as a playable species. Plasmamen are a skeletal species who depend on Plasma to live, and oxygen is highly fatal to them. Being exposed to oxygen will set them on fire, unless they wear their envirosuits. ## Species Guidebook **SPECIAL:** - Plasmamen speak the language Calcic, a language they share with Skeletons. ## Shitmed Integration Plasmamen are the first ever species designed with Shitmed in mind, with one of their core mechanics (self-ignition) powered entirely by Shitmed. Whether or not a Plasmaman ignites from oxygen exposure depends only on their body parts. A Plasmaman with only their head exposed will not burn as much as an entirely naked Plasmaman. You can **transfer** Plasmaman body parts to non-Plasmamen through **surgery** so that they also ignite from oxygen exposure. Meanwhile, a Plasmaman with a non-Plasmaman head can expose their head without self-igniting. https://github.com/user-attachments/assets/0aa33070-04be-4ded-b668-3afb9f4ddd7c ## Technical Details This also cherry-picks https://github.com/space-wizards/space-station-14/pull/28595 as a quality-of-life feature to ensure Plasmamen keep their internals on upon toggling their helmet with a breath mask on. ## TODO ### RELEASE-NECESSARY
- [x] Port more envirosuits / enviro helms (job-specific) and their sprites - [x] Remove breath masks from default plasmaman loadouts because the envirohelms already allow them to breathe internals - [x] Change default plasma tank to higher-capacity version - [x] Prevent plasmamen from buying jumpsuits and helmets other than envirosuits - ~~[ ] **Client UI update for loadout groups min/max items and default items**~~ - [x] Plasmaman-specific mask sprites from TG - [x] Disable too cold alert for plasmamen - [x] Create/port sprites for these jobs - [x] Courier - [x] Forensic Mantis - [x] Corpsman (Resprite security envirosuit) - [x] Prison Guard (Resprite security envirosuit) - [x] Magistrate (No Paradise envirosuit so use new colorable envirosuit) - [x] Blueshield (Port from Paradise and tg-ify?) - [x] NanoTrasen Representative (No Paradise envirosuit so use new colorable envirosuit) - [x] Martial Artist (use new colorable envirosuit and make pure white) - [x] Musician (use new colorable envirosuit) - [x] Reporter (use new colorable envirosuit) - [x] Zookeeper (use new colorable envirosuit) - [x] Service Worker (use new colorable envirosuit) - [x] Gladiator - [x] Technical Assistant - [x] Medical Intern - [x] Acolyte / Research Assistant - [x] Security Cadet - [x] Assistant - You know what. These intern jobs are fine. They can use their normal equivalent's envirosuits. - [x] Logistics Officer (use new colorable envirosuit) - [x] Adjust sprites to be closer to actual job - [x] Captain (Shift color to be closer to ss14 captain) - [x] ~~CMO (Remove yellow accents)~~ - [x] Port HoP envirogloves sprite - [x] unique sprite for self-extinguish verb - [x] Refactor conditional gear stuff to live only in StartingGearPrototype with `SubGear` `List>` field and `List` field for sub-gear requirements - [x] Add starting gear for paradox anomaly, and antags and ghost roles - [x] Paradox - [x] Nukies - [x] Disaster victims - [x] Listening post operative - [x] Make all envirosuit helmets have a glowing (unshaded) visor - [x] Envirosuit extinguish visuals - [x] JobPrototype: AfterLoadoutSpecial - [x] Set prisoner envirohelm battery to potato, command/sec/dignitary to high-powered - [x] Set base envirosuit extinguishes to 4, sec 6 and command 8 - [x] Improve plasmaman organ extraction experience - [x] Body parts now give 1 plasma sheet each, while Torso gives 3 - [x] Organs can be juiced to get plasma - [x] Make envirohelm flashlights battery-powered - [x] Plasmamen visuals - [x] Grayscale sprites for color customization, and set default skintone color to Plasmaman classic skintone - [x] Plasmaman eye organ sprite - [x] Add basic loadouts - [x] Add way to refill envirosuit charges (refill at medical protolathe after some research)
### Low Importance
- [x] Envirogloves - [ ] (SCOPE CREEP) Plasma tanks sprite (only normal emergency/extended, rather low priority) - [ ] (SCOPE CREEP) Modify envirosuit helmet sprites to have a transparent visor - [ ] Glowing eyes/mouth marking - [x] More cargo content with plasma tanks / envirosuits - [x] Plasmaman survival kit like slime - [x] Additional plasma tanks - [ ] (SCOPE CREEP) Plasmaman EVA suits - [x] ~~Add envirosuits to clothesmate~~ - [x] Add more plasma tanks to random lockers and job lockers - [x] Turn envirosuit auto-extinguish into extinguish action - [x] move self-extinguish verb stuff to shared for prediction of the verb - [x] move self-extinguisher stuff away from extinguisher namespace - [x] unique sprite for self-extinguish icon - [x] ~~IDEA: purple glowy fire extinguisher ~~ - [x] on self-extinguish, check for pressure immunity OR ignite from gas immunity properly - [x] See envirosuit extinguish charges in examine - [x] Milk heals on ingestion - [x] Plasma heals on ingestion - [x] Self-ignition doesn't occur on a stasis bed - [x] ~~Self-ignition doesn't occur when dead~~ - [x] Guidebook entry - [x] Make self-ignition ignore damage resistances from fire suits - [x] ~~Make self-ignition ignore damage resistances from armor~~ - [x] ~~Unable to rot?~~ - [x] Make the envirosuit helmet toggle on for the character dummy in lobby - [ ] (SCOPE CREEP) One additional Plasmaman trait - [x] ~~Showers extinguish water as well as water tiles~~ - Unnecessary as stasis beds now prevent ignition, allowing surgery on a plasmaman on stasis beds. - [x] Unique punch animations for Plasmafire Punch/Toxoplasmic Punch traits - [x] Actually remove toxoplasmic it's just slop filler tbh - [ ] Talk sounds - [ ] Normal - [ ] Question - [ ] Yell - [x] Positive moodlet for drinking milk / more positive moodlet for drinking plasma - [x] Increase moodlet bonus and also minimum reagent required for the plasma/milk moodlets - [x] Increase fire rate base stacks on ignite cause putting out your helmet for a few secs isn't that dangerous due to the fire stacks immediately decaying - [x] I think halving firestack fade from -0.1 to -0.05 might work to do the same thing too - [ ] (SCOPE CREEP) Get bone laugh sounds from monke 'monkestation/sound/voice/laugh/skeleton/skeleton_laugh.ogg' - [ ] (SCOPE CREEP) When EVA plasmaman suit is added, 25% caustic resist - [x] Envirosuit helmet - [x] Equivalent of 100% bio / 100% fire / 75% acid resist - [x] Envirosuit - [x] Equivalent of 100% bio / 100% fire / 75% acid resist - [x] Envirogloves - [x] Equivalent of 100% bio / 95% fire / 95% acid resist - [x] Put breath mask back on - [x] Refactor: put body parts covered data into component instead of being hardcoded
## Media **Custom Plasmaman Outfits** All of these use the same **absolutely massive** [envirosuit RSI](https://github.com/angelofallars/Einstein-Engines/tree/0c3af432dfbbc41c1a705194ceb7930a64d5b356/Resources/Textures/Clothing/Uniforms/Envirosuits/color.rsi) and [envirohelm RSI](https://github.com/angelofallars/Einstein-Engines/tree/0c3af432dfbbc41c1a705194ceb7930a64d5b356/Resources/Textures/Clothing/Head/Envirohelms/color.rsi) to quickly create the envirosuits that didn't exist in SS13 where the envirosuit sprites were ported. From Left to Right: Magistrate, Prison Guard, Boxer, Reporter, Logistics Officer **Plasmaman Melee Attack** https://github.com/user-attachments/assets/6e694f2c-3e03-40bf-ae27-fc58a3e4cb6c **Chat bubble** **Plasmaman Body** With different colors: **Skeleton Language** ![image](https://github.com/user-attachments/assets/89b2b047-3bfa-4106-926e-6c412ed6e57c) **(Bonus) Skeleton chat bubble** **Self-Extinguish** https://github.com/user-attachments/assets/6c68e2ef-8010-4f00-8c24-dce8a8065be8 The self-extinguish is also accessible as a verb, which also means that others can activate your self-extinguish if they open the strip menu. The self-extinguish action has different icons depending on the status of the self extinguish. Left to right: Ready, On Cooldown, Out Of Charges **Envirosuit Extinguisher Refill** **Loadouts** **Plasma Envirosuit Crate** **Internals Crate (Plasma)** **Glow In The Dark** ![image](https://github.com/user-attachments/assets/9728eb33-55d5-4f82-92ac-3a7756068577) ## Changelog :cl: Skubman - add: The Plasmaman species has arrived! They need to breathe plasma to live, and a special jumpsuit to prevent oxygen from igniting them. In exchange, they deal formidable unarmed Heat damage, are never hungry nor thirsty, and are immune to cold and radiation damage. Read more about Plasmamen in their Guidebook entry. - tweak: Internals are no longer toggled off if you take your helmet off but still have a gas mask on and vice versa. - tweak: Paradox Anomalies will now spawn with the original person's Loadout items. - fix: Fixed prisoners not being able to have custom Loadout names and descriptions, and heirlooms if they didn't have a backpack when joining. --------- Signed-off-by: Skubman Signed-off-by: VMSolidus Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: VMSolidus --- .../Clothing/ClientClothingSystem.cs | 31 + .../Effects/ColorFlashEffectSystem.cs | 12 +- .../Inventory/InventorySlotsComponent.cs | 7 + .../Light/Components/LightFadeComponent.cs | 6 + .../Light/EntitySystems/LightFadeSystem.cs | 3 +- Content.Client/Lobby/LobbyUIController.cs | 11 +- .../Lobby/UI/HumanoidProfileEditor.xaml.cs | 15 + .../SelfExtinguisherSystem.cs | 5 + .../Systems/Actions/Controls/ActionButton.cs | 10 +- Content.IntegrationTests/Tests/StoreTests.cs | 1 + .../Commands/SetOutfitCommand.cs | 4 + .../Atmos/Components/FlammableComponent.cs | 7 + .../Components/IgniteFromGasComponent.cs | 48 + .../IgniteFromGasImmunityComponent.cs | 16 + .../Components/IgniteFromGasPartComponent.cs | 23 + .../AtmosphereSystem.BreathTool.cs | 14 +- .../Atmos/EntitySystems/FlammableSystem.cs | 28 +- .../Atmos/EntitySystems/GasTankSystem.cs | 2 +- .../EntitySystems/IgniteFromGasSystem.cs | 135 + Content.Server/Bed/BedSystem.cs | 4 + .../Bed/Components/InStasisComponent.cs | 7 + .../Body/Components/InternalsComponent.cs | 2 +- .../Body/Systems/InternalsSystem.cs | 48 +- .../Clothing/Systems/LoadoutSystem.cs | 35 +- .../Damage/Components/DamageOnHitComponent.cs | 14 +- .../Damage/Systems/DamageOnHitSystem.cs | 13 +- .../Systems/ParadoxAnomalySystem.cs | 3 + .../Effects/ColorFlashEffectSystem.cs | 4 +- .../HeightAdjust/BloodstreamAdjustSystem.cs | 1 + .../Jobs/ModifyEnvirohelmSpecial.cs | 52 + .../Jobs/ModifyEnvirosuitSpecial.cs | 36 + .../Medical/HealthAnalyzerSystem.cs | 2 +- .../SelfExtinguisherSystem.cs | 130 + .../EntitySystems/SkeletonAccentSystem.cs | 5 +- .../Station/Systems/StationSpawningSystem.cs | 5 + .../Temperature/Systems/TemperatureSystem.cs | 7 + .../ThiefUndeterminedBackpackSystem.cs | 21 +- .../Traits/TraitSystem.Functions.cs | 2 + Content.Shared/Actions/BaseActionComponent.cs | 12 +- Content.Shared/Actions/SharedActionsSystem.cs | 11 + .../Charges/Systems/SharedChargesSystem.cs | 17 + .../Components/HideLayerClothingComponent.cs | 6 + .../Loadouts/Systems/SharedLoadoutSystem.cs | 6 +- .../Systems/CharacterRequirementsSystem.cs | 2 +- .../Effects/ColorFlashEffectEvent.cs | 8 +- .../Effects/SharedColorFlashEffectSystem.cs | 2 +- Content.Shared/Humanoid/NamingSystem.Roman.cs | 70 + Content.Shared/Humanoid/NamingSystem.cs | 5 +- .../Humanoid/Prototypes/SpeciesPrototype.cs | 1 + .../Inventory/InventorySystem.Equip.cs | 11 +- .../Inventory/InventoryTemplatePrototype.cs | 15 + Content.Shared/Roles/JobPrototype.cs | 28 + Content.Shared/Roles/StartingGearPrototype.cs | 21 + .../SelfExtinguisherComponent.cs | 66 + .../SelfExtinguisherRefillComponent.cs | 14 + .../SharedSelfExtinguisherSystem.cs | 167 + .../Station/SharedStationSpawningSystem.cs | 115 + .../Prototypes/ThiefBackpackSetPrototype.cs | 2 + .../Audio/Voice/Plasmaman/attributions.yml | 7 + .../Voice/Plasmaman/plasmaman_scream_1.ogg | Bin 0 -> 27171 bytes .../Voice/Plasmaman/plasmaman_scream_2.ogg | Bin 0 -> 28023 bytes .../Voice/Plasmaman/plasmaman_scream_3.ogg | Bin 0 -> 26663 bytes Resources/Audio/Weapons/attributions.yml | 7 +- Resources/Audio/Weapons/firepunch1.ogg | Bin 0 -> 21901 bytes Resources/Audio/Weapons/firepunch2.ogg | Bin 0 -> 23041 bytes Resources/Audio/Weapons/firepunch3.ogg | Bin 0 -> 22965 bytes Resources/Audio/Weapons/firepunch4.ogg | Bin 0 -> 21629 bytes .../Fonts/LDFComicSans/LDFComicSans-Bold.ttf | Bin 0 -> 18596 bytes .../LDFComicSans-HairlineMedium.ttf | Bin 0 -> 19920 bytes .../Fonts/LDFComicSans/LDFComicSans-Light.ttf | Bin 0 -> 19152 bytes .../LDFComicSans/LDFComicSans-Medium.ttf | Bin 0 -> 18892 bytes Resources/Fonts/LDFComicSans/LICENSE.txt | 2 + Resources/Locale/en-US/alerts/alerts.ftl | 6 + .../en-US/chat/managers/chat-language.ftl | 1 + .../en-US/chat/managers/chat-manager.ftl | 8 +- .../Locale/en-US/envirosuit/envirosuit.ftl | 0 .../Locale/en-US/flavors/flavor-profiles.ftl | 1 + Resources/Locale/en-US/language/languages.ftl | 3 + .../Locale/en-US/loadouts/generic/hands.ftl | 2 + .../Locale/en-US/loadouts/generic/species.ftl | 5 + .../Locale/en-US/loadouts/generic/uniform.ftl | 2 + .../en-US/metabolism/metabolizer-types.ftl | 1 + Resources/Locale/en-US/mood/mood.ftl | 9 +- .../self-extinguisher/self-extinguisher.ftl | 18 + Resources/Locale/en-US/species/species.ftl | 5 +- .../Locale/en-US/store/uplink-catalog.ftl | 3 + Resources/Locale/en-US/thief/backpack.ftl | 7 + Resources/Locale/en-US/traits/traits.ftl | 3 + Resources/Prototypes/Actions/types.yml | 16 + Resources/Prototypes/Alerts/alerts.yml | 18 + .../Prototypes/Body/Organs/plasmaman.yml | 150 + Resources/Prototypes/Body/Parts/plasmaman.yml | 133 + .../Prototypes/Body/Prototypes/plasmaman.yml | 50 + .../Catalog/Cargo/cargo_emergency.yml | 20 + .../Catalog/Fills/Backpacks/duffelbag.yml | 4 + .../Catalog/Fills/Crates/emergency.yml | 34 + .../Catalog/Fills/Crates/syndicate.yml | 1 + .../Catalog/Fills/Items/briefcases.yml | 43 + .../Catalog/Fills/Items/gas_tanks.yml | 63 +- .../Inventories/tankdispenser.yml | 1 + .../Prototypes/Catalog/thief_toolbox_sets.yml | 35 +- .../Prototypes/Catalog/uplink_catalog.yml | 25 +- .../Generic/gloveGroup.yml | 4 + .../Generic/itemGroups.yml | 64 + .../Jobs/Logistics/courier.yml | 2 + .../Jobs/Security/uncategorized.yml | 4 + .../Chemistry/metabolizer_types.yml | 4 + Resources/Prototypes/Damage/modifier_sets.yml | 12 + .../Prototypes/Datasets/Names/plasmaman.yml | 326 ++ .../DeltaV/Roles/Jobs/Cargo/courier.yml | 10 + .../Jobs/Command/administrative_assistant.yml | 12 +- .../Roles/Jobs/Fun/misc_startinggear.yml | 2 + .../Roles/Jobs/Justice/chief_justice.yml | 2 + .../DeltaV/Roles/Jobs/Justice/clerk.yml | 2 + .../DeltaV/Roles/Jobs/Justice/prosecutor.yml | 2 + .../DeltaV/Roles/Jobs/Security/brigmedic.yml | 15 + .../Clothing/Hands/base_clothinghands.yml | 14 + .../Entities/Clothing/Hands/envirogloves.yml | 655 ++++ .../Clothing/Head/base_clothinghead.yml | 169 + .../Entities/Clothing/Head/envirohelms.yml | 2192 ++++++++++++ .../OuterClothing/base_clothingouter.yml | 26 + .../Uniforms/base_clothinguniforms.yml | 105 + .../Clothing/Uniforms/envirosuits.yml | 3091 +++++++++++++++++ .../Entities/Effects/weapon_arc.yml | 26 + .../Markers/Spawners/Random/maintenance.yml | 6 + .../Mobs/Customization/Markings/tattoos.yml | 4 +- .../Entities/Mobs/Player/plasmaman.yml | 5 + .../Entities/Mobs/Species/plasmaman.yml | 156 + .../Entities/Mobs/Species/skeleton.yml | 9 + .../Objects/Misc/extinguisher_refill.yml | 34 + .../Entities/Objects/Tools/gas_tanks.yml | 41 +- .../Entities/Objects/Tools/toolbox.yml | 1 + .../Entities/Structures/Machines/lathe.yml | 1 + Resources/Prototypes/Flavors/flavors.yml | 5 + Resources/Prototypes/Guidebook/species.yml | 12 +- .../plasmaman_inventory_template.yml | 129 + .../Language/Species-Specific/skeleton.yml | 59 + .../Prototypes/Loadouts/Generic/hands.yml | 12 + .../Prototypes/Loadouts/Generic/items.yml | 27 + .../Prototypes/Loadouts/Generic/plasmaman.yml | 723 ++++ .../Prototypes/Loadouts/Generic/shoes.yml | 12 + .../Prototypes/Loadouts/Generic/uniform.yml | 1 + .../Loadouts/Jobs/Logistics/courier.yml | 18 + .../Loadouts/Jobs/Security/uncategorized.yml | 36 + .../Mood/genericPositiveEffects.yml | 12 +- .../Roles/Jobs/Cargo/mail_carrier.yml | 10 + .../Roles/Jobs/Epistemics/forensicmantis.yml | 10 + .../Roles/Jobs/Security/prisonguard.yml | 16 +- .../Roles/Jobs/Wildcards/gladiator.yml | 15 + .../Roles/Jobs/Wildcards/martialartist.yml | 11 + .../Roles/Jobs/Wildcards/prisoner.yml | 15 + .../Nyanotrasen/metempsychoticHumanoids.yml | 1 + .../Reagents/Consumable/Drink/drinks.yml | 19 + Resources/Prototypes/Reagents/gases.yml | 74 +- .../Prototypes/Recipes/Lathes/medical.yml | 8 + .../Prototypes/Research/civilianservices.yml | 1 + Resources/Prototypes/Roles/Antags/nukeops.yml | 2 + Resources/Prototypes/Roles/Antags/traitor.yml | 2 + .../Roles/Jobs/Cargo/cargo_technician.yml | 10 + .../Roles/Jobs/Cargo/quartermaster.yml | 13 + .../Roles/Jobs/Cargo/salvage_specialist.yml | 11 + .../Roles/Jobs/Civilian/assistant.yml | 10 + .../Roles/Jobs/Civilian/bartender.yml | 10 + .../Roles/Jobs/Civilian/botanist.yml | 10 + .../Roles/Jobs/Civilian/chaplain.yml | 10 + .../Prototypes/Roles/Jobs/Civilian/chef.yml | 10 + .../Prototypes/Roles/Jobs/Civilian/clown.yml | 11 + .../Roles/Jobs/Civilian/janitor.yml | 10 + .../Prototypes/Roles/Jobs/Civilian/lawyer.yml | 10 + .../Roles/Jobs/Civilian/librarian.yml | 10 + .../Prototypes/Roles/Jobs/Civilian/mime.yml | 11 + .../Roles/Jobs/Civilian/musician.yml | 10 + .../Roles/Jobs/Civilian/service_worker.yml | 12 +- .../Prototypes/Roles/Jobs/Command/captain.yml | 17 +- .../Roles/Jobs/Command/centcom_official.yml | 15 + .../Roles/Jobs/Command/head_of_personnel.yml | 15 + .../Engineering/atmospheric_technician.yml | 12 +- .../Roles/Jobs/Engineering/chief_engineer.yml | 15 + .../Jobs/Engineering/senior_engineer.yml | 2 + .../Jobs/Engineering/station_engineer.yml | 10 + .../Jobs/Engineering/technical_assistant.yml | 2 + .../Roles/Jobs/Fun/emergencyresponseteam.yml | 34 +- .../Roles/Jobs/Fun/misc_startinggear.yml | 26 + .../Roles/Jobs/Fun/plasmaman_startinggear.yml | 109 + .../Prototypes/Roles/Jobs/Medical/chemist.yml | 10 + .../Jobs/Medical/chief_medical_officer.yml | 15 + .../Roles/Jobs/Medical/medical_doctor.yml | 10 + .../Roles/Jobs/Medical/medical_intern.yml | 4 +- .../Roles/Jobs/Medical/paramedic.yml | 11 + .../Roles/Jobs/Medical/senior_physician.yml | 2 + .../Roles/Jobs/Science/research_assistant.yml | 4 +- .../Roles/Jobs/Science/research_director.yml | 15 + .../Roles/Jobs/Science/roboticist.yml | 10 + .../Roles/Jobs/Science/scientist.yml | 10 + .../Roles/Jobs/Science/senior_researcher.yml | 2 + .../Roles/Jobs/Security/detective.yml | 17 +- .../Roles/Jobs/Security/head_of_security.yml | 15 + .../Roles/Jobs/Security/security_cadet.yml | 7 + .../Roles/Jobs/Security/security_officer.yml | 15 + .../Roles/Jobs/Security/senior_officer.yml | 7 + .../Prototypes/Roles/Jobs/Security/warden.yml | 15 + .../Prototypes/Roles/Jobs/Wildcards/boxer.yml | 10 + .../Roles/Jobs/Wildcards/psychologist.yml | 10 + .../Roles/Jobs/Wildcards/reporter.yml | 10 + .../Roles/Jobs/Wildcards/zookeeper.yml | 10 + .../Prototypes/SoundCollections/punching.yml | 8 + .../Prototypes/SoundCollections/screams.yml | 7 + Resources/Prototypes/Species/plasmaman.yml | 171 + Resources/Prototypes/Traits/disabilities.yml | 2 + Resources/Prototypes/Traits/neutral.yml | 14 + Resources/Prototypes/Traits/physical.yml | 20 + .../Prototypes/Voice/speech_emote_sounds.yml | 10 + Resources/Prototypes/Voice/speech_verbs.yml | 2 + .../Roles/Jobs/Command/blueshield_officer.yml | 15 + .../Roles/Jobs/Command/magistrate.yml | 15 + .../Command/nanotrasen_representative.yml | 15 + Resources/Prototypes/fonts.yml | 7 +- Resources/Prototypes/tags.yml | 6 + Resources/Prototypes/typing_indicator.yml | 8 + .../ServerInfo/Guidebook/Mobs/Plasmaman.xml | 73 + .../Envirogloves/hop.rsi/equipped-HAND.png | Bin 0 -> 381 bytes .../Gloves/Envirogloves/hop.rsi/icon.png | Bin 0 -> 859 bytes .../Envirogloves/hop.rsi/inhand-left.png | Bin 0 -> 223 bytes .../Envirogloves/hop.rsi/inhand-right.png | Bin 0 -> 230 bytes .../Gloves/Envirogloves/hop.rsi/meta.json | 26 + .../ancientvoid.rsi/equipped-HELMET.png | Bin 0 -> 506 bytes .../ancientvoid.rsi/icon-flash.png | Bin 0 -> 151 bytes .../Head/Envirohelms/ancientvoid.rsi/icon.png | Bin 0 -> 384 bytes .../Envirohelms/ancientvoid.rsi/meta.json | 25 + .../ancientvoid.rsi/visor-equipped-HELMET.png | Bin 0 -> 149 bytes .../Envirohelms/atmos.rsi/equipped-HELMET.png | Bin 0 -> 806 bytes .../Head/Envirohelms/atmos.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/atmos.rsi/icon.png | Bin 0 -> 430 bytes .../Head/Envirohelms/atmos.rsi/meta.json | 25 + .../atmos.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../captain.rsi/equipped-HELMET.png | Bin 0 -> 748 bytes .../Envirohelms/captain.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/captain.rsi/icon.png | Bin 0 -> 419 bytes .../Head/Envirohelms/captain.rsi/meta.json | 25 + .../captain.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/cargo.rsi/equipped-HELMET.png | Bin 0 -> 845 bytes .../Head/Envirohelms/cargo.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/cargo.rsi/icon.png | Bin 0 -> 444 bytes .../Head/Envirohelms/cargo.rsi/meta.json | 25 + .../cargo.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/ce.rsi/equipped-HELMET.png | Bin 0 -> 787 bytes .../Head/Envirohelms/ce.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Clothing/Head/Envirohelms/ce.rsi/icon.png | Bin 0 -> 430 bytes .../Head/Envirohelms/ce.rsi/meta.json | 25 + .../Envirohelms/ce.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../centcom_agent.rsi/equipped-HELMET.png | Bin 0 -> 877 bytes .../centcom_agent.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Envirohelms/centcom_agent.rsi/icon.png | Bin 0 -> 438 bytes .../Envirohelms/centcom_agent.rsi/meta.json | 25 + .../centcom_agent.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../centcom_officer.rsi/equipped-HELMET.png | Bin 0 -> 929 bytes .../centcom_officer.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Envirohelms/centcom_officer.rsi/icon.png | Bin 0 -> 454 bytes .../Envirohelms/centcom_officer.rsi/meta.json | 25 + .../on-equipped-HELMET.png | Bin 0 -> 313 bytes .../centcom_official.rsi/equipped-HELMET.png | Bin 0 -> 851 bytes .../centcom_official.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Envirohelms/centcom_official.rsi/icon.png | Bin 0 -> 421 bytes .../centcom_official.rsi/meta.json | 25 + .../on-equipped-HELMET.png | Bin 0 -> 313 bytes .../chaplain.rsi/equipped-HELMET.png | Bin 0 -> 800 bytes .../Envirohelms/chaplain.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/chaplain.rsi/icon.png | Bin 0 -> 431 bytes .../Head/Envirohelms/chaplain.rsi/meta.json | 25 + .../chaplain.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../chemist.rsi/equipped-HELMET.png | Bin 0 -> 797 bytes .../Envirohelms/chemist.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/chemist.rsi/icon.png | Bin 0 -> 430 bytes .../Head/Envirohelms/chemist.rsi/meta.json | 25 + .../chemist.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/clown.rsi/equipped-HELMET.png | Bin 0 -> 1068 bytes .../Head/Envirohelms/clown.rsi/icon-flash.png | Bin 0 -> 95 bytes .../Head/Envirohelms/clown.rsi/icon.png | Bin 0 -> 472 bytes .../Head/Envirohelms/clown.rsi/meta.json | 25 + .../clown.rsi/on-equipped-HELMET.png | Bin 0 -> 115 bytes .../Envirohelms/cmo.rsi/equipped-HELMET.png | Bin 0 -> 872 bytes .../Head/Envirohelms/cmo.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/cmo.rsi/icon.png | Bin 0 -> 432 bytes .../Head/Envirohelms/cmo.rsi/meta.json | 25 + .../cmo.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../coroner.rsi/equipped-HELMET.png | Bin 0 -> 821 bytes .../Envirohelms/coroner.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/coroner.rsi/icon.png | Bin 0 -> 501 bytes .../Head/Envirohelms/coroner.rsi/meta.json | 25 + .../coroner.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../custom.rsi/accent-equipped-HELMET.png | Bin 0 -> 201 bytes .../Envirohelms/custom.rsi/accent-icon.png | Bin 0 -> 132 bytes .../custom.rsi/accent-inhand-left.png | Bin 0 -> 126 bytes .../custom.rsi/accent-inhand-right.png | Bin 0 -> 126 bytes .../custom.rsi/equipped-HELMET.png | Bin 0 -> 535 bytes .../Envirohelms/custom.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/custom.rsi/icon.png | Bin 0 -> 325 bytes .../Envirohelms/custom.rsi/inhand-left.png | Bin 0 -> 261 bytes .../Envirohelms/custom.rsi/inhand-right.png | Bin 0 -> 270 bytes .../Head/Envirohelms/custom.rsi/meta.json | 101 + .../custom.rsi/midaccent-equipped-HELMET.png | Bin 0 -> 177 bytes .../Envirohelms/custom.rsi/midaccent-icon.png | Bin 0 -> 121 bytes .../custom.rsi/midaccent-inhand-left.png | Bin 0 -> 122 bytes .../custom.rsi/midaccent-inhand-right.png | Bin 0 -> 123 bytes .../custom.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/custom.rsi/on-inhand-left.png | Bin 0 -> 168 bytes .../custom.rsi/on-inhand-right.png | Bin 0 -> 166 bytes .../custom.rsi/sideaccent-equipped-HELMET.png | Bin 0 -> 196 bytes .../custom.rsi/sideaccent-icon.png | Bin 0 -> 119 bytes .../custom.rsi/sideaccent-inhand-left.png | Bin 0 -> 145 bytes .../custom.rsi/sideaccent-inhand-right.png | Bin 0 -> 146 bytes .../custom.rsi/visor-equipped-HELMET.png | Bin 0 -> 270 bytes .../Envirohelms/custom.rsi/visor-icon.png | Bin 0 -> 174 bytes .../custom.rsi/visor-inhand-left.png | Bin 0 -> 169 bytes .../custom.rsi/visor-inhand-right.png | Bin 0 -> 167 bytes .../engineering.rsi/equipped-HELMET.png | Bin 0 -> 783 bytes .../engineering.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/engineering.rsi/icon.png | Bin 0 -> 421 bytes .../Envirohelms/engineering.rsi/meta.json | 25 + .../engineering.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../genetics.rsi/equipped-HELMET.png | Bin 0 -> 811 bytes .../Envirohelms/genetics.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/genetics.rsi/icon.png | Bin 0 -> 433 bytes .../Head/Envirohelms/genetics.rsi/meta.json | 25 + .../genetics.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/hop.rsi/equipped-HELMET.png | Bin 0 -> 787 bytes .../Head/Envirohelms/hop.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/hop.rsi/icon.png | Bin 0 -> 407 bytes .../Head/Envirohelms/hop.rsi/meta.json | 25 + .../hop.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/hos.rsi/equipped-HELMET.png | Bin 0 -> 856 bytes .../Head/Envirohelms/hos.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/hos.rsi/icon.png | Bin 0 -> 451 bytes .../Head/Envirohelms/hos.rsi/meta.json | 25 + .../hos.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../hydroponics.rsi/equipped-HELMET.png | Bin 0 -> 860 bytes .../hydroponics.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/hydroponics.rsi/icon.png | Bin 0 -> 453 bytes .../Envirohelms/hydroponics.rsi/meta.json | 25 + .../hydroponics.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../janitor.rsi/equipped-HELMET.png | Bin 0 -> 860 bytes .../Envirohelms/janitor.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/janitor.rsi/icon.png | Bin 0 -> 441 bytes .../Head/Envirohelms/janitor.rsi/meta.json | 25 + .../janitor.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../medical.rsi/equipped-HELMET.png | Bin 0 -> 802 bytes .../Envirohelms/medical.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/medical.rsi/icon.png | Bin 0 -> 429 bytes .../Head/Envirohelms/medical.rsi/meta.json | 25 + .../medical.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/mime.rsi/equipped-HELMET.png | Bin 0 -> 772 bytes .../Head/Envirohelms/mime.rsi/icon-flash.png | Bin 0 -> 158 bytes .../Head/Envirohelms/mime.rsi/icon.png | Bin 0 -> 414 bytes .../Head/Envirohelms/mime.rsi/meta.json | 25 + .../mime.rsi/on-equipped-HELMET.png | Bin 0 -> 192 bytes .../paramedic.rsi/equipped-HELMET.png | Bin 0 -> 792 bytes .../Envirohelms/paramedic.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/paramedic.rsi/icon.png | Bin 0 -> 439 bytes .../Head/Envirohelms/paramedic.rsi/meta.json | 25 + .../paramedic.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/plain.rsi/equipped-HELMET.png | Bin 0 -> 815 bytes .../Head/Envirohelms/plain.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/plain.rsi/icon.png | Bin 0 -> 438 bytes .../Envirohelms/plain.rsi/inhand-left.png | Bin 0 -> 448 bytes .../Envirohelms/plain.rsi/inhand-right.png | Bin 0 -> 449 bytes .../Head/Envirohelms/plain.rsi/meta.json | 41 + .../plain.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/plain.rsi/on-inhand-left.png | Bin 0 -> 168 bytes .../Envirohelms/plain.rsi/on-inhand-right.png | Bin 0 -> 166 bytes .../Envirohelms/rd.rsi/equipped-HELMET.png | Bin 0 -> 865 bytes .../Head/Envirohelms/rd.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Clothing/Head/Envirohelms/rd.rsi/icon.png | Bin 0 -> 442 bytes .../Head/Envirohelms/rd.rsi/meta.json | 25 + .../Envirohelms/rd.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../roboticist.rsi/equipped-HELMET.png | Bin 0 -> 832 bytes .../Envirohelms/roboticist.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/roboticist.rsi/icon.png | Bin 0 -> 436 bytes .../Head/Envirohelms/roboticist.rsi/meta.json | 25 + .../roboticist.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../salvage.rsi/equipped-HELMET.png | Bin 0 -> 849 bytes .../Envirohelms/salvage.rsi/icon-flash.png | Bin 0 -> 196 bytes .../Head/Envirohelms/salvage.rsi/icon.png | Bin 0 -> 461 bytes .../Head/Envirohelms/salvage.rsi/meta.json | 25 + .../salvage.rsi/on-equipped-HELMET.png | Bin 0 -> 316 bytes .../scientist.rsi/equipped-HELMET.png | Bin 0 -> 819 bytes .../Envirohelms/scientist.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/scientist.rsi/icon.png | Bin 0 -> 439 bytes .../Head/Envirohelms/scientist.rsi/meta.json | 25 + .../scientist.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../tacticool.rsi/equipped-HELMET.png | Bin 0 -> 814 bytes .../Envirohelms/tacticool.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/tacticool.rsi/icon.png | Bin 0 -> 477 bytes .../Head/Envirohelms/tacticool.rsi/meta.json | 25 + .../tacticool.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../virology.rsi/equipped-HELMET.png | Bin 0 -> 788 bytes .../Envirohelms/virology.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/virology.rsi/icon.png | Bin 0 -> 431 bytes .../Head/Envirohelms/virology.rsi/meta.json | 25 + .../virology.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../warden.rsi/equipped-HELMET.png | Bin 0 -> 847 bytes .../Envirohelms/warden.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/warden.rsi/icon.png | Bin 0 -> 453 bytes .../Head/Envirohelms/warden.rsi/meta.json | 25 + .../warden.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../Envirohelms/white.rsi/equipped-HELMET.png | Bin 0 -> 779 bytes .../Head/Envirohelms/white.rsi/icon-flash.png | Bin 0 -> 169 bytes .../Head/Envirohelms/white.rsi/icon.png | Bin 0 -> 418 bytes .../Head/Envirohelms/white.rsi/meta.json | 25 + .../white.rsi/on-equipped-HELMET.png | Bin 0 -> 313 bytes .../equipped-INNERCLOTHING.png | Bin 0 -> 1996 bytes .../Envirosuits/ancientvoid.rsi/icon.png | Bin 0 -> 748 bytes .../Envirosuits/ancientvoid.rsi/meta.json | 18 + .../atmos.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1707 bytes .../Uniforms/Envirosuits/atmos.rsi/icon.png | Bin 0 -> 508 bytes .../Uniforms/Envirosuits/atmos.rsi/meta.json | 18 + .../equipped-INNERCLOTHING.png | Bin 0 -> 1953 bytes .../blueshield_officer.rsi/icon.png | Bin 0 -> 554 bytes .../blueshield_officer.rsi/meta.json | 18 + .../captain.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 2030 bytes .../Uniforms/Envirosuits/captain.rsi/icon.png | Bin 0 -> 517 bytes .../Envirosuits/captain.rsi/meta.json | 18 + .../cargo.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1858 bytes .../Uniforms/Envirosuits/cargo.rsi/icon.png | Bin 0 -> 487 bytes .../Uniforms/Envirosuits/cargo.rsi/meta.json | 18 + .../ce.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1819 bytes .../Uniforms/Envirosuits/ce.rsi/icon.png | Bin 0 -> 516 bytes .../Uniforms/Envirosuits/ce.rsi/meta.json | 18 + .../equipped-INNERCLOTHING.png | Bin 0 -> 1810 bytes .../Envirosuits/centcom_agent.rsi/icon.png | Bin 0 -> 480 bytes .../Envirosuits/centcom_agent.rsi/meta.json | 18 + .../equipped-INNERCLOTHING.png | Bin 0 -> 1720 bytes .../Envirosuits/centcom_officer.rsi/icon.png | Bin 0 -> 533 bytes .../Envirosuits/centcom_officer.rsi/meta.json | 18 + .../equipped-INNERCLOTHING.png | Bin 0 -> 1798 bytes .../Envirosuits/centcom_official.rsi/icon.png | Bin 0 -> 563 bytes .../centcom_official.rsi/meta.json | 18 + .../chaplain.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1632 bytes .../Envirosuits/chaplain.rsi/icon.png | Bin 0 -> 424 bytes .../Envirosuits/chaplain.rsi/meta.json | 18 + .../chef.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1619 bytes .../Uniforms/Envirosuits/chef.rsi/icon.png | Bin 0 -> 477 bytes .../Uniforms/Envirosuits/chef.rsi/meta.json | 18 + .../chemist.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1686 bytes .../Uniforms/Envirosuits/chemist.rsi/icon.png | Bin 0 -> 490 bytes .../Envirosuits/chemist.rsi/meta.json | 18 + .../clown.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1831 bytes .../Uniforms/Envirosuits/clown.rsi/icon.png | Bin 0 -> 509 bytes .../Uniforms/Envirosuits/clown.rsi/meta.json | 18 + .../cmo.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1854 bytes .../Uniforms/Envirosuits/cmo.rsi/icon.png | Bin 0 -> 550 bytes .../Uniforms/Envirosuits/cmo.rsi/meta.json | 18 + .../coroner.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1801 bytes .../Uniforms/Envirosuits/coroner.rsi/icon.png | Bin 0 -> 549 bytes .../Envirosuits/coroner.rsi/meta.json | 18 + .../accent-equipped-INNERCLOTHING.png | Bin 0 -> 352 bytes .../Envirosuits/custom.rsi/accent-icon.png | Bin 0 -> 131 bytes .../custom.rsi/accent-inhand-left.png | Bin 0 -> 150 bytes .../custom.rsi/accent-inhand-right.png | Bin 0 -> 157 bytes .../accent2-equipped-INNERCLOTHING.png | Bin 0 -> 456 bytes .../Envirosuits/custom.rsi/accent2-icon.png | Bin 0 -> 200 bytes .../custom.rsi/accent2-inhand-left.png | Bin 0 -> 243 bytes .../custom.rsi/accent2-inhand-right.png | Bin 0 -> 235 bytes ...cent2_chestonly-equipped-INNERCLOTHING.png | Bin 0 -> 213 bytes .../custom.rsi/accent2_chestonly-icon.png | Bin 0 -> 146 bytes .../accent2_chestonly-inhand-left.png | Bin 0 -> 179 bytes .../accent2_chestonly-inhand-right.png | Bin 0 -> 189 bytes .../accent3-equipped-INNERCLOTHING.png | Bin 0 -> 427 bytes .../Envirosuits/custom.rsi/accent3-icon.png | Bin 0 -> 168 bytes .../custom.rsi/accent3-inhand-left.png | Bin 0 -> 275 bytes .../custom.rsi/accent3-inhand-right.png | Bin 0 -> 235 bytes ...cent3_chestonly-equipped-INNERCLOTHING.png | Bin 0 -> 249 bytes .../custom.rsi/accent3_chestonly-icon.png | Bin 0 -> 128 bytes .../accent3_chestonly-inhand-left.png | Bin 0 -> 211 bytes .../accent3_chestonly-inhand-right.png | Bin 0 -> 180 bytes .../accentalt-equipped-INNERCLOTHING.png | Bin 0 -> 330 bytes ...ccentalt_noback-equipped-INNERCLOTHING.png | Bin 0 -> 194 bytes ...accenthighlight-equipped-INNERCLOTHING.png | Bin 0 -> 116 bytes .../custom.rsi/accenthighlight-icon.png | Bin 0 -> 91 bytes .../accenthighlight-inhand-left.png | Bin 0 -> 109 bytes .../accenthighlight-inhand-right.png | Bin 0 -> 109 bytes .../accentprisoner-equipped-INNERCLOTHING.png | Bin 0 -> 482 bytes .../custom.rsi/accentprisoner-icon.png | Bin 0 -> 149 bytes .../custom.rsi/accentprisoner-inhand-left.png | Bin 0 -> 200 bytes .../accentprisoner-inhand-right.png | Bin 0 -> 203 bytes .../backaccent-equipped-INNERCLOTHING.png | Bin 0 -> 179 bytes .../belt-equipped-INNERCLOTHING.png | Bin 0 -> 234 bytes .../Envirosuits/custom.rsi/belt-icon.png | Bin 0 -> 127 bytes .../custom.rsi/belt-inhand-left.png | Bin 0 -> 137 bytes .../custom.rsi/belt-inhand-right.png | Bin 0 -> 139 bytes .../beltbuckle-equipped-INNERCLOTHING.png | Bin 0 -> 121 bytes .../custom.rsi/beltbuckle-icon.png | Bin 0 -> 97 bytes .../custom.rsi/beltbuckle-inhand-left.png | Bin 0 -> 109 bytes .../custom.rsi/beltbuckle-inhand-right.png | Bin 0 -> 107 bytes ...eltbuckle_small-equipped-INNERCLOTHING.png | Bin 0 -> 110 bytes .../custom.rsi/beltbuckle_small-icon.png | Bin 0 -> 90 bytes .../beltbuckle_small-inhand-left.png | Bin 0 -> 108 bytes .../beltbuckle_small-inhand-right.png | Bin 0 -> 106 bytes .../buttons-equipped-INNERCLOTHING.png | Bin 0 -> 114 bytes .../Envirosuits/custom.rsi/buttons-icon.png | Bin 0 -> 93 bytes .../custom.rsi/buttons-inhand-left.png | Bin 0 -> 117 bytes .../custom.rsi/buttons-inhand-right.png | Bin 0 -> 117 bytes .../clip-equipped-INNERCLOTHING.png | Bin 0 -> 110 bytes .../Envirosuits/custom.rsi/clip-icon.png | Bin 0 -> 94 bytes .../custom.rsi/clip-inhand-left.png | Bin 0 -> 113 bytes .../custom.rsi/clip-inhand-right.png | Bin 0 -> 110 bytes .../clip_right-equipped-INNERCLOTHING.png | Bin 0 -> 106 bytes .../custom.rsi/clip_right-icon.png | Bin 0 -> 90 bytes .../custom.rsi/clip_right-inhand-left.png | Bin 0 -> 109 bytes .../custom.rsi/clip_right-inhand-right.png | Bin 0 -> 107 bytes .../corneraccent-equipped-INNERCLOTHING.png | Bin 0 -> 119 bytes .../custom.rsi/corneraccent-icon.png | Bin 0 -> 101 bytes .../custom.rsi/corneraccent-inhand-left.png | Bin 0 -> 114 bytes .../custom.rsi/corneraccent-inhand-right.png | Bin 0 -> 110 bytes .../cuffs-equipped-INNERCLOTHING.png | Bin 0 -> 155 bytes .../cuffs_upper-equipped-INNERCLOTHING.png | Bin 0 -> 146 bytes .../custom.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1383 bytes .../heart-equipped-INNERCLOTHING.png | Bin 0 -> 203 bytes .../Envirosuits/custom.rsi/heart-icon.png | Bin 0 -> 137 bytes .../custom.rsi/heart-inhand-left.png | Bin 0 -> 150 bytes .../custom.rsi/heart-inhand-right.png | Bin 0 -> 152 bytes .../Uniforms/Envirosuits/custom.rsi/icon.png | Bin 0 -> 378 bytes .../Envirosuits/custom.rsi/inhand-left.png | Bin 0 -> 479 bytes .../Envirosuits/custom.rsi/inhand-right.png | Bin 0 -> 464 bytes .../loweraccent-equipped-INNERCLOTHING.png | Bin 0 -> 230 bytes .../loweraccent2-equipped-INNERCLOTHING.png | Bin 0 -> 278 bytes ...raccent2_bottom-equipped-INNERCLOTHING.png | Bin 0 -> 169 bytes ...oweraccent2_top-equipped-INNERCLOTHING.png | Bin 0 -> 248 bytes .../Uniforms/Envirosuits/custom.rsi/meta.json | 374 ++ .../pants-equipped-INNERCLOTHING.png | Bin 0 -> 649 bytes .../Envirosuits/custom.rsi/pants-icon.png | Bin 0 -> 188 bytes .../custom.rsi/pants-inhand-left.png | Bin 0 -> 224 bytes .../custom.rsi/pants-inhand-right.png | Bin 0 -> 229 bytes .../custom.rsi/pin-equipped-INNERCLOTHING.png | Bin 0 -> 120 bytes .../Envirosuits/custom.rsi/pin-icon.png | Bin 0 -> 103 bytes .../custom.rsi/pin-inhand-left.png | Bin 0 -> 111 bytes .../custom.rsi/pin-inhand-right.png | Bin 0 -> 108 bytes .../plaintop-equipped-INNERCLOTHING.png | Bin 0 -> 368 bytes .../Envirosuits/custom.rsi/plaintop-icon.png | Bin 0 -> 295 bytes .../custom.rsi/plaintop-inhand-left.png | Bin 0 -> 283 bytes .../custom.rsi/plaintop-inhand-right.png | Bin 0 -> 305 bytes .../shoes-equipped-INNERCLOTHING.png | Bin 0 -> 346 bytes .../shoesdark-equipped-INNERCLOTHING.png | Bin 0 -> 337 bytes .../soles-equipped-INNERCLOTHING.png | Bin 0 -> 186 bytes .../custom.rsi/tie-equipped-INNERCLOTHING.png | Bin 0 -> 164 bytes .../Envirosuits/custom.rsi/tie-icon.png | Bin 0 -> 117 bytes .../custom.rsi/tie-inhand-left.png | Bin 0 -> 149 bytes .../custom.rsi/tie-inhand-right.png | Bin 0 -> 154 bytes .../tieclip-equipped-INNERCLOTHING.png | Bin 0 -> 115 bytes .../Envirosuits/custom.rsi/tieclip-icon.png | Bin 0 -> 94 bytes .../custom.rsi/tieclip-inhand-left.png | Bin 0 -> 113 bytes .../custom.rsi/tieclip-inhand-right.png | Bin 0 -> 110 bytes .../equipped-INNERCLOTHING.png | Bin 0 -> 1658 bytes .../Envirosuits/engineering.rsi/icon.png | Bin 0 -> 488 bytes .../Envirosuits/engineering.rsi/meta.json | 18 + .../equipped-INNERCLOTHING.png | Bin 0 -> 1925 bytes .../Envirosuits/enviroslacks.rsi/icon.png | Bin 0 -> 532 bytes .../Envirosuits/enviroslacks.rsi/meta.json | 18 + .../genetics.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1701 bytes .../Envirosuits/genetics.rsi/icon.png | Bin 0 -> 533 bytes .../Envirosuits/genetics.rsi/meta.json | 18 + .../hop.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1957 bytes .../Uniforms/Envirosuits/hop.rsi/icon.png | Bin 0 -> 530 bytes .../Uniforms/Envirosuits/hop.rsi/meta.json | 18 + .../hos.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1995 bytes .../Uniforms/Envirosuits/hos.rsi/icon.png | Bin 0 -> 521 bytes .../Uniforms/Envirosuits/hos.rsi/meta.json | 18 + .../equipped-INNERCLOTHING.png | Bin 0 -> 1795 bytes .../Envirosuits/hydroponics.rsi/icon.png | Bin 0 -> 532 bytes .../Envirosuits/hydroponics.rsi/meta.json | 18 + .../janitor.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1644 bytes .../Uniforms/Envirosuits/janitor.rsi/icon.png | Bin 0 -> 491 bytes .../Envirosuits/janitor.rsi/meta.json | 18 + .../medical.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1709 bytes .../Uniforms/Envirosuits/medical.rsi/icon.png | Bin 0 -> 547 bytes .../Envirosuits/medical.rsi/meta.json | 18 + .../mime.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1764 bytes .../Uniforms/Envirosuits/mime.rsi/icon.png | Bin 0 -> 537 bytes .../Uniforms/Envirosuits/mime.rsi/meta.json | 18 + .../paramedic.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1603 bytes .../Envirosuits/paramedic.rsi/icon.png | Bin 0 -> 534 bytes .../Envirosuits/paramedic.rsi/meta.json | 18 + .../plain.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1690 bytes .../Uniforms/Envirosuits/plain.rsi/icon.png | Bin 0 -> 473 bytes .../Envirosuits/plain.rsi/inhand-left.png | Bin 0 -> 698 bytes .../Envirosuits/plain.rsi/inhand-right.png | Bin 0 -> 612 bytes .../Uniforms/Envirosuits/plain.rsi/meta.json | 26 + .../rd.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1826 bytes .../Uniforms/Envirosuits/rd.rsi/icon.png | Bin 0 -> 526 bytes .../Uniforms/Envirosuits/rd.rsi/meta.json | 18 + .../roboticist.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1576 bytes .../Envirosuits/roboticist.rsi/icon.png | Bin 0 -> 460 bytes .../Envirosuits/roboticist.rsi/meta.json | 18 + .../salvage.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1878 bytes .../Uniforms/Envirosuits/salvage.rsi/icon.png | Bin 0 -> 563 bytes .../Envirosuits/salvage.rsi/meta.json | 18 + .../scientist.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1604 bytes .../Envirosuits/scientist.rsi/icon.png | Bin 0 -> 479 bytes .../Envirosuits/scientist.rsi/meta.json | 18 + .../tacticool.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1680 bytes .../Envirosuits/tacticool.rsi/icon.png | Bin 0 -> 448 bytes .../Envirosuits/tacticool.rsi/meta.json | 18 + .../virology.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1589 bytes .../Envirosuits/virology.rsi/icon.png | Bin 0 -> 513 bytes .../Envirosuits/virology.rsi/meta.json | 18 + .../warden.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1832 bytes .../Uniforms/Envirosuits/warden.rsi/icon.png | Bin 0 -> 513 bytes .../Uniforms/Envirosuits/warden.rsi/meta.json | 18 + .../Textures/Effects/speech.rsi/meta.json | 53 +- .../Effects/speech.rsi/plasmaman0.png | Bin 0 -> 486 bytes .../Effects/speech.rsi/plasmaman1.png | Bin 0 -> 252 bytes .../Effects/speech.rsi/plasmaman2.png | Bin 0 -> 225 bytes .../Textures/Effects/speech.rsi/skeleton0.png | Bin 0 -> 416 bytes .../Textures/Effects/speech.rsi/skeleton1.png | Bin 0 -> 160 bytes .../Textures/Effects/speech.rsi/skeleton2.png | Bin 0 -> 155 bytes .../Interface/VerbIcons/ATTRIBUTION.txt | 3 + .../Interface/VerbIcons/extinguisher.svg | 7 + .../VerbIcons/extinguisher.svg.192dpi.png | Bin 0 -> 996 bytes .../Mobs/Customization/plasmaman.rsi/eyes.png | Bin 0 -> 132 bytes .../Customization/plasmaman.rsi/meta.json | 15 + .../Species/Plasmaman/organs.rsi/brain.png | Bin 0 -> 1132 bytes .../Species/Plasmaman/organs.rsi/eyes.png | Bin 0 -> 269 bytes .../Plasmaman/organs.rsi/heart-off.png | Bin 0 -> 274 bytes .../Species/Plasmaman/organs.rsi/heart-on.png | Bin 0 -> 1257 bytes .../Species/Plasmaman/organs.rsi/kidneys.png | Bin 0 -> 333 bytes .../Species/Plasmaman/organs.rsi/liver.png | Bin 0 -> 359 bytes .../Species/Plasmaman/organs.rsi/lungs.png | Bin 0 -> 372 bytes .../Species/Plasmaman/organs.rsi/meta.json | 65 + .../Species/Plasmaman/organs.rsi/stomach.png | Bin 0 -> 424 bytes .../Species/Plasmaman/organs.rsi/tongue.png | Bin 0 -> 344 bytes .../Mobs/Species/Plasmaman/parts.rsi/full.png | Bin 0 -> 1045 bytes .../Species/Plasmaman/parts.rsi/head_f.png | Bin 0 -> 348 bytes .../Species/Plasmaman/parts.rsi/head_m.png | Bin 0 -> 348 bytes .../Species/Plasmaman/parts.rsi/l_arm.png | Bin 0 -> 263 bytes .../Species/Plasmaman/parts.rsi/l_foot.png | Bin 0 -> 198 bytes .../Species/Plasmaman/parts.rsi/l_hand.png | Bin 0 -> 180 bytes .../Species/Plasmaman/parts.rsi/l_leg.png | Bin 0 -> 192 bytes .../Species/Plasmaman/parts.rsi/meta.json | 62 + .../Species/Plasmaman/parts.rsi/r_arm.png | Bin 0 -> 268 bytes .../Species/Plasmaman/parts.rsi/r_foot.png | Bin 0 -> 198 bytes .../Species/Plasmaman/parts.rsi/r_hand.png | Bin 0 -> 181 bytes .../Species/Plasmaman/parts.rsi/r_leg.png | Bin 0 -> 196 bytes .../Species/Plasmaman/parts.rsi/torso_f.png | Bin 0 -> 475 bytes .../Species/Plasmaman/parts.rsi/torso_m.png | Bin 0 -> 475 bytes .../Misc/extinguisher_refill.rsi/icon.png | Bin 0 -> 627 bytes .../extinguisher_refill.rsi/inhand-left.png | Bin 0 -> 328 bytes .../extinguisher_refill.rsi/inhand-right.png | Bin 0 -> 322 bytes .../Misc/extinguisher_refill.rsi/meta.json | 22 + 647 files changed, 13246 insertions(+), 129 deletions(-) create mode 100644 Content.Client/SelfExtinguisher/SelfExtinguisherSystem.cs create mode 100644 Content.Server/Atmos/Components/IgniteFromGasComponent.cs create mode 100644 Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs create mode 100644 Content.Server/Atmos/Components/IgniteFromGasPartComponent.cs create mode 100644 Content.Server/Atmos/EntitySystems/IgniteFromGasSystem.cs create mode 100644 Content.Server/Bed/Components/InStasisComponent.cs create mode 100644 Content.Server/Jobs/ModifyEnvirohelmSpecial.cs create mode 100644 Content.Server/Jobs/ModifyEnvirosuitSpecial.cs create mode 100644 Content.Server/SelfExtinguisher/SelfExtinguisherSystem.cs create mode 100644 Content.Shared/Humanoid/NamingSystem.Roman.cs create mode 100644 Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs create mode 100644 Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs create mode 100644 Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs create mode 100644 Resources/Audio/Voice/Plasmaman/attributions.yml create mode 100644 Resources/Audio/Voice/Plasmaman/plasmaman_scream_1.ogg create mode 100644 Resources/Audio/Voice/Plasmaman/plasmaman_scream_2.ogg create mode 100644 Resources/Audio/Voice/Plasmaman/plasmaman_scream_3.ogg create mode 100644 Resources/Audio/Weapons/firepunch1.ogg create mode 100644 Resources/Audio/Weapons/firepunch2.ogg create mode 100644 Resources/Audio/Weapons/firepunch3.ogg create mode 100644 Resources/Audio/Weapons/firepunch4.ogg create mode 100644 Resources/Fonts/LDFComicSans/LDFComicSans-Bold.ttf create mode 100644 Resources/Fonts/LDFComicSans/LDFComicSans-HairlineMedium.ttf create mode 100644 Resources/Fonts/LDFComicSans/LDFComicSans-Light.ttf create mode 100644 Resources/Fonts/LDFComicSans/LDFComicSans-Medium.ttf create mode 100644 Resources/Fonts/LDFComicSans/LICENSE.txt create mode 100644 Resources/Locale/en-US/envirosuit/envirosuit.ftl create mode 100644 Resources/Locale/en-US/loadouts/generic/species.ftl create mode 100644 Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl create mode 100644 Resources/Prototypes/Body/Organs/plasmaman.yml create mode 100644 Resources/Prototypes/Body/Parts/plasmaman.yml create mode 100644 Resources/Prototypes/Body/Prototypes/plasmaman.yml create mode 100644 Resources/Prototypes/Datasets/Names/plasmaman.yml create mode 100644 Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml create mode 100644 Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml create mode 100644 Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml create mode 100644 Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml create mode 100644 Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml create mode 100644 Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml create mode 100644 Resources/Prototypes/InventoryTemplates/plasmaman_inventory_template.yml create mode 100644 Resources/Prototypes/Language/Species-Specific/skeleton.yml create mode 100644 Resources/Prototypes/Loadouts/Generic/plasmaman.yml create mode 100644 Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml create mode 100644 Resources/Prototypes/Species/plasmaman.yml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml create mode 100644 Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/equipped-HAND.png create mode 100644 Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/visor-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/white.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon-flash.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/white.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Head/Envirohelms/white.rsi/on-equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt_noback-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/backaccent-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs_upper-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_bottom-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_top-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoes-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoesdark-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/soles-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/meta.json create mode 100644 Resources/Textures/Effects/speech.rsi/plasmaman0.png create mode 100644 Resources/Textures/Effects/speech.rsi/plasmaman1.png create mode 100644 Resources/Textures/Effects/speech.rsi/plasmaman2.png create mode 100644 Resources/Textures/Effects/speech.rsi/skeleton0.png create mode 100644 Resources/Textures/Effects/speech.rsi/skeleton1.png create mode 100644 Resources/Textures/Effects/speech.rsi/skeleton2.png create mode 100644 Resources/Textures/Interface/VerbIcons/extinguisher.svg create mode 100644 Resources/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png create mode 100644 Resources/Textures/Mobs/Customization/plasmaman.rsi/eyes.png create mode 100644 Resources/Textures/Mobs/Customization/plasmaman.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/brain.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/eyes.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-off.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-on.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/kidneys.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/liver.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/lungs.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/stomach.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/tongue.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/full.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_f.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_m.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_arm.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_foot.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_hand.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_leg.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_arm.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_foot.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_hand.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_leg.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_f.png create mode 100644 Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_m.png create mode 100644 Resources/Textures/Objects/Misc/extinguisher_refill.rsi/icon.png create mode 100644 Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Misc/extinguisher_refill.rsi/meta.json diff --git a/Content.Client/Clothing/ClientClothingSystem.cs b/Content.Client/Clothing/ClientClothingSystem.cs index cfed1cb0994a..12ea7f1d25aa 100644 --- a/Content.Client/Clothing/ClientClothingSystem.cs +++ b/Content.Client/Clothing/ClientClothingSystem.cs @@ -195,6 +195,20 @@ private void OnDidUnequip(EntityUid uid, SpriteComponent component, DidUnequipEv if (!inventorySlots.VisualLayerKeys.TryGetValue(args.Slot, out var revealedLayers)) return; + if (TryComp(args.Equipment, out var hideLayer) && + hideLayer.ClothingSlots != null) + { + foreach (var clothingSlot in hideLayer.ClothingSlots) + { + if (!inventorySlots.VisualLayerKeys.TryGetValue(clothingSlot, out var revealedLayersToShow)) + continue; + + foreach (var layerToShow in revealedLayersToShow) + component.LayerSetVisible(layerToShow, true); + } + inventorySlots.HiddenSlots.ExceptWith(hideLayer.ClothingSlots); + } + // Remove old layers. We could also just set them to invisible, but as items may add arbitrary layers, this // may eventually bloat the player with lots of invisible layers. foreach (var layer in revealedLayers) @@ -264,6 +278,20 @@ private void RenderEquipment(EntityUid equipee, EntityUid equipment, string slot return; } + if (TryComp(equipment, out var hideLayer) && + hideLayer.ClothingSlots != null) + { + foreach (var clothingSlot in hideLayer.ClothingSlots) + { + if (!inventorySlots.VisualLayerKeys.TryGetValue(clothingSlot, out var revealedLayersToHide)) + continue; + + foreach (var layerToHide in revealedLayersToHide) + sprite.LayerSetVisible(layerToHide, false); + } + inventorySlots.HiddenSlots.UnionWith(hideLayer.ClothingSlots); + } + var displacementData = inventory.Displacements.GetValueOrDefault(slot); if (clothingComponent.RenderLayer != null) @@ -313,6 +341,9 @@ private void RenderEquipment(EntityUid equipee, EntityUid equipment, string slot if (slot == Jumpsuit) layerData.Shader ??= "StencilDraw"; + if (inventorySlots.HiddenSlots.Contains(slot)) + layerData.Visible = false; + sprite.LayerSetData(index, layerData); layer.Offset += slotDef.Offset; diff --git a/Content.Client/Effects/ColorFlashEffectSystem.cs b/Content.Client/Effects/ColorFlashEffectSystem.cs index af0bd4b600dd..bc08607410e2 100644 --- a/Content.Client/Effects/ColorFlashEffectSystem.cs +++ b/Content.Client/Effects/ColorFlashEffectSystem.cs @@ -27,12 +27,12 @@ public override void Initialize() SubscribeLocalEvent(OnEffectAnimationCompleted); } - public override void RaiseEffect(Color color, List entities, Filter filter) + public override void RaiseEffect(Color color, List entities, Filter filter, float? animationLength = null) { if (!_timing.IsFirstTimePredicted) return; - OnColorFlashEffect(new ColorFlashEffectEvent(color, GetNetEntityList(entities))); + OnColorFlashEffect(new ColorFlashEffectEvent(color, GetNetEntityList(entities), animationLength)); } private void OnEffectAnimationCompleted(EntityUid uid, ColorFlashEffectComponent component, AnimationCompletedEvent args) @@ -48,7 +48,7 @@ private void OnEffectAnimationCompleted(EntityUid uid, ColorFlashEffectComponent RemCompDeferred(uid); } - private Animation? GetDamageAnimation(EntityUid uid, Color color, SpriteComponent? sprite = null) + private Animation? GetDamageAnimation(EntityUid uid, Color color, SpriteComponent? sprite = null, float? animationLength = null) { if (!Resolve(uid, ref sprite, false)) return null; @@ -56,7 +56,7 @@ private void OnEffectAnimationCompleted(EntityUid uid, ColorFlashEffectComponent // 90% of them are going to be this so why allocate a new class. return new Animation { - Length = TimeSpan.FromSeconds(AnimationLength), + Length = TimeSpan.FromSeconds(animationLength ?? AnimationLength), AnimationTracks = { new AnimationTrackComponentProperty @@ -67,7 +67,7 @@ private void OnEffectAnimationCompleted(EntityUid uid, ColorFlashEffectComponent KeyFrames = { new AnimationTrackProperty.KeyFrame(color, 0f), - new AnimationTrackProperty.KeyFrame(sprite.Color, AnimationLength) + new AnimationTrackProperty.KeyFrame(sprite.Color, animationLength ?? AnimationLength) } } } @@ -112,7 +112,7 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev) sprite.Color = effect.Color; } - var animation = GetDamageAnimation(ent, color, sprite); + var animation = GetDamageAnimation(ent, color, sprite, ev.AnimationLength); if (animation == null) continue; diff --git a/Content.Client/Inventory/InventorySlotsComponent.cs b/Content.Client/Inventory/InventorySlotsComponent.cs index 84bc7d54392e..089551c778c0 100644 --- a/Content.Client/Inventory/InventorySlotsComponent.cs +++ b/Content.Client/Inventory/InventorySlotsComponent.cs @@ -16,4 +16,11 @@ public sealed partial class InventorySlotsComponent : Component [ViewVariables] [Access(typeof(ClientInventorySystem), Other = AccessPermissions.ReadWriteExecute)] // FIXME Friends public readonly Dictionary> VisualLayerKeys = new(); + + /// + /// The slots whose associated visual layers are hidden. + /// + [ViewVariables] + [Access(typeof(ClientInventorySystem), Other = AccessPermissions.ReadWriteExecute)] + public readonly HashSet HiddenSlots = new(); } diff --git a/Content.Client/Light/Components/LightFadeComponent.cs b/Content.Client/Light/Components/LightFadeComponent.cs index de31dd90e5e2..e79693c3684a 100644 --- a/Content.Client/Light/Components/LightFadeComponent.cs +++ b/Content.Client/Light/Components/LightFadeComponent.cs @@ -8,4 +8,10 @@ public sealed partial class LightFadeComponent : Component { [ViewVariables(VVAccess.ReadWrite), DataField("duration")] public float Duration = 0.5f; + + // + // The duration of the fade-in effect before starting the fade out effect. + // + [ViewVariables(VVAccess.ReadWrite), DataField] + public float RampUpDuration = 0f; } diff --git a/Content.Client/Light/EntitySystems/LightFadeSystem.cs b/Content.Client/Light/EntitySystems/LightFadeSystem.cs index c4e4fff5fb04..eb32125006d4 100644 --- a/Content.Client/Light/EntitySystems/LightFadeSystem.cs +++ b/Content.Client/Light/EntitySystems/LightFadeSystem.cs @@ -34,7 +34,8 @@ private void OnFadeStartup(EntityUid uid, LightFadeComponent component, Componen InterpolationMode = AnimationInterpolationMode.Cubic, KeyFrames = { - new AnimationTrackProperty.KeyFrame(light.Energy, 0f), + new AnimationTrackProperty.KeyFrame(0f, 0f), + new AnimationTrackProperty.KeyFrame(light.Energy, component.RampUpDuration), new AnimationTrackProperty.KeyFrame(0f, component.Duration) } } diff --git a/Content.Client/Lobby/LobbyUIController.cs b/Content.Client/Lobby/LobbyUIController.cs index a300e8c0542d..2c63c2aa6b3e 100644 --- a/Content.Client/Lobby/LobbyUIController.cs +++ b/Content.Client/Lobby/LobbyUIController.cs @@ -3,6 +3,7 @@ using Content.Client.Inventory; using Content.Client.Lobby.UI; using Content.Client.Players.PlayTimeTracking; +using Content.Client.Station; using Content.Shared.CCVar; using Content.Shared.Clothing.Loadouts.Prototypes; using Content.Shared.Clothing.Loadouts.Systems; @@ -44,6 +45,7 @@ public sealed class LobbyUIController : UIController, IOnStateEntered(job.StartingGear); + gear = _stationSpawning.ApplySubGear(gear, profile, job); foreach (var slot in slots) { @@ -289,6 +292,12 @@ public void GiveDummyJobClothes(EntityUid dummy, JobPrototype job, HumanoidChara } } + /// Applies loadouts to the dummy. + public void GiveDummyLoadout(EntityUid dummy, JobPrototype job, HumanoidCharacterProfile profile) + { + _loadouts.ApplyCharacterLoadout(dummy, job, profile, _jobRequirements.GetRawPlayTimeTrackers(), _jobRequirements.IsWhitelisted(), out _); + } + /// Loads the profile onto a dummy entity public EntityUid LoadProfileEntity(HumanoidCharacterProfile? humanoid, bool jobClothes, bool loadouts) { @@ -312,7 +321,7 @@ public EntityUid LoadProfileEntity(HumanoidCharacterProfile? humanoid, bool jobC if (jobClothes) GiveDummyJobClothes(dummyEnt, job, humanoid); if (loadouts) - _loadouts.ApplyCharacterLoadout(dummyEnt, job, humanoid, _jobRequirements.GetRawPlayTimeTrackers(), _jobRequirements.IsWhitelisted(), out _); + GiveDummyLoadout(dummyEnt, job, humanoid); } return dummyEnt; diff --git a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs index 300929454722..673566875ceb 100644 --- a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs +++ b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs @@ -690,6 +690,20 @@ private void ReloadPreview() SpriteView.SetEntity(PreviewDummy); } + /// Reloads the dummy entity's clothes for preview + private void ReloadClothes() + { + if (Profile == null) + return; + + _controller.RemoveDummyClothes(PreviewDummy); + var job = _controller.GetPreferredJob(Profile); + if (ShowClothes.Pressed) + _controller.GiveDummyJobClothes(PreviewDummy, job, Profile); + if (ShowLoadouts.Pressed) + _controller.GiveDummyLoadout(PreviewDummy, job, Profile); + } + /// Resets the profile to the defaults public void ResetToDefault() { @@ -1265,6 +1279,7 @@ private void SetSpecies(string newSpecies) UpdateSpeciesGuidebookIcon(); IsDirty = true; ReloadProfilePreview(); + ReloadClothes(); // Species may have job-specific gear, reload the clothes } private void SetName(string newName) diff --git a/Content.Client/SelfExtinguisher/SelfExtinguisherSystem.cs b/Content.Client/SelfExtinguisher/SelfExtinguisherSystem.cs new file mode 100644 index 000000000000..0329cd487c25 --- /dev/null +++ b/Content.Client/SelfExtinguisher/SelfExtinguisherSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared.SelfExtinguisher; + +namespace Content.Server.SelfExtinguisher; + +public sealed partial class SelfExtinguisherSystem : SharedSelfExtinguisherSystem { } diff --git a/Content.Client/UserInterface/Systems/Actions/Controls/ActionButton.cs b/Content.Client/UserInterface/Systems/Actions/Controls/ActionButton.cs index 6be41af0d89e..40f6bd9bb35d 100644 --- a/Content.Client/UserInterface/Systems/Actions/Controls/ActionButton.cs +++ b/Content.Client/UserInterface/Systems/Actions/Controls/ActionButton.cs @@ -293,11 +293,15 @@ public void UpdateIcons() if (_action.BackgroundOn != null) _buttonBackgroundTexture = _spriteSys.Frame0(_action.BackgroundOn); } + else if (_action.IconDisabled is { } iconDisabled && !_action.Enabled) + SetActionIcon(_spriteSys.Frame0(iconDisabled)); + else if (_action.IconCooldown is { } iconCooldown && _action.Cooldown is { } cooldown && + cooldown.End > IoCManager.Resolve().CurTime) + SetActionIcon(_spriteSys.Frame0(iconCooldown)); else - { SetActionIcon(_action.Icon != null ? _spriteSys.Frame0(_action.Icon) : null); - _buttonBackgroundTexture = Theme.ResolveTexture("SlotBackground"); - } + + _buttonBackgroundTexture = Theme.ResolveTexture("SlotBackground"); } public void UpdateBackground() diff --git a/Content.IntegrationTests/Tests/StoreTests.cs b/Content.IntegrationTests/Tests/StoreTests.cs index e6763b6133e0..6bb434431525 100644 --- a/Content.IntegrationTests/Tests/StoreTests.cs +++ b/Content.IntegrationTests/Tests/StoreTests.cs @@ -112,6 +112,7 @@ await server.WaitAssertion(() => var prototypeCost = prototype.Cost[UplinkSystem.TelecrystalCurrencyPrototype]; var discountDownTo = prototype.DiscountDownTo[UplinkSystem.TelecrystalCurrencyPrototype]; + Assert.That(plainDiscountedCost.Value, Is.GreaterThanOrEqualTo(discountDownTo.Value), $"Expected discounted cost to be greater then DiscountDownTo value. ({itemId})"); Assert.That(plainDiscountedCost.Value, Is.LessThan(prototypeCost.Value), $"Expected discounted cost to be lower then prototype cost. ({itemId})"); diff --git a/Content.Server/Administration/Commands/SetOutfitCommand.cs b/Content.Server/Administration/Commands/SetOutfitCommand.cs index a7427d708cf1..4df38344ed8d 100644 --- a/Content.Server/Administration/Commands/SetOutfitCommand.cs +++ b/Content.Server/Administration/Commands/SetOutfitCommand.cs @@ -9,6 +9,7 @@ using Content.Shared.PDA; using Content.Shared.Preferences; using Content.Shared.Roles; +using Content.Shared.Station; using Robust.Shared.Console; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -92,6 +93,9 @@ public static bool SetOutfit(EntityUid target, string gear, IEntityManager entit var preferencesManager = IoCManager.Resolve(); var prefs = preferencesManager.GetPreferences(userId); profile = prefs.SelectedCharacter as HumanoidCharacterProfile; + + if (profile != null) + startingGear = IoCManager.Resolve().System().ApplySubGear(startingGear, profile); } var invSystem = entityManager.System(); diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index e1c7974307b5..1ca436d165e6 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -67,6 +67,13 @@ public sealed partial class FlammableComponent : Component [DataField] public bool CanExtinguish = true; + /// + /// Should the component ignore fire protection when on fire? + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public bool IgnoreFireProtection = false; + /// /// How many firestacks should be applied to component when being set on fire? /// diff --git a/Content.Server/Atmos/Components/IgniteFromGasComponent.cs b/Content.Server/Atmos/Components/IgniteFromGasComponent.cs new file mode 100644 index 000000000000..0d20d8553bd6 --- /dev/null +++ b/Content.Server/Atmos/Components/IgniteFromGasComponent.cs @@ -0,0 +1,48 @@ +using Content.Shared._Shitmed.Targeting; +using Content.Shared.Atmos; + +namespace Content.Server.Atmos.Components; + +/// +/// Component that can be used to add (or remove) fire stacks when exposed to a type of gas, unless wearing ignition immunity. +/// Don't add this component directly, instead attach a body part that has IgniteFromGasPartComponent. +/// +[RegisterComponent] +public sealed partial class IgniteFromGasComponent : Component +{ + /// + /// What type of gas triggers ignition. + /// Right now only one type of gas can be set, instead of different gasses per each body part. + /// + [DataField] + public Gas Gas; + + /// + /// The total calculated fire stacks to apply every second without immunity. + /// + [DataField] + public float FireStacksPerUpdate = 0f; + + /// + /// If this entity is currently not self-igniting. + /// + public bool HasImmunity => FireStacksPerUpdate == 0; + + /// + /// The base amount of fire stacks to apply every second without immunity. + /// + [DataField] + public float BaseFireStacksPerUpdate = 0.13f; + + /// + /// The body parts that are vulnerable to ignition when exposed, and their fire stack values. + /// + [ViewVariables(VVAccess.ReadWrite)] + public Dictionary IgnitableBodyParts = new(); + + /// + /// How many moles of the gas is needed to trigger ignition. + /// + [DataField] + public float MolesToIgnite = 0.5f; +} diff --git a/Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs b/Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs new file mode 100644 index 000000000000..16b286c82089 --- /dev/null +++ b/Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs @@ -0,0 +1,16 @@ +using Content.Shared._Shitmed.Targeting; + +namespace Content.Server.Atmos.Components; + +/// +/// Component that is used on clothing to prevent ignition when exposed to a specific gas. +/// +[RegisterComponent] +public sealed partial class IgniteFromGasImmunityComponent : Component +{ + // + // Which body parts are given ignition immunity. + // + [DataField(required: true)] + public HashSet Parts; +} diff --git a/Content.Server/Atmos/Components/IgniteFromGasPartComponent.cs b/Content.Server/Atmos/Components/IgniteFromGasPartComponent.cs new file mode 100644 index 000000000000..099322b5a5e0 --- /dev/null +++ b/Content.Server/Atmos/Components/IgniteFromGasPartComponent.cs @@ -0,0 +1,23 @@ +using Content.Shared.Atmos; + +namespace Content.Server.Atmos.Components; + +/// +/// Component that can be used on body parts to add fire stacks and trigger ignition +/// when the body part is exposed to a type of gas, unless wearing ignition immunity. +/// +[RegisterComponent] +public sealed partial class IgniteFromGasPartComponent : Component +{ + /// + /// What type of gas triggers ignition. + /// + [DataField(required: true)] + public Gas Gas; + + /// + /// How many fire stacks this body part applies when exposed. + /// + [DataField] + public float FireStacks = 0.02f; +} diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.BreathTool.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.BreathTool.cs index 741a9341e79e..327804f39a4f 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.BreathTool.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.BreathTool.cs @@ -10,21 +10,21 @@ private void InitializeBreathTool() SubscribeLocalEvent(OnBreathToolShutdown); } - private void OnBreathToolShutdown(EntityUid uid, BreathToolComponent component, ComponentShutdown args) + private void OnBreathToolShutdown(Entity entity, ref ComponentShutdown args) { - DisconnectInternals(component); + DisconnectInternals(entity); } - public void DisconnectInternals(BreathToolComponent component) + public void DisconnectInternals(Entity entity) { - var old = component.ConnectedInternalsEntity; - component.ConnectedInternalsEntity = null; + var old = entity.Comp.ConnectedInternalsEntity; + entity.Comp.ConnectedInternalsEntity = null; if (TryComp(old, out var internalsComponent)) { - _internals.DisconnectBreathTool((old.Value, internalsComponent)); + _internals.DisconnectBreathTool((old.Value, internalsComponent), entity.Owner); } - component.IsFunctional = false; + entity.Comp.IsFunctional = false; } } diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index 0f6ce0780e4a..db2b7888c173 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -310,6 +310,7 @@ public void Extinguish(EntityUid uid, FlammableComponent? flammable = null) _adminLogger.Add(LogType.Flammable, $"{ToPrettyString(uid):entity} stopped being on fire damage"); flammable.OnFire = false; flammable.FireStacks = 0; + flammable.IgnoreFireProtection = false; _ignitionSourceSystem.SetIgnited(uid, false); @@ -317,7 +318,7 @@ public void Extinguish(EntityUid uid, FlammableComponent? flammable = null) } public void Ignite(EntityUid uid, EntityUid ignitionSource, FlammableComponent? flammable = null, - EntityUid? ignitionSourceUser = null) + EntityUid? ignitionSourceUser = null, bool ignoreFireProtection = false) { if (!Resolve(uid, ref flammable)) return; @@ -336,6 +337,9 @@ public void Ignite(EntityUid uid, EntityUid ignitionSource, FlammableComponent? flammable.OnFire = true; } + if (ignoreFireProtection) + flammable.IgnoreFireProtection = ignoreFireProtection; + UpdateAppearance(uid, flammable); } @@ -382,7 +386,7 @@ public void Resist(EntityUid uid, uid.SpawnTimer(2000, () => { flammable.Resisting = false; - flammable.FireStacks -= 1f; + flammable.FireStacks -= flammable.FirestackFade * 10f; UpdateAppearance(uid, flammable); }); } @@ -448,14 +452,20 @@ public override void Update(float frameTime) if (TryComp(uid, out TemperatureComponent? temp)) _temperatureSystem.ChangeHeat(uid, 12500 * flammable.FireStacks, false, temp); - var ev = new GetFireProtectionEvent(); - // let the thing on fire handle it - RaiseLocalEvent(uid, ref ev); - // and whatever it's wearing - if (_inventoryQuery.TryComp(uid, out var inv)) - _inventory.RelayEvent((uid, inv), ref ev); + var multiplier = 1f; + if (!flammable.IgnoreFireProtection) + { + var ev = new GetFireProtectionEvent(); + // let the thing on fire handle it + RaiseLocalEvent(uid, ref ev); + // and whatever it's wearing + if (_inventoryQuery.TryComp(uid, out var inv)) + _inventory.RelayEvent((uid, inv), ref ev); + + multiplier = ev.Multiplier; + } - _damageableSystem.TryChangeDamage(uid, flammable.Damage * flammable.FireStacks * ev.Multiplier, interruptsDoAfters: false); + _damageableSystem.TryChangeDamage(uid, flammable.Damage * flammable.FireStacks * multiplier, interruptsDoAfters: false); AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 10f : 1f), flammable); } diff --git a/Content.Server/Atmos/EntitySystems/GasTankSystem.cs b/Content.Server/Atmos/EntitySystems/GasTankSystem.cs index 07594820fcc4..baad739804b8 100644 --- a/Content.Server/Atmos/EntitySystems/GasTankSystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasTankSystem.cs @@ -220,7 +220,7 @@ public GasMixture RemoveAirVolume(Entity gasTank, float volume public bool CanConnectToInternals(GasTankComponent component) { var internals = GetInternalsComponent(component, component.User); - return internals != null && internals.BreathToolEntity != null && !component.IsValveOpen; + return internals != null && internals.BreathTools.Count != 0 && !component.IsValveOpen; } public void ConnectToInternals(Entity ent) diff --git a/Content.Server/Atmos/EntitySystems/IgniteFromGasSystem.cs b/Content.Server/Atmos/EntitySystems/IgniteFromGasSystem.cs new file mode 100644 index 000000000000..253238db6387 --- /dev/null +++ b/Content.Server/Atmos/EntitySystems/IgniteFromGasSystem.cs @@ -0,0 +1,135 @@ +using System.Linq; +using Content.Server.Atmos.Components; +using Content.Server.Bed.Components; +using Content.Shared._Shitmed.Targeting; +using Content.Shared._Shitmed.Body.Events; +using Content.Shared.Body.Part; +using Content.Shared.Body.Systems; +using Content.Shared.Inventory; +using Content.Shared.Inventory.Events; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; + +namespace Content.Server.Atmos.EntitySystems; + +public sealed class IgniteFromGasSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _body = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly AtmosphereSystem _atmos = default!; + [Dependency] private readonly FlammableSystem _flammable = default!; + + // All ignitions tick at the same time because FlammableSystem is also the same + private const float UpdateTimer = 1f; + private float _timer; + + public override void Initialize() + { + SubscribeLocalEvent(OnBodyPartAdded); + SubscribeLocalEvent(OnBodyPartAttached); + + SubscribeLocalEvent(OnBodyPartRemoved); + SubscribeLocalEvent(OnBodyPartDropped); + + SubscribeLocalEvent(OnIgniteFromGasImmunityEquipped); + SubscribeLocalEvent(OnIgniteFromGasImmunityUnequipped); + } + + private void OnBodyPartAdded(Entity ent, ref BodyPartAddedEvent args) => + HandleAddBodyPart(ent.Owner, args.Part); + private void OnBodyPartAttached(Entity ent, ref BodyPartAttachedEvent args) => + HandleAddBodyPart(ent.Owner, args.Part); + + private void HandleAddBodyPart(EntityUid uid, Entity part) + { + if (!TryComp(part, out var ignitePart) || + _body.GetTargetBodyPart(part.Comp.PartType, part.Comp.Symmetry) is not { } targetBodyPart) + return; + + if (!TryComp(uid, out var ignite)) + { + ignite = EnsureComp(uid); + ignite.Gas = ignitePart.Gas; + } + + ignite.IgnitableBodyParts[targetBodyPart] = ignitePart.FireStacks; + + UpdateIgniteImmunity((uid, ignite)); + } + + private void OnBodyPartRemoved(Entity ent, ref BodyPartRemovedEvent args) => + HandleRemoveBodyPart(ent, args.Part); + private void OnBodyPartDropped(Entity ent, ref BodyPartDroppedEvent args) => + HandleRemoveBodyPart(ent, args.Part); + + private void HandleRemoveBodyPart(Entity ent, Entity part) + { + if (!HasComp(part) || + _body.GetTargetBodyPart(part.Comp.PartType, part.Comp.Symmetry) is not { } targetBodyPart) + return; + + ent.Comp.IgnitableBodyParts.Remove(targetBodyPart); + + if (ent.Comp.IgnitableBodyParts.Count == 0) + { + RemCompDeferred(ent); + return; + } + + UpdateIgniteImmunity((ent, ent.Comp)); + } + + private void OnIgniteFromGasImmunityEquipped(Entity ent, ref GotEquippedEvent args) => + UpdateIgniteImmunity(args.Equipee); + private void OnIgniteFromGasImmunityUnequipped(Entity ent, ref GotUnequippedEvent args) => + UpdateIgniteImmunity(args.Equipee); + + public void UpdateIgniteImmunity(Entity ent) + { + if (!Resolve(ent, ref ent.Comp1, ref ent.Comp2, false)) + return; + + var exposedBodyParts = new Dictionary(ent.Comp1.IgnitableBodyParts); + + var containerSlotEnumerator = _inventory.GetSlotEnumerator((ent, ent.Comp2)); + while (containerSlotEnumerator.NextItem(out var item, out _)) + { + if (!TryComp(item, out var immunity)) + continue; + + foreach (var immunePart in immunity.Parts) + exposedBodyParts.Remove(immunePart); + } + + if (exposedBodyParts.Count == 0) + { + ent.Comp1.FireStacksPerUpdate = 0; + return; + } + + ent.Comp1.FireStacksPerUpdate = ent.Comp1.BaseFireStacksPerUpdate + exposedBodyParts.Values.Sum(); + } + + public override void Update(float frameTime) + { + _timer += frameTime; + if (_timer < UpdateTimer) + return; + _timer -= UpdateTimer; + + var enumerator = EntityQueryEnumerator(); + while (enumerator.MoveNext(out var uid, out var ignite, out var mobState, out var flammable)) + { + if (ignite.FireStacksPerUpdate == 0 || + mobState.CurrentState is MobState.Dead || + HasComp(uid) || + _atmos.GetContainingMixture(uid, excite: true) is not { } gas || + gas[(int) ignite.Gas] < ignite.MolesToIgnite + ) + continue; + + _flammable.AdjustFireStacks(uid, ignite.FireStacksPerUpdate, flammable); + _flammable.Ignite(uid, uid, flammable, ignoreFireProtection: true); + } + } +} diff --git a/Content.Server/Bed/BedSystem.cs b/Content.Server/Bed/BedSystem.cs index 7220c04ea8c4..b09609a86f75 100644 --- a/Content.Server/Bed/BedSystem.cs +++ b/Content.Server/Bed/BedSystem.cs @@ -101,6 +101,8 @@ private void OnStasisStrapped(Entity bed, ref StrappedEvent var metabolicEvent = new ApplyMetabolicMultiplierEvent(args.Buckle, bed.Comp.Multiplier, true); RaiseLocalEvent(args.Buckle, ref metabolicEvent); + + EnsureComp(args.Buckle); } private void OnStasisUnstrapped(Entity bed, ref UnstrappedEvent args) @@ -110,6 +112,8 @@ private void OnStasisUnstrapped(Entity bed, ref UnstrappedEv var metabolicEvent = new ApplyMetabolicMultiplierEvent(args.Buckle, bed.Comp.Multiplier, false); RaiseLocalEvent(args.Buckle, ref metabolicEvent); + + RemComp(args.Buckle); } private void OnPowerChanged(EntityUid uid, StasisBedComponent component, ref PowerChangedEvent args) diff --git a/Content.Server/Bed/Components/InStasisComponent.cs b/Content.Server/Bed/Components/InStasisComponent.cs new file mode 100644 index 000000000000..d7c0272f5ad0 --- /dev/null +++ b/Content.Server/Bed/Components/InStasisComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.Bed.Components; + +// +// Component added only to entities buckled to a stasis bed. +// +[RegisterComponent] +public sealed partial class InStasisComponent : Component {} diff --git a/Content.Server/Body/Components/InternalsComponent.cs b/Content.Server/Body/Components/InternalsComponent.cs index 098f1789218f..ef908f96553c 100644 --- a/Content.Server/Body/Components/InternalsComponent.cs +++ b/Content.Server/Body/Components/InternalsComponent.cs @@ -13,7 +13,7 @@ public sealed partial class InternalsComponent : Component public EntityUid? GasTankEntity; [ViewVariables] - public EntityUid? BreathToolEntity; + public HashSet BreathTools { get; set; } = new(); /// /// Toggle Internals delay when the target is not you. diff --git a/Content.Server/Body/Systems/InternalsSystem.cs b/Content.Server/Body/Systems/InternalsSystem.cs index 56fc981a0f43..260c2e3e962b 100644 --- a/Content.Server/Body/Systems/InternalsSystem.cs +++ b/Content.Server/Body/Systems/InternalsSystem.cs @@ -44,7 +44,7 @@ public override void Initialize() private void OnStartingGear(EntityUid uid, InternalsComponent component, ref StartingGearEquippedEvent args) { - if (component.BreathToolEntity == null) + if (component.BreathTools.Count == 0) return; if (component.GasTankEntity != null) @@ -111,7 +111,7 @@ public void ToggleInternals( } // If they're not on then check if we have a mask to use - if (internals.BreathToolEntity is null) + if (internals.BreathTools.Count == 0) { _popupSystem.PopupEntity(Loc.GetString("internals-no-breath-tool"), uid, user); return; @@ -178,29 +178,28 @@ private void OnInhaleLocation(Entity ent, ref InhaleLocation _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); } } - public void DisconnectBreathTool(Entity ent) + public void DisconnectBreathTool(Entity ent, EntityUid toolEntity) { - var old = ent.Comp.BreathToolEntity; - ent.Comp.BreathToolEntity = null; + ent.Comp.BreathTools.Remove(toolEntity); - if (TryComp(old, out BreathToolComponent? breathTool)) - { - _atmos.DisconnectInternals(breathTool); + if (TryComp(toolEntity, out BreathToolComponent? breathTool)) + _atmos.DisconnectInternals((toolEntity, breathTool)); + + if (ent.Comp.BreathTools.Count == 0) DisconnectTank(ent); - } _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); } public void ConnectBreathTool(Entity ent, EntityUid toolEntity) { - if (TryComp(ent.Comp.BreathToolEntity, out BreathToolComponent? tool)) - { - _atmos.DisconnectInternals(tool); - } + if (!ent.Comp.BreathTools.Add(toolEntity)) + return; - ent.Comp.BreathToolEntity = toolEntity; _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); + + var ev = new BreathToolConnectedEvent(ent.Owner, toolEntity); + RaiseLocalEvent(ent.Owner, ev); } public void DisconnectTank(InternalsComponent? component) @@ -217,7 +216,7 @@ public void DisconnectTank(InternalsComponent? component) public bool TryConnectTank(Entity ent, EntityUid tankEntity) { - if (ent.Comp.BreathToolEntity is null) + if (ent.Comp.BreathTools.Count == 0) return false; if (TryComp(ent.Comp.GasTankEntity, out GasTankComponent? tank)) @@ -236,14 +235,14 @@ public bool AreInternalsWorking(EntityUid uid, InternalsComponent? component = n public bool AreInternalsWorking(InternalsComponent component) { - return TryComp(component.BreathToolEntity, out BreathToolComponent? breathTool) + return TryComp(component.BreathTools.FirstOrNull(), out BreathToolComponent? breathTool) && breathTool.IsFunctional && HasComp(component.GasTankEntity); } private short GetSeverity(InternalsComponent component) { - if (component.BreathToolEntity is null || !AreInternalsWorking(component)) + if (component.BreathTools.Count == 0 || !AreInternalsWorking(component)) return 2; // If pressure in the tank is below low pressure threshold, flash warning on internals UI @@ -292,3 +291,18 @@ private short GetSeverity(InternalsComponent component) return null; } } + +/// +/// Raised on an equipee when it has breath tools connected. +/// +public sealed class BreathToolConnectedEvent : EntityEventArgs +{ + public readonly EntityUid Equipee; + public readonly EntityUid BreathTool; + + public BreathToolConnectedEvent(EntityUid equipee, EntityUid breathTool) + { + Equipee = equipee; + BreathTool = breathTool; + } +} diff --git a/Content.Server/Clothing/Systems/LoadoutSystem.cs b/Content.Server/Clothing/Systems/LoadoutSystem.cs index e39dd65f523d..b27f33c9547d 100644 --- a/Content.Server/Clothing/Systems/LoadoutSystem.cs +++ b/Content.Server/Clothing/Systems/LoadoutSystem.cs @@ -51,7 +51,7 @@ private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent ev) { if (ev.JobId == null || Deleted(ev.Mob) || !Exists(ev.Mob) || !HasComp(ev.Mob) // TODO: FIND THE STUPID RACE CONDITION THAT IS MAKING ME CHECK FOR THIS. - || !_protoMan.TryIndex(ev.JobId, out _) + || !_protoMan.TryIndex(ev.JobId, out var job) || !_configurationManager.GetCVar(CCVars.GameLoadoutsEnabled)) return; @@ -60,7 +60,8 @@ private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent ev) ev.JobId, ev.Profile, _playTimeTracking.GetTrackerTimes(ev.Player), - ev.Player.ContentData()?.Whitelisted ?? false); + ev.Player.ContentData()?.Whitelisted ?? false, + jobProto: job); } @@ -71,26 +72,23 @@ public void ApplyCharacterLoadout( HumanoidCharacterProfile profile, Dictionary playTimes, bool whitelisted, - bool deleteFailed = false) + bool deleteFailed = false, + JobPrototype? jobProto = null) { // Spawn the loadout, get a list of items that failed to equip var (failedLoadouts, allLoadouts) = _loadout.ApplyCharacterLoadout(uid, job, profile, playTimes, whitelisted, out var heirlooms); // Try to find back-mounted storage apparatus - if (!_inventory.TryGetSlotEntity(uid, "back", out var item) || - !EntityManager.TryGetComponent(item, out var inventory)) - return; - - // Try inserting the entity into the storage, if it can't, it leaves the loadout item on the ground - foreach (var loadout in failedLoadouts) - { - if ((!EntityManager.TryGetComponent(loadout, out var itemComp) - || !_storage.CanInsert(item.Value, loadout, out _, inventory, itemComp) - || !_storage.Insert(item.Value, loadout, out _, playSound: false)) - && deleteFailed) - EntityManager.QueueDeleteEntity(loadout); - } + if (_inventory.TryGetSlotEntity(uid, "back", out var item) && + EntityManager.TryGetComponent(item, out var inventory)) + // Try inserting the entity into the storage, if it can't, it leaves the loadout item on the ground + foreach (var loadout in failedLoadouts) + if ((!EntityManager.TryGetComponent(loadout, out var itemComp) + || !_storage.CanInsert(item.Value, loadout, out _, inventory, itemComp) + || !_storage.Insert(item.Value, loadout, out _, playSound: false)) + && deleteFailed) + EntityManager.QueueDeleteEntity(loadout); foreach (var loadout in allLoadouts) { @@ -137,5 +135,10 @@ public void ApplyCharacterLoadout( Dirty(uid, haver); Dirty(heirloom.Item1, comp); } + + if (jobProto != null || + _protoMan.TryIndex(job, out jobProto)) + foreach (var special in jobProto.AfterLoadoutSpecial) + special.AfterEquip(uid); } } diff --git a/Content.Server/Damage/Components/DamageOnHitComponent.cs b/Content.Server/Damage/Components/DamageOnHitComponent.cs index 3580e9a8d544..31b3ea730a36 100644 --- a/Content.Server/Damage/Components/DamageOnHitComponent.cs +++ b/Content.Server/Damage/Components/DamageOnHitComponent.cs @@ -1,7 +1,9 @@ using Content.Shared.Damage; +using Content.Shared._Shitmed.Targeting; -// Damages the held item by a set amount when it hits someone. Can be used to make melee items limited-use. +// Damages the entity by a set amount when it hits someone. +// Can be used to make melee items limited-use or make an entity deal self-damage with unarmed attacks. namespace Content.Server.Damage.Components; [RegisterComponent] @@ -14,5 +16,13 @@ public sealed partial class DamageOnHitComponent : Component [DataField("damage", required: true)] [ViewVariables(VVAccess.ReadWrite)] public DamageSpecifier Damage = default!; -} + // + // The body parts to deal damage to. + // When there is more than one listed element, + // randomly selects between one of the elements. + // + [DataField] + [ViewVariables(VVAccess.ReadWrite)] + public List? TargetParts = null; +} diff --git a/Content.Server/Damage/Systems/DamageOnHitSystem.cs b/Content.Server/Damage/Systems/DamageOnHitSystem.cs index f129a14f799c..3626796dcdad 100644 --- a/Content.Server/Damage/Systems/DamageOnHitSystem.cs +++ b/Content.Server/Damage/Systems/DamageOnHitSystem.cs @@ -9,17 +9,22 @@ namespace Content.Server.Damage.Systems; public sealed class DamageOnHitSystem : EntitySystem { [Dependency] private readonly DamageableSystem _damageableSystem = default!; + private readonly Random _random = new Random(); public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(DamageItem); + SubscribeLocalEvent(DamageSelf); } - // Looks for a hit, then damages the held item an appropriate amount. - private void DamageItem(EntityUid uid, DamageOnHitComponent component, MeleeHitEvent args) + + // Looks for a hit, then damages the entity an appropriate amount. + private void DamageSelf(EntityUid uid, DamageOnHitComponent component, MeleeHitEvent args) { if (args.HitEntities.Any()) { - _damageableSystem.TryChangeDamage(uid, component.Damage, component.IgnoreResistances); + _damageableSystem.TryChangeDamage(uid, component.Damage, component.IgnoreResistances, + targetPart: component.TargetParts is not null + ? component.TargetParts[_random.Next(component.TargetParts.Count)] + : null); } } } diff --git a/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs b/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs index 142669f84a20..a81bab2ebc56 100644 --- a/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs +++ b/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs @@ -1,3 +1,4 @@ +using Content.Server.Clothing.Systems; using Content.Server.DeltaV.ParadoxAnomaly.Components; using Content.Server.DetailExaminable; using Content.Server.GenericAntag; @@ -37,6 +38,7 @@ public sealed class ParadoxAnomalySystem : EntitySystem [Dependency] private readonly SharedRoleSystem _role = default!; [Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly StationSpawningSystem _stationSpawning = default!; + [Dependency] private readonly LoadoutSystem _loadout = default!; public override void Initialize() { @@ -147,6 +149,7 @@ private bool TrySpawnParadoxAnomaly(string rule, [NotNullWhen(true)] out EntityU profile.Name, job, station); + _loadout.ApplyCharacterLoadout(spawned, job, profile, [], false); // TODO: find a way to get playtimes and whitelisted } foreach (var special in job.Special) diff --git a/Content.Server/Effects/ColorFlashEffectSystem.cs b/Content.Server/Effects/ColorFlashEffectSystem.cs index 2d2913465783..40e7060a1af5 100644 --- a/Content.Server/Effects/ColorFlashEffectSystem.cs +++ b/Content.Server/Effects/ColorFlashEffectSystem.cs @@ -5,8 +5,8 @@ namespace Content.Server.Effects; public sealed class ColorFlashEffectSystem : SharedColorFlashEffectSystem { - public override void RaiseEffect(Color color, List entities, Filter filter) + public override void RaiseEffect(Color color, List entities, Filter filter, float? animationLength = null) { - RaiseNetworkEvent(new ColorFlashEffectEvent(color, GetNetEntityList(entities)), filter); + RaiseNetworkEvent(new ColorFlashEffectEvent(color, GetNetEntityList(entities), animationLength), filter); } } diff --git a/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs b/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs index 9ba0ee4b00a8..2a494ca21157 100644 --- a/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs +++ b/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs @@ -29,6 +29,7 @@ public bool TryAdjustBloodstream(Entity ent) { if (!TryComp(ent, out var bloodstream) || !_solutionContainer.TryGetSolution(ent.Owner, bloodstream.BloodSolutionName, out var bloodSolutionEnt) + || bloodstream.BloodMaxVolume == 0 || !_config.GetCVar(CCVars.HeightAdjustModifiesBloodstream)) return false; diff --git a/Content.Server/Jobs/ModifyEnvirohelmSpecial.cs b/Content.Server/Jobs/ModifyEnvirohelmSpecial.cs new file mode 100644 index 000000000000..28ad9db0941b --- /dev/null +++ b/Content.Server/Jobs/ModifyEnvirohelmSpecial.cs @@ -0,0 +1,52 @@ +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Prototypes; +using Content.Shared.Inventory; +using Content.Shared.Roles; +using Content.Shared.Tag; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; + +namespace Content.Server.Jobs; + +[UsedImplicitly] +public sealed partial class ModifyEnvirohelmSpecial : JobSpecial +{ + // + // The new power cell of the envirohelm. + // + [DataField(required: true)] + public ProtoId PowerCell { get; private set; } + + [ValidatePrototypeId] + private const string Species = "Plasmaman"; + + [ValidatePrototypeId] + private const string Tag = "Envirohelm"; + + private const string Slot = "head"; + + private const string ItemSlot = "cell_slot"; + + public override void AfterEquip(EntityUid mob) + { + var entMan = IoCManager.Resolve(); + if (!entMan.TryGetComponent(mob, out var appearanceComp) || + appearanceComp.Species != Species || + !entMan.System().TryGetSlotEntity(mob, Slot, out var helmet) || + helmet is not { } envirohelm || + !entMan.System().HasTag(envirohelm, Tag) || + !entMan.TryGetComponent(envirohelm, out var itemSlotsComp)) + return; + + var itemSlotsSystem = entMan.System(); + + if (itemSlotsSystem.GetItemOrNull(envirohelm, ItemSlot, itemSlotsComp) is { } powerCellToDelete) + entMan.DeleteEntity(powerCellToDelete); + + var powerCell = entMan.Spawn(PowerCell); + + if (!itemSlotsSystem.TryInsert(envirohelm, ItemSlot, powerCell, null, itemSlotsComp, excludeUserAudio: true)) + entMan.DeleteEntity(powerCell); + } +} diff --git a/Content.Server/Jobs/ModifyEnvirosuitSpecial.cs b/Content.Server/Jobs/ModifyEnvirosuitSpecial.cs new file mode 100644 index 000000000000..ff03f5debd13 --- /dev/null +++ b/Content.Server/Jobs/ModifyEnvirosuitSpecial.cs @@ -0,0 +1,36 @@ +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Prototypes; +using Content.Shared.Inventory; +using Content.Shared.Roles; +using Content.Shared.SelfExtinguisher; +using JetBrains.Annotations; + +namespace Content.Server.Jobs; + +[UsedImplicitly] +public sealed partial class ModifyEnvirosuitSpecial : JobSpecial +{ + // + // The new charges of the envirosuit's self-extinguisher. + // + [DataField(required: true)] + public int Charges { get; private set; } + + [ValidatePrototypeId] + private const string Species = "Plasmaman"; + + private const string Slot = "jumpsuit"; + + public override void AfterEquip(EntityUid mob) + { + var entMan = IoCManager.Resolve(); + if (!entMan.TryGetComponent(mob, out var appearance) || + appearance.Species != Species || + !entMan.System().TryGetSlotEntity(mob, Slot, out var jumpsuit) || + jumpsuit is not { } envirosuit || + !entMan.TryGetComponent(envirosuit, out var selfExtinguisher)) + return; + + entMan.System().SetCharges(envirosuit, Charges, Charges, selfExtinguisher); + } +} diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 91e8b2bf9817..07c1140f167e 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -247,7 +247,7 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s _solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution)) { - bloodAmount = bloodSolution.FillFraction; + bloodAmount = bloodSolution.MaxVolume != 0 ? bloodSolution.FillFraction : 0; bleeding = bloodstream.BleedAmount > 0; } diff --git a/Content.Server/SelfExtinguisher/SelfExtinguisherSystem.cs b/Content.Server/SelfExtinguisher/SelfExtinguisherSystem.cs new file mode 100644 index 000000000000..b4d5a63c725c --- /dev/null +++ b/Content.Server/SelfExtinguisher/SelfExtinguisherSystem.cs @@ -0,0 +1,130 @@ +using Content.Server.Atmos.Components; +using Content.Server.Atmos.EntitySystems; +using Content.Shared.Actions; +using Content.Shared.Charges.Components; +using Content.Shared.Charges.Systems; +using Content.Shared.Effects; +using Content.Shared.IdentityManagement; +using Content.Shared.Popups; +using Content.Shared.SelfExtinguisher; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Player; +using Robust.Shared.Timing; + +namespace Content.Server.SelfExtinguisher; + +public sealed partial class SelfExtinguisherSystem : SharedSelfExtinguisherSystem +{ + [Dependency] private readonly FlammableSystem _flammable = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedChargesSystem _charges = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedColorFlashEffectSystem _color = default!; + + // Same color as the water reagent + private readonly Color ExtinguishColor = Color.FromHex("#75b1f0"); + private const float ExtinguishAnimationLength = 0.45f; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnSelfExtinguish); + } + + private void OnSelfExtinguish(EntityUid uid, SelfExtinguisherComponent component, SelfExtinguishEvent args) + { + TryExtinguish(args.Performer, uid, component); + } + + private void TryExtinguish(EntityUid user, EntityUid uid, SelfExtinguisherComponent? selfExtinguisher = null) + { + if (!_container.TryGetContainingContainer((uid, null, null), out var container) || + !TryComp(container.Owner, out var flammable) || + !Resolve(uid, ref selfExtinguisher)) + return; + + var target = container.Owner; + var targetIdentity = Identity.Entity(target, EntityManager); + var locSuffix = user == target ? "self" : "other"; + + var curTime = _timing.CurTime; + if (TryComp(uid, out var charges) && + _charges.IsEmpty(uid, charges)) + { + if (!SetPopupCooldown((uid, selfExtinguisher), curTime)) + return; + + _popup.PopupEntity(Loc.GetString("self-extinguisher-no-charges", ("item", uid)), + target, user, !flammable.OnFire ? PopupType.Small : PopupType.MediumCaution); + return; + } + + if (selfExtinguisher.NextExtinguish > curTime) + { + if (!SetPopupCooldown((uid, selfExtinguisher), curTime)) + return; + + _popup.PopupEntity(Loc.GetString($"self-extinguisher-on-cooldown", ("item", uid)), + target, user, !flammable.OnFire ? PopupType.Small : PopupType.MediumCaution); + return; + } + + if (!flammable.OnFire) + { + if (!SetPopupCooldown((uid, selfExtinguisher), curTime)) + return; + + _popup.PopupEntity(Loc.GetString($"self-extinguisher-not-on-fire-{locSuffix}", ("item", uid), ("target", targetIdentity)), + target, user); + return; + } + + if (selfExtinguisher.RequiresIgniteFromGasImmune && + // Non-self-igniters can use the self-extinguish whenever, but self-igniters must have + // all ignitable body parts covered up + TryComp(target, out var ignite) && !ignite.HasImmunity) + { + if (!SetPopupCooldown((uid, selfExtinguisher), curTime)) + return; + + _popup.PopupEntity(Loc.GetString($"self-extinguisher-not-immune-to-fire-{locSuffix}", ("item", uid), ("target", targetIdentity)), + target, user, PopupType.MediumCaution); + return; + } + + _flammable.Extinguish(target, flammable); + _color.RaiseEffect(ExtinguishColor, [target], Filter.Pvs(target, entityManager: EntityManager), ExtinguishAnimationLength); + _audio.PlayPvs(selfExtinguisher.Sound, uid, selfExtinguisher.Sound.Params.WithVariation(0.125f)); + + _popup.PopupPredicted( + Loc.GetString("self-extinguisher-extinguish-other", ("item", uid), ("target", targetIdentity)), + target, target, PopupType.Medium + ); + _popup.PopupEntity( + Loc.GetString("self-extinguisher-extinguish-self", ("item", uid)), + target, target, PopupType.Medium + ); + + if (charges != null) + { + _charges.UseCharge(uid, charges); + _actions.RemoveCharges(selfExtinguisher.ActionEntity, 1); + + if (_actions.GetCharges(selfExtinguisher.ActionEntity) == 0) + { + _actions.SetEnabled(selfExtinguisher.ActionEntity, false); + return; // Don't set cooldown when out of charges, they can't use it anymore anyways + } + } + + selfExtinguisher.NextExtinguish = curTime + selfExtinguisher.Cooldown; + _actions.StartUseDelay(selfExtinguisher.ActionEntity); + + Dirty(uid, selfExtinguisher); + } +} diff --git a/Content.Server/Speech/EntitySystems/SkeletonAccentSystem.cs b/Content.Server/Speech/EntitySystems/SkeletonAccentSystem.cs index d143c25fdbab..d83262953048 100644 --- a/Content.Server/Speech/EntitySystems/SkeletonAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/SkeletonAccentSystem.cs @@ -1,4 +1,4 @@ -using System.Text.RegularExpressions; +using System.Text.RegularExpressions; using Content.Server.Speech.Components; using Robust.Shared.Random; @@ -27,7 +27,8 @@ public sealed partial class SkeletonAccentSystem : EntitySystem { "killed", "skeletonized"}, { "humorous", "humerus"}, { "to be a", "tibia"}, - { "under", "ulna"} + { "under", "ulna"}, + { "narrow", "marrow"}, }; public override void Initialize() diff --git a/Content.Server/Station/Systems/StationSpawningSystem.cs b/Content.Server/Station/Systems/StationSpawningSystem.cs index 85f5662b421a..f44416d0c98c 100644 --- a/Content.Server/Station/Systems/StationSpawningSystem.cs +++ b/Content.Server/Station/Systems/StationSpawningSystem.cs @@ -12,6 +12,7 @@ using Content.Shared.Access.Components; using Content.Shared.Access.Systems; using Content.Shared.CCVar; +using Content.Shared.Customization.Systems; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Prototypes; using Content.Shared.PDA; @@ -50,6 +51,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem [Dependency] private readonly InternalEncryptionKeySpawner _internalEncryption = default!; [Dependency] private readonly ArrivalsSystem _arrivalsSystem = default!; [Dependency] private readonly ContainerSpawnPointSystem _containerSpawnPointSystem = default!; + [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; private bool _randomizeCharacters; @@ -142,6 +144,9 @@ public EntityUid SpawnPlayerMob( if (prototype?.StartingGear != null) { var startingGear = _prototypeManager.Index(prototype.StartingGear); + if (profile != null) + startingGear = ApplySubGear(startingGear, profile, prototype); + EquipStartingGear(entity.Value, startingGear, raiseEvent: false); if (profile != null) EquipIdCard(entity.Value, profile.Name, prototype, station); diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index 6586ce5613a2..be6dc782408c 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -208,11 +208,18 @@ private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureCha if (args.CurrentTemperature <= idealTemp) { + // If there's no risk to being cold there's no reason to show a Cold alert + if (!temperature.ColdDamage.AnyPositive()) + return; + type = temperature.ColdAlert; threshold = temperature.ColdDamageThreshold; } else { + if (!temperature.HeatDamage.AnyPositive()) + return; + type = temperature.HotAlert; threshold = temperature.HeatDamageThreshold; } diff --git a/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs b/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs index 133876bd751f..8ff49b4d10f4 100644 --- a/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs +++ b/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs @@ -1,8 +1,12 @@ using Content.Server.Thief.Components; +using Content.Shared.Customization.Systems; +using Content.Shared.Humanoid; +using Content.Shared.Roles; using Content.Shared.Item; using Content.Shared.Thief; using Robust.Server.GameObjects; using Robust.Server.Audio; +using Robust.Shared.Configuration; using Robust.Shared.Prototypes; namespace Content.Server.Thief.Systems; @@ -15,8 +19,10 @@ public sealed class ThiefUndeterminedBackpackSystem : EntitySystem { [Dependency] private readonly AudioSystem _audio = default!; [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly IConfigurationManager _config = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly UserInterfaceSystem _ui = default!; + [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; private const int MaxSelectedSets = 2; public override void Initialize() @@ -30,7 +36,7 @@ public override void Initialize() private void OnUIOpened(Entity backpack, ref BoundUIOpenedEvent args) { - UpdateUI(backpack.Owner, backpack.Comp); + UpdateUI(backpack.Owner, args.Actor, backpack.Comp); } private void OnApprove(Entity backpack, ref ThiefBackpackApproveMessage args) @@ -57,10 +63,10 @@ private void OnChangeSet(Entity backpack, re if (!backpack.Comp.SelectedSets.Remove(args.SetNumber)) backpack.Comp.SelectedSets.Add(args.SetNumber); - UpdateUI(backpack.Owner, backpack.Comp); + UpdateUI(backpack.Owner, args.Actor, backpack.Comp); } - private void UpdateUI(EntityUid uid, ThiefUndeterminedBackpackComponent? component = null) + private void UpdateUI(EntityUid uid, EntityUid user, ThiefUndeterminedBackpackComponent? component = null) { if (!Resolve(uid, ref component)) return; @@ -70,6 +76,15 @@ private void UpdateUI(EntityUid uid, ThiefUndeterminedBackpackComponent? compone for (int i = 0; i < component.PossibleSets.Count; i++) { var set = _proto.Index(component.PossibleSets[i]); + + if (set.Requirements.Count != 0 && + TryComp(user, out var appearance) && + appearance.LastProfileLoaded != null && + !_characterRequirements.CheckRequirementsValid( + set.Requirements, new JobPrototype() /* not gonna bother with jobs */, + appearance.LastProfileLoaded, new(), false, set, EntityManager, _proto, _config, out _)) + continue; + var selected = component.SelectedSets.Contains(i); var info = new ThiefBackpackSetInfo( set.Name, diff --git a/Content.Server/Traits/TraitSystem.Functions.cs b/Content.Server/Traits/TraitSystem.Functions.cs index 8306105b936d..deb3102d4ba6 100644 --- a/Content.Server/Traits/TraitSystem.Functions.cs +++ b/Content.Server/Traits/TraitSystem.Functions.cs @@ -673,5 +673,7 @@ public override void OnPlayerSpawn(EntityUid uid, if (AttackRateModifier != null) melee.AttackRate *= AttackRateModifier.Value; + + entityManager.Dirty(uid, melee); } } diff --git a/Content.Shared/Actions/BaseActionComponent.cs b/Content.Shared/Actions/BaseActionComponent.cs index 720900b78400..481c4e80753d 100644 --- a/Content.Shared/Actions/BaseActionComponent.cs +++ b/Content.Shared/Actions/BaseActionComponent.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Audio; +using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -26,6 +26,16 @@ public abstract partial class BaseActionComponent : Component /// [DataField("iconOn")] public SpriteSpecifier? IconOn; + /// + /// For actions with a cooldown, icon to show when the action is on cooldown. + /// + [DataField] public SpriteSpecifier? IconCooldown; + + /// + /// For actions with a cooldown, icon to show when the action is disabled. + /// + [DataField] public SpriteSpecifier? IconDisabled; + /// /// For toggle actions only, background to show when toggled on. /// diff --git a/Content.Shared/Actions/SharedActionsSystem.cs b/Content.Shared/Actions/SharedActionsSystem.cs index 8cede391a809..3181635e4160 100644 --- a/Content.Shared/Actions/SharedActionsSystem.cs +++ b/Content.Shared/Actions/SharedActionsSystem.cs @@ -340,6 +340,17 @@ public void ResetCharges(EntityUid? actionId) Dirty(actionId.Value, action); } + public void SetMaxCharges(EntityUid? actionId, int? maxCharges) + { + if (!TryGetActionData(actionId, out var action) || + action.MaxCharges == maxCharges) + return; + + action.MaxCharges = maxCharges; + UpdateAction(actionId, action); + Dirty(actionId.Value, action); + } + private void OnActionsGetState(EntityUid uid, ActionsComponent component, ref ComponentGetState args) { args.State = new ActionsComponentState(GetNetEntitySet(component.Actions)); diff --git a/Content.Shared/Charges/Systems/SharedChargesSystem.cs b/Content.Shared/Charges/Systems/SharedChargesSystem.cs index 7f95ef184e49..ce47fee4f46a 100644 --- a/Content.Shared/Charges/Systems/SharedChargesSystem.cs +++ b/Content.Shared/Charges/Systems/SharedChargesSystem.cs @@ -80,6 +80,23 @@ public bool TryUseCharge(Entity ent) return true; } + /// + /// Sets the charges and max charges. + /// + public void SetCharges(Entity ent, int? charges, int? maxCharges) + { + if (!Query.Resolve(ent, ref ent.Comp, false)) + return; + + if (charges != null) + ent.Comp.Charges = charges.Value; + + if (maxCharges != null) + ent.Comp.MaxCharges = maxCharges.Value; + + Dirty(ent, ent.Comp); + } + /// /// Gets the limited charges component and returns true if the number of charges remaining is less than the specified value. /// Will return false if there is no limited charges component. diff --git a/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs b/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs index c76214f13189..304dd2a3e847 100644 --- a/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs +++ b/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs @@ -16,6 +16,12 @@ public sealed partial class HideLayerClothingComponent : Component [DataField] public HashSet Slots = new(); + /// + /// The clothing layers to hide. + /// + [DataField] + public HashSet? ClothingSlots = new(); + /// /// If true, the layer will only hide when the item is in a toggled state (e.g. masks) /// diff --git a/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs index 67aabbd1ed1d..12466dcf8980 100644 --- a/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs +++ b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Shared.Body.Systems; using Content.Shared.Clothing.Components; using Content.Shared.Clothing.Loadouts.Prototypes; using Content.Shared.Customization.Systems; @@ -32,7 +33,8 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnMapInit); + // Wait until the character has all their organs before we give them their loadout to activate internals + SubscribeLocalEvent(OnMapInit, after: [typeof(SharedBodySystem)]); _sawmill = _log.GetSawmill("loadouts"); } @@ -112,7 +114,7 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a } allLoadouts.Add((item, loadout, i)); - if (loadout.CustomHeirloom == true) + if (i == 0 && loadout.CustomHeirloom == true) // Only the first item can be an heirloom heirlooms.Add((item, loadout)); // Equip it diff --git a/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs b/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs index 586fc139a023..533975f7409f 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs @@ -92,6 +92,6 @@ public bool CanEntityWearItem(EntityUid dummy, EntityUid clothing, bool bypassAc { return _inventory.TryGetSlots(dummy, out var slots) && slots.Where(slot => !slot.SlotFlags.HasFlag(SlotFlags.POCKET)) - .Any(slot => _inventory.CanEquip(dummy, clothing, slot.Name, out _, bypassAccessCheck: bypassAccessCheck)); + .Any(slot => _inventory.CanEquip(dummy, clothing, slot.Name, out _, onSpawn: true, bypassAccessCheck: bypassAccessCheck)); } } diff --git a/Content.Shared/Effects/ColorFlashEffectEvent.cs b/Content.Shared/Effects/ColorFlashEffectEvent.cs index 06043d3c000a..0a4e2c1812d4 100644 --- a/Content.Shared/Effects/ColorFlashEffectEvent.cs +++ b/Content.Shared/Effects/ColorFlashEffectEvent.cs @@ -15,9 +15,15 @@ public sealed class ColorFlashEffectEvent : EntityEventArgs public List Entities; - public ColorFlashEffectEvent(Color color, List entities) + /// + /// The length of the flash animation. + /// + public float? AnimationLength; + + public ColorFlashEffectEvent(Color color, List entities, float? animationLength = null) { Color = color; Entities = entities; + AnimationLength = animationLength; } } diff --git a/Content.Shared/Effects/SharedColorFlashEffectSystem.cs b/Content.Shared/Effects/SharedColorFlashEffectSystem.cs index e1d5735550ee..3b5940b677c8 100644 --- a/Content.Shared/Effects/SharedColorFlashEffectSystem.cs +++ b/Content.Shared/Effects/SharedColorFlashEffectSystem.cs @@ -4,5 +4,5 @@ namespace Content.Shared.Effects; public abstract class SharedColorFlashEffectSystem : EntitySystem { - public abstract void RaiseEffect(Color color, List entities, Filter filter); + public abstract void RaiseEffect(Color color, List entities, Filter filter, float? animationLength = null); } diff --git a/Content.Shared/Humanoid/NamingSystem.Roman.cs b/Content.Shared/Humanoid/NamingSystem.Roman.cs new file mode 100644 index 000000000000..2c254fff9034 --- /dev/null +++ b/Content.Shared/Humanoid/NamingSystem.Roman.cs @@ -0,0 +1,70 @@ +using System.Text; +using Robust.Shared.Random; + +namespace Content.Shared.Humanoid; + +public sealed partial class NamingSystem : EntitySystem +{ + private static readonly Dictionary RomanMap = new() + { + { "M", 1000 }, + { "CM", 900 }, + { "D", 500 }, + { "CD", 400 }, + { "C", 100 }, + { "XC", 90 }, + { "L", 50 }, + { "XL", 40 }, + { "X", 10 }, + { "IX", 9 }, + { "V", 5 }, + { "IV", 4 }, + { "I", 1 } + }; + + // + // Generates a random Roman numeral with a length not exceeding 8 characters. + // All possible Roman numerals from 1 to 3,999 can be generated, + // but numbers from 1 to 100 have a higher chance of being rolled. + // + private string GenerateRomanNumeral() + { + (int, int) range; + while (true) + { + if (_random.Prob(0.8f)) // 80% chance for 1-100 + range = (1, 101); + else if (_random.Prob(0.6f)) // 12% chance for 101-500 + range = (101, 501); + else if (_random.Prob(0.75f)) // 6% chance for 501-1,000 + range = (501, 1001); + else // 2% chance for 1,001-3,999 + range = (1001, 4000); + + var numeral = IntToRomanNumeral(_random.Next(range.Item1, range.Item2)); + + // Reroll when the numeral length is greater than 8 to prevent lengthy Roman numerals + if (numeral.Length > 8) + continue; + + return numeral; + } + } + + // + // Converts an integer to a Roman numeral. + // + private static string IntToRomanNumeral(int number) + { + var sb = new StringBuilder(); + foreach (var (letters, equivalentNumber) in RomanMap) + { + while (number >= equivalentNumber) + { + sb.Append(letters); + number -= equivalentNumber; + } + } + return sb.ToString(); + } +} diff --git a/Content.Shared/Humanoid/NamingSystem.cs b/Content.Shared/Humanoid/NamingSystem.cs index c1e861c0d684..d27411852bfc 100644 --- a/Content.Shared/Humanoid/NamingSystem.cs +++ b/Content.Shared/Humanoid/NamingSystem.cs @@ -9,7 +9,7 @@ namespace Content.Shared.Humanoid /// /// Figure out how to name a humanoid with these extensions. /// - public sealed class NamingSystem : EntitySystem + public sealed partial class NamingSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; @@ -43,6 +43,9 @@ public string GetName(string species, Gender? gender = null) case SpeciesNaming.FirstDashLast: return Loc.GetString("namepreset-firstdashlast", ("first", GetFirstName(speciesProto, gender)), ("last", GetLastName(speciesProto))); + case SpeciesNaming.FirstRoman: + return Loc.GetString("namepreset-firstlast", + ("first", GetFirstName(speciesProto, gender)), ("last", GenerateRomanNumeral())); case SpeciesNaming.FirstLast: default: return Loc.GetString("namepreset-firstlast", diff --git a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs index 36b1e2387b72..fb44c2904db5 100644 --- a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs +++ b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs @@ -192,4 +192,5 @@ public enum SpeciesNaming : byte //End of Nyano - Summary: for Oni naming TheFirstofLast, FirstDashLast, + FirstRoman, } diff --git a/Content.Shared/Inventory/InventorySystem.Equip.cs b/Content.Shared/Inventory/InventorySystem.Equip.cs index 9e45547beeda..cfcb156455b8 100644 --- a/Content.Shared/Inventory/InventorySystem.Equip.cs +++ b/Content.Shared/Inventory/InventorySystem.Equip.cs @@ -228,11 +228,11 @@ public bool CanAccess(EntityUid actor, EntityUid target, EntityUid itemUid) public bool CanEquip(EntityUid uid, EntityUid itemUid, string slot, [NotNullWhen(false)] out string? reason, SlotDefinition? slotDefinition = null, InventoryComponent? inventory = null, - ClothingComponent? clothing = null, ItemComponent? item = null, bool bypassAccessCheck = false) => - CanEquip(uid, uid, itemUid, slot, out reason, slotDefinition, inventory, clothing, item, bypassAccessCheck); + ClothingComponent? clothing = null, ItemComponent? item = null, bool onSpawn = false, bool bypassAccessCheck = false) => + CanEquip(uid, uid, itemUid, slot, out reason, slotDefinition, inventory, clothing, item, onSpawn, bypassAccessCheck); public bool CanEquip(EntityUid actor, EntityUid target, EntityUid itemUid, string slot, [NotNullWhen(false)] out string? reason, SlotDefinition? slotDefinition = null, - InventoryComponent? inventory = null, ClothingComponent? clothing = null, ItemComponent? item = null, bool bypassAccessCheck = false) + InventoryComponent? inventory = null, ClothingComponent? clothing = null, ItemComponent? item = null, bool onSpawn = false, bool bypassAccessCheck = false) { reason = "inventory-component-can-equip-cannot"; if (!Resolve(target, ref inventory, false)) @@ -278,6 +278,11 @@ public bool CanEquip(EntityUid actor, EntityUid target, EntityUid itemUid, strin return false; } + if (onSpawn && + (_whitelistSystem.IsWhitelistFail(slotDefinition.SpawnWhitelist, itemUid) || + _whitelistSystem.IsBlacklistPass(slotDefinition.SpawnBlacklist, itemUid))) + return false; + var attemptEvent = new IsEquippingAttemptEvent(actor, target, itemUid, slotDefinition); RaiseLocalEvent(target, attemptEvent, true); if (attemptEvent.Cancelled) diff --git a/Content.Shared/Inventory/InventoryTemplatePrototype.cs b/Content.Shared/Inventory/InventoryTemplatePrototype.cs index 91accec8c93e..ae1269cbd0ba 100644 --- a/Content.Shared/Inventory/InventoryTemplatePrototype.cs +++ b/Content.Shared/Inventory/InventoryTemplatePrototype.cs @@ -60,4 +60,19 @@ public sealed partial class SlotDefinition /// Entity blacklist for CanEquip checks. /// [DataField("blacklist")] public EntityWhitelist? Blacklist = null; + + /// + /// Entity whitelist for CanEquip checks, on spawn only. + /// + [DataField("spawnWhitelist")] public EntityWhitelist? SpawnWhitelist = null; + + /// + /// Entity blacklist for CanEquip checks, on spawn only. + /// + [DataField("spawnBlacklist")] public EntityWhitelist? SpawnBlacklist = null; + + /// + /// Is this slot disabled? Could be due to severing or other reasons. + /// + [DataField] public bool Disabled; } diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs index 5ea9da02247b..54889a3c30ee 100644 --- a/Content.Shared/Roles/JobPrototype.cs +++ b/Content.Shared/Roles/JobPrototype.cs @@ -106,6 +106,12 @@ public sealed partial class JobPrototype : IPrototype [DataField] public ProtoId? NameDataset; + /// + /// A list of requirements that when satisfied, add or replace from the base starting gear. + /// + [DataField("conditionalStartingGear")] + public List? ConditionalStartingGears { get; private set; } + ///
/// Use this to spawn in as a non-humanoid (borg, test subject, etc.) /// Starting gear will be ignored. @@ -120,6 +126,9 @@ public sealed partial class JobPrototype : IPrototype [DataField("special", serverOnly: true)] public JobSpecial[] Special { get; private set; } = Array.Empty(); + [DataField("afterLoadoutSpecial", serverOnly: true)] + public JobSpecial[] AfterLoadoutSpecial { get; private set; } = []; + [DataField("access")] public IReadOnlyCollection> Access { get; private set; } = Array.Empty>(); @@ -142,6 +151,25 @@ public sealed partial class JobPrototype : IPrototype public bool ApplyTraits = true; } + /// + /// Starting gear that will only be applied upon satisfying requirements. + /// + [DataDefinition] + public sealed partial class ConditionalStartingGear + { + /// + /// The requirements to check. + /// + [DataField(required: true)] + public List Requirements; + + /// + /// The starting gear to apply, replacing the equivalent slots. + /// + [DataField(required: true)] + public ProtoId Id { get; private set; } + } + /// /// Sorts s appropriately for display in the UI, /// respecting their . diff --git a/Content.Shared/Roles/StartingGearPrototype.cs b/Content.Shared/Roles/StartingGearPrototype.cs index 61ad7940d711..fca4849467dd 100644 --- a/Content.Shared/Roles/StartingGearPrototype.cs +++ b/Content.Shared/Roles/StartingGearPrototype.cs @@ -1,3 +1,4 @@ +using Content.Shared.Customization.Systems; using Content.Shared.Preferences; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; @@ -8,6 +9,7 @@ namespace Content.Shared.Roles; public sealed partial class StartingGearPrototype : IPrototype, IInheritingPrototype { [DataField] + [AlwaysPushInheritance] public Dictionary Equipment = new(); /// @@ -23,14 +25,32 @@ public sealed partial class StartingGearPrototype : IPrototype, IInheritingProto public EntProtoId? Duffelbag; [DataField] + [AlwaysPushInheritance] public List Inhand = new(0); /// /// Inserts entities into the specified slot's storage (if it does have storage). /// [DataField] + [AlwaysPushInheritance] public Dictionary> Storage = new(); + /// + /// The list of starting gears that overwrite the entries on this starting gear + /// if their requirements are satisfied. + /// + [DataField("subGear")] + [AlwaysPushInheritance] + public List> SubGears = new(); + + /// + /// The requirements of this starting gear. + /// Only used if this starting gear is a sub-gear of another starting gear. + /// + [DataField] + [AlwaysPushInheritance] + public List Requirements = new(); + [ViewVariables] [IdDataField] public string ID { get; private set; } = string.Empty; @@ -41,6 +61,7 @@ public sealed partial class StartingGearPrototype : IPrototype, IInheritingProto /// [AbstractDataField] + [NeverPushInheritance] public bool Abstract { get; } public string GetGear(string slot, HumanoidCharacterProfile? profile) diff --git a/Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs b/Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs new file mode 100644 index 000000000000..ef60622f3269 --- /dev/null +++ b/Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs @@ -0,0 +1,66 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.SelfExtinguisher; + +/// +/// When equipped, the SelfExtinguisherComponent will give an action to its wearer to self-extinguish when set on fire. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] +public sealed partial class SelfExtinguisherComponent : Component +{ + /// + /// Action used to self-extinguish. + /// + [DataField, AutoNetworkedField] + public EntProtoId Action = "ActionSelfExtinguish"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + + /// + /// Cooldown before the self-extinguisher can be used again. + /// + [DataField(required: true)] + public TimeSpan Cooldown; + + /// + /// Time before the self-extinguisher can be used again. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField, AutoPausedField] + public TimeSpan NextExtinguish = TimeSpan.Zero; + + /// + /// When failing self-extinguish attempts, + /// don't spam popups every frame and instead have a cooldown. + /// + [DataField] + public TimeSpan PopupCooldown = TimeSpan.FromSeconds(1); + + /// + /// Time before the next popup can be shown. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + [AutoPausedField] + public TimeSpan? NextPopup = null; + + /// + /// If true, requires the wearer to be immune to gas ignition. + /// + [DataField] + public bool RequiresIgniteFromGasImmune = false; + + /// + /// The sound effect that plays upon an extinguish. + /// + [DataField(required: true)] + public SoundSpecifier Sound { get; private set; } = default!; + + /// + /// The sound effect that plays upon getting refilled. + /// + [DataField] + public SoundSpecifier RefillSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg"); +} diff --git a/Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs b/Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs new file mode 100644 index 000000000000..30cea16e570b --- /dev/null +++ b/Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared.SelfExtinguisher; + +/// +/// Used to refill the charges of self-extinguishers. +/// +[RegisterComponent] +public sealed partial class SelfExtinguisherRefillComponent : Component +{ + // + // The amount of charges to refill. + // + [DataField(required: true)] + public int RefillAmount; +} diff --git a/Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs b/Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs new file mode 100644 index 000000000000..2aee19202aa5 --- /dev/null +++ b/Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs @@ -0,0 +1,167 @@ +using Content.Shared.Actions; +using Content.Shared.Charges.Components; +using Content.Shared.Charges.Systems; +using Content.Shared.Examine; +using Content.Shared.Interaction; +using Content.Shared.Inventory; +using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Timing; +using Robust.Shared.Utility; + +namespace Content.Shared.SelfExtinguisher; + +public abstract partial class SharedSelfExtinguisherSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedChargesSystem _charges = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + + SubscribeLocalEvent>>(GetRelayedVerbs); + SubscribeLocalEvent(OnGetActions); + SubscribeLocalEvent>(OnGetVerbs); + + SubscribeLocalEvent(OnInteractUsing); + + SubscribeLocalEvent(OnExamined); + } + + private void OnMapInit(EntityUid uid, SelfExtinguisherComponent component, MapInitEvent args) + { + if (!_actionContainer.EnsureAction(uid, ref component.ActionEntity, out _, component.Action)) + return; + + // The components SelfExtinguisherComponent and LimitedChargesComponent will be the source of truth + // regarding the cooldowns and charges, and the action component will just mirror any changes. + _actions.SetUseDelay(component.ActionEntity, component.Cooldown); + if (TryComp(uid, out var charges)) + { + _actions.SetCharges(component.ActionEntity, charges.Charges); + _actions.SetMaxCharges(component.ActionEntity, charges.MaxCharges); + } + } + + public void SetCharges(EntityUid uid, int? charges, int? maxCharges, SelfExtinguisherComponent? component = null) + { + if (!Resolve(uid, ref component) || + !TryComp(uid, out var chargeComp)) + return; + + _charges.SetCharges((uid, chargeComp), charges, maxCharges); + _actions.SetCharges(component.ActionEntity, chargeComp.Charges); + _actions.SetMaxCharges(component.ActionEntity, chargeComp.MaxCharges); + + _actions.SetEnabled(component.ActionEntity, chargeComp.Charges != 0); + } + + private void GetRelayedVerbs(EntityUid uid, SelfExtinguisherComponent component, InventoryRelayedEvent> args) + { + OnGetVerbs(uid, component, args.Args); + } + + private void OnGetVerbs(EntityUid uid, SelfExtinguisherComponent component, GetVerbsEvent args) + { + if (!_inventory.TryGetContainingSlot(uid, out var _)) + return; + + var verb = new EquipmentVerb() + { + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png")), + Text = Loc.GetString("self-extinguisher-verb"), + EventTarget = uid, + ExecutionEventArgs = new SelfExtinguishEvent() { Performer = args.User } + }; + + args.Verbs.Add(verb); + } + + private void OnGetActions(EntityUid uid, SelfExtinguisherComponent component, GetItemActionsEvent args) + { + if (component.ActionEntity == null || args.InHands) + return; + + args.AddAction(component.ActionEntity.Value); + } + + private void OnInteractUsing(EntityUid uid, SelfExtinguisherComponent component, InteractUsingEvent args) + { + if (!TryComp(args.Used, out var refill) || + !TryComp(uid, out var charges)) + return; + + if (charges.Charges >= charges.MaxCharges) + { + if (!SetPopupCooldown((uid, component))) + return; + + _popup.PopupClient(Loc.GetString("self-extinguisher-refill-full"), args.User, args.User); + return; + } + + // Add charges + _charges.AddCharges(uid, refill.RefillAmount, charges); + _actions.SetCharges(component.ActionEntity, charges.Charges); + + // Reenable action + _actions.SetEnabled(component.ActionEntity, charges.Charges != 0); + + // Reset cooldown + _actions.ClearCooldown(component.ActionEntity); + component.NextExtinguish = TimeSpan.Zero; + + Dirty(uid, component); + + _popup.PopupClient(Loc.GetString("self-extinguisher-refill"), args.User, args.User); + _audio.PlayPredicted(component.RefillSound, uid, args.User); + + QueueDel(args.Used); + } + + private void OnExamined(EntityUid uid, SelfExtinguisherComponent component, ExaminedEvent args) + { + if (TryComp(uid, out var charges) && charges.Charges == 0) + return; + + var curTime = _timing.CurTime; + if (component.NextExtinguish > curTime) + { + args.PushMarkup(Loc.GetString("self-extinguisher-examine-cooldown-recharging", + ("cooldown", Math.Ceiling((component.NextExtinguish - curTime).TotalSeconds)))); + return; + } + + args.PushMarkup(Loc.GetString("self-extinguisher-examine-cooldown-ready")); + } + + // + // Returns: + // - true if a popup is ready to be shown. The popup cooldown is also set. + // - false if popups are still on cooldown + // + protected bool SetPopupCooldown(Entity ent, TimeSpan? curTime = null) + { + curTime ??= _timing.CurTime; + + if (curTime < ent.Comp.NextPopup) + return false; + + ent.Comp.NextPopup = curTime + ent.Comp.PopupCooldown; + return true; + } +} + +// +// Raised on an attempt to self-extinguish. +// +public sealed partial class SelfExtinguishEvent : InstantActionEvent { } diff --git a/Content.Shared/Station/SharedStationSpawningSystem.cs b/Content.Shared/Station/SharedStationSpawningSystem.cs index c433cc1d4fe8..9af87376b060 100644 --- a/Content.Shared/Station/SharedStationSpawningSystem.cs +++ b/Content.Shared/Station/SharedStationSpawningSystem.cs @@ -1,13 +1,18 @@ +using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.Dataset; +using Content.Shared.Customization.Systems; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; +using Content.Shared.Humanoid; using Content.Shared.Inventory; +using Content.Shared.Preferences; using Content.Shared.Preferences.Loadouts; using Content.Shared.Roles; using Content.Shared.Storage; using Content.Shared.Storage.EntitySystems; using Robust.Shared.Collections; +using Robust.Shared.Configuration; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Utility; @@ -23,6 +28,8 @@ public abstract class SharedStationSpawningSystem : EntitySystem [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly SharedTransformSystem _xformSystem = default!; [Dependency] private readonly MetaDataSystem _metadata = default!; + [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; private EntityQuery _handsQuery; private EntityQuery _inventoryQuery; @@ -78,6 +85,10 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG if (startingGear == null) return; + if (GetProfile(entity, out var profile)) + // Equip any sub-gears of this starting gear. + startingGear = ApplySubGear(startingGear, profile); + var xform = _xformQuery.GetComponent(entity); if (InventorySystem.TryGetSlots(entity, out var slotDefinitions)) @@ -143,4 +154,108 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG RaiseLocalEvent(entity, ref ev); } } + + public bool GetProfile(EntityUid? uid, [NotNullWhen(true)] out HumanoidCharacterProfile? profile) + { + if (!TryComp(uid, out HumanoidAppearanceComponent? appearance)) + { + profile = null; + return false; + } + + if (appearance.LastProfileLoaded is { } lastProfileLoaded) + { + profile = lastProfileLoaded; + return true; + } + + profile = HumanoidCharacterProfile.DefaultWithSpecies(appearance.Species); + return true; + } + + // + // Apply a starting gear's sub-gears to itself, returning a new starting gear prototype with + // replaced equipment. + // + public StartingGearPrototype ApplySubGear(StartingGearPrototype startingGear, HumanoidCharacterProfile profile, JobPrototype? job = null) + { + if (startingGear.SubGears.Count == 0) + return startingGear; + + // Job can be null for cases like ghost roles' starting gear which do not have a job definition. + job ??= new JobPrototype(); + + var newStartingGear = startingGear; + var foundConditionalMatch = false; + + foreach (var subGear in startingGear.SubGears) + { + if (!PrototypeManager.TryIndex(subGear.Id, out var subGearProto) || + !_characterRequirements.CheckRequirementsValid( + subGearProto.Requirements, job, profile, new Dictionary(), false, job, + EntityManager, PrototypeManager, _configurationManager, + out _)) + continue; + + // Apply the sub-gear's sub-gears if there are any + subGearProto = ApplySubGear(subGearProto, profile, job); + + if (!foundConditionalMatch) + { + foundConditionalMatch = true; + // Lazy init on making a new starting gear prototype for performance reasons. + // We can't just modify the original prototype or it will be modified for everyone. + newStartingGear = new StartingGearPrototype() + { + Equipment = startingGear.Equipment.ToDictionary(static entry => entry.Key, static entry => entry.Value), + InnerClothingSkirt = startingGear.InnerClothingSkirt, + Satchel = startingGear.Satchel, + Duffelbag = startingGear.Duffelbag, + Inhand = new List(startingGear.Inhand), + Storage = startingGear.Storage.ToDictionary( + static entry => entry.Key, + static entry => new List(entry.Value) + ), + }; + } + + // Apply the sub-gear's equipment to this starting gear + if (subGearProto.InnerClothingSkirt != null) + newStartingGear.InnerClothingSkirt = subGearProto.InnerClothingSkirt; + + if (subGearProto.Satchel != null) + newStartingGear.Satchel = subGearProto.Satchel; + + if (subGearProto.Duffelbag != null) + newStartingGear.Duffelbag = subGearProto.Duffelbag; + + foreach (var (slot, entProtoId) in subGearProto.Equipment) + { + // Don't remove items in pockets, instead put them in the backpack or hands + if (slot == "pocket1" && newStartingGear.Equipment.TryGetValue("pocket1", out var pocket1) || + slot == "pocket2" && newStartingGear.Equipment.TryGetValue("pocket2", out var pocket2)) + { + var pocketProtoId = slot == "pocket1" ? pocket1 : pocket2; + + if (string.IsNullOrEmpty(newStartingGear.GetGear("back", null))) + newStartingGear.Inhand.Add(pocketProtoId); + else + { + if (!newStartingGear.Storage.ContainsKey("back")) + newStartingGear.Storage["back"] = new(); + newStartingGear.Storage["back"].Add(pocketProtoId); + } + } + + newStartingGear.Equipment[slot] = entProtoId; + } + + newStartingGear.Inhand.AddRange(subGearProto.Inhand); + + foreach (var (slot, entProtoIds) in subGearProto.Storage) + newStartingGear.Storage[slot].AddRange(entProtoIds); + } + + return newStartingGear; + } } diff --git a/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs b/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs index 571db09ebea3..8f87633eb68d 100644 --- a/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs +++ b/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs @@ -1,3 +1,4 @@ +using Content.Shared.Customization.Systems; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -13,6 +14,7 @@ public sealed partial class ThiefBackpackSetPrototype : IPrototype [DataField] public string Name { get; private set; } = string.Empty; [DataField] public string Description { get; private set; } = string.Empty; [DataField] public SpriteSpecifier Sprite { get; private set; } = SpriteSpecifier.Invalid; + [DataField] public List Requirements { get; private set; } = []; [DataField] public List Content = new(); } diff --git a/Resources/Audio/Voice/Plasmaman/attributions.yml b/Resources/Audio/Voice/Plasmaman/attributions.yml new file mode 100644 index 000000000000..c2baecc2b674 --- /dev/null +++ b/Resources/Audio/Voice/Plasmaman/attributions.yml @@ -0,0 +1,7 @@ +- files: + - plasmaman_scream_1.ogg + - plasmaman_scream_2.ogg + - plasmaman_scream_3.ogg + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/tgstation/tgstation/commit/436ba869ebcd0b60b63973fb7562f447ee655205 and volume reduced by Skubman" + source: "https://github.com/tgstation/tgstation" diff --git a/Resources/Audio/Voice/Plasmaman/plasmaman_scream_1.ogg b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f0687945060fba3ae33159c9d6526c9fe3ebf2a5 GIT binary patch literal 27171 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 B$J77- literal 0 HcmV?d00001 diff --git a/Resources/Audio/Voice/Plasmaman/plasmaman_scream_2.ogg b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e61619c02766b3b34ea0f94aa902a54e63364ee9 GIT binary patch literal 28023 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Voice/Plasmaman/plasmaman_scream_3.ogg b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ac8b8ec21f328a116981582ff04b28553374483c GIT binary patch literal 26663 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Weapons/attributions.yml b/Resources/Audio/Weapons/attributions.yml index 310b01b7280a..11e8199c87a1 100644 --- a/Resources/Audio/Weapons/attributions.yml +++ b/Resources/Audio/Weapons/attributions.yml @@ -82,8 +82,13 @@ license: "CC0-1.0" copyright: "Taken from ScreamStudio on freesound.org" source: "https://freesound.org/people/ScreamStudio/sounds/392617/" - + - files: ["pop.ogg"] license: "CC0-1.0" copyright: "Taken from 0ne_one111yt on freesound.org" source: "https://freesound.org/people/0ne_one111yt/sounds/478213/" + +- files: ["firepunch1.ogg", "firepunch2.ogg", "firepunch3.ogg", "firepunch4.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from Citadel Station 13. Remixed to mono where it was stereo by metalgearsloth then added punch sound effects by Skubman" + source: "https://github.com/Citadel-Station-13/Citadel-Station-13-RP/tree/cc701aedb633d83eae8339a8b3712ad8ad99cca0/sound" diff --git a/Resources/Audio/Weapons/firepunch1.ogg b/Resources/Audio/Weapons/firepunch1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6f13ff9cef59d10eaac915f5e4ab685e63499fda GIT binary patch literal 21901 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 z�AG!=@;diu-E_?5?Nn@bG;}-S#s9YA3X}oT;i#75jzI4Leo$V{Us&*f2q^z@nVrVqW`}ZsLNrQu> z{ux(S+WAOzVoqDiJHdE3wxto2Jq0dyH`6gM=3QpzD`U72Mb_5sa9*KG)+toh1JU3C zVJEfMsZZ|^U|cq#w@e#Ro4 zg`!AE0Jj?5!c@(Op6R%Mx+Rx9IoKz(d))Q0FHdMb2|Bt%MxGeow&_pI&B)N9Ikqm! zunfIUO6|KO`RQ@mFfE5ew>{S7!Td42(@aiTNpEU$dQ!GnW1LQw56iN3x_{0y!Fn?# zJkZNcCiR%#yq(7xecEVcBh;PT%Uw4I8+Pu_q^Oax^l7?7TX%0xlwlprt-+k~W_W#4 z`_^mg@;nV&yN74e5;gH?y0kv|bVFjfG2)B1<*UGTI{eD)jkD>uS1Oy6ZA885%)j_D#1(Z#DjK{kS{aO75RVv)?vE)5qGI#>*0y8$47h6>~Ul zH$l^zVbeyoO#uL;WO`5?pK4(r-32h{$_EW>lzB_?!gsg);}-Tl=gfz4b78D@ErNW_ zy8XSbtKLaJZP%j&v+!;3#oE%KbYQra+b)&YbsRk7?=vw9{lCAC1rv(5At!n=8}Av*zjBynGRPPHOLXq%YRAy)O*6Lf-FRh%GTezN z=pB)_?z|7^wH&n_8+hq`{9G?aEZA%^oJ{82#_{v!XQJWdLi5;-|EIc)PuORbo# z1Y;PUC*FOxWzpvCL;7;VsNLq9CR&*-q2X3|Cl33*6}NV|kIW}IeSb6*=k?w@;Q&%}>w;gk;|tHW zL5I7{)P6K(Om9em}IH>-d4>yV#9&#ML9;FqE@0uOOT*)ERi+k>V zUfo$&`i!GmX|+S&@=+v!B^+(wExJn(XG7LY>Fm_$_+ZfE zNP9E$B=vR1dw0{m=zD*;UFEZ^@g|l50001f1tYWtFhLJ|tNPXDE~_;$HQ*3VY@4pz zXp_0=`R>@uRdh~5@}aA36EYvp6m!P9hcRPx>8H5rS>;Xo$UM3$u@aBB5^E<2F2>E{ zE$npn!{iYU@0doBW;JB&e#MhhZH@cM*~k^?VJvTLdwGaBJIU=sUaV8M*>6X!uBLfC zHPPChj!P5M6DKVrgL5DsHRBX>X9V9$7~#xa1_?P;(+xFZt#ojC{x#Omo?Deo#|T&9 z)y!36QMU4Y_FHF*!PZGvY1m;nuQu9p2_2otYDb4Yary1DTB!9jH9a-0*Q}n{B=m`L zu=KmOIM_~QeL5OCG6$L%kB+Cd)7qN4wVC{4Sku8ge)z68;bwTIlR1&e+$cfpcQs=t zep104N~cYE9bO#OoO|`qdgJ?1UT??V!~sy@Vh?tH8Us=P8E2nRh~eXAY=jNlY}~18 zdTQU?*74|Me*x`*Z&2R%6h$p;%-e&ry{{Wcn9oYDc(fM1urX&GzXoeH25Z%WRG2bO zCY>xINNr|dvDs}a7!`7q&GPKpRwJP}k*tYLSFlfCrYU2^`%{j-!_LEl&GrWtdii+V zM^DSpc5>C^H(#UmHub$GKMyk|zWV1q?W8ef3=FKHb1L6cUi!iv6;`#nyQn;~4C=Ln zv16Yi%QHLN=9g7m(N|DEud8pRmpjLWz9)n8q)AU-si{(@I$yjtsAa4I?I-1TUpF`L z4!*{d>CW16TL?6lCZYRY*abc`yCwzz00000000&wQ<4g%-{?U#?Jwuk{a=1jy|;=t zw_jZFg7aHNQ+4;}>1I0cEKN5KEbpeLQ`R|VfAkA&tKOggdiUgSeN{f%r?2MalWncsLBCJj@k?S4{bt=~Kq z%p>8YEmJYuM-BrbLQ;-HcA}cWA2(OBwAFdX5Kd^&|sFI)TM7N4_&;mG`dUjFv`zLM>I%4Q`VOg-|9H_BX^LEEa*aX1*4vX+N*Z5^mBMmQMBe9>MG z2VUx~G!>RV%c~EIqXWJSt~oXpwHeJwp7(&AxUr}U+9`f=lrOh;F}S$ypob!X4c zqK@0L^~&Ai3V=^NSmkp6{R&g4dP+SiqmO<5pjG2vTYtKe8(mjE&ycQyy))U5=WhV) zsPuXntD|7{gM+uW+>~V5vxUvhbHs9rZ?4Ls$0RcvkYifmVBL?B`qlCjd`pXHx(K<8A-|00000h*vEl z1^@s6q1P9q0$yR%u)G=wP6e-j>uf0Qec7|_b>BQ*{Le;~zdlTb{#ar@*=IU0dud4eYxuO_%vW_Cp+E5u|drVcc#kOOI`TpHaxWNDb z0JO9aniK_ihkO3zH~-B`&L8UJ-~Im%-yZKCv+X`}aGoSthBrTOhxzn%zq@<BYaZ4zEVZ47tpz7oij_C9?>GIU%>wiojrRZm literal 0 HcmV?d00001 diff --git a/Resources/Audio/Weapons/firepunch2.ogg b/Resources/Audio/Weapons/firepunch2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fe4e7ef41b44cc4b16ee89ca4061ee8103b12622 GIT binary patch literal 23041 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�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 WE0QC3>hO8iG3y8u`QYYMHvj;un9o@N literal 0 HcmV?d00001 diff --git a/Resources/Audio/Weapons/firepunch4.ogg b/Resources/Audio/Weapons/firepunch4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c656d6c8ca1fa97015d62b19e86261b13427fb36 GIT binary patch literal 21629 zcmb@ubzGFs_cy$ViYNjK(kYS>(jkq4Ea}qSx%AR4C5<$aA}mOEmx_RNFAW013QKqI zeSx3P_x?V==Xu@tKhL}_hnYEN&di*1-e=|-E>yCxPyyWn{gcX{G>Banm+U=KF{m(H z?VXIRVAl;8uZpjKfIu$_FmHa=V<=ts{7<^>i2>BszGqE7dWHUfrg6-_l6U|HO)CdW zb|ohZ8XGHP^&9y#vNT*TxL&;Af5Ah;1TiypF|o3?3;mvia<3(6XLRbfhNhD|I zzZngW=@Ss>Hprg|J341o)_OqDf`l>J>64(9qCh?kR`}arg4o{=8BFZ*s`H?B1I+aI z9%|hI0U8p2LmNy8xz3D3X+ubW>^+6kPul!+r~52lJ_X$8`biTg&$X5tuPC(kB_~>F zovC_A@&Q}*2w0wTT-~I!<*uGLY(Nm1{!fN|vkn?yE|PaiP4Ok~U5gK8&P#CuMEzYB z4agr@CP*fhP_}}ww}PU7_?glk>stceVeZ!|stRgAa?#UpHJfmCnQ-;dN(t7f_tB~k z)|m{}I}SD?3Hj$a@mV;&er}ddg8}+PCz!O%{P`)_=Ow|S`TuG1&0)V%-KW3H8C_J4oGEq}6r!~tD)IZ|{v zK6?#$*5$;Cb)(^*Ai$>L5Y`SS9vK)<7fcv37$m9KMgln^dK;oPf9gY;; zfHoj(qfWdUFp&wE!UUj-YmNM$)4Lmg0Tx1=VV-2|e~MASLa_f;I!B%YZGJdp>r2`Z$yd8<53Gh5s#i zJWj(ZDHs9TNRjEdouozppVdezR>71e&{u0Hb@fXFAy5iSNMo#NQ2i_KAGavbPapUu zxCrzJn@)o^VCw;;Q`7XVe(dYE|LH#BfZdEHNjftEXndmY8WYmy(Z*9b$Kb|);{3^+ zOBEF@4K4^&hLAGCoda%GP6Gl3;oo@izuAo||MlYBxNw#prm8-!Ue@cZxP3qfRo;#- zg~JJWF)J_N#Zfh@nXpp9H&A#DLi;&90Rm=*|3wsFR2tI{5_d^&KoXMT)We()pyIy` zxASc95#{iIJ%hUxZy(bG&oCF83b%-ws+xwYtyZ$jOkJ?vq|3sD&%#8M0ddIxbgcg% z2Lym7=mwJs#*v&|>4A!p*nbWDFLE3SyJ9K2W1q=YK2sQB?cd{3+UFT2c>R_~LFI|w z@DrC&A~O{}y-{AXQ8lx1SF@>FGo3mgt=fM8^A|P?6E6RSoNI_Y6^vef6Lgqg?efq-)S4d5f`HKV+A$yMv3kZ9+L2m)LNrrO%ATf@V z_(}6BlJg#EP$=hJ+Q1=+d-TBxT=!@bKR|wv0M%}qpae--(u5C?H*gThAA|+`dyqZ! z;R%L#ItUc-0T#-6?}-V%(7gg@d`KZl;0HlQdKfO4i5`v*1_J~x z;0Fj39IgzuW`>iffZ1H}A@|_`!HT(tPzTJ`8P0j{BMicY%ngEQ1B4_&MmW#|D?1?$ z0)^)y0D|+7>>5o11Y%W?Fs98!Ujq>66A{`_&OC%M&W)&&+%aQo=30by@y+15*MnaZ zWZ7VfU@Y3i0SRWH2QU}2fooAC5=`*i5p7v`jWSq{9*&S?E~!Bn%NNv;fn@T zW7;JpH6$vpqpB4AcE0D-L&P|3}#*nl4LB^_ko8&SaE2<@nn z8Zs3yut0110$?lctEnM@0X?qAs38GFb&){XfbI7y28iZs5SOy$PcVq)KCn68rR_}T zzQ^1_64XfpCke!7?nr^*KZTRPa3wo|61e-i#7r6V_}VV`U}k1uTUP!B?B#}mc|Vpw z!6C)BL6WyXBtZ$reS%0Dzy?7dAd!MdiXaFi93K+SiA)bv27?nJ@|>&JZPo=4FlXmY zTY*{RbsIh)xdzz!(*yA(nVD-4KwoEIG&p=x2M}oZuV1k_D3h-1p!-Z#Y+hNrMaiRudq9tIYJ*R9e6~*HlRWcGp!v zY2b|OYIZ_`)-ks?7oim;qI(|JAE?2?(@v8w>R57P-2N05jPG)|)kA zfW87)mbgo6a(yxi0y1EpB-itNk&Q!0R{0q81~`@B0PDvB&~@WmU|HsCuekPVFH4U?ApJVt7gFtVXZw{6Kx~`ReZH<4=nVfn5DgE!Zo6_n(guZLzL<+7_ zT=z|fDFW{Q4ihBqAN4eiAoBK;>owj3OdV--}(0fNFsC0R9OC!AXDxkt)S} z%>pb`7w85M`fHHa3IR$b4f)qn5W28!k!vY6tLa{V8d8J>K;rb10`1@ttwl?R8$HZ| zK+?>>3UL3iRN`Nl{xuv6fcP7ixUQOBc-B4`u`B%fB;}te+j@q|CX+$fIvex_I#8`WSmc` zLG_OAJ}JXrd@Tao-@m-p&;IRC2gI3wB>g*!|NpE1pF@DY^x|NB{ew+zp(!i$oZ=z- z4F-t-#I>iGL`yINFxG~q1Sm`X$;}-B+f?v^C9ahP0bqjQ`tv0r4h$~oATo*k7zlx| z01*_3hX`CrFk20gPDI73HWVv67l@$O4p!O{_yG(pSs^hg7er1=FfrFm8b|U@XnWxn zR09HPj&z~@f}uc!=R}af`gxCM)7lO z$R(3emuX_(j=3rCtKZgbHlD?Tr5kN>m`tfvTp^XpN>?9usZOQaC^`+_iN@K@BcTM( zG6lzGO8ENU_w;ZYc$xP@$nJrPTh#m1qFh|_o*w0M=y4Z4P`Mm-TVAmB$hS_~R;R>0 zZ}aQ)tat2nYMQQO6xG|c8GA6V1ahy=<^TLj+piQ4wbj5*Gc_RoF-tVPHw%IHHF6$f61A36%P{0%u5|H^In@>}_& zR;`P^&)Q}jjK%MO!++~&)~uwvINGMA*7z*2=pzi(Js2I>c^2^Yd8f3TbWgdld*fa8 ztNk{JC85M4jFDG?A5)lbKN}8>JT6k=4_@~WWsPinSrp^YNLq*&63DOOcsNTZhW*+y_qCJUY zHjkOM&EYlMW#L*SGe_ofSbK+%(QYE78`jdAdQQ{yO4DiM)LB10^CP73+UlU*^Lv zd`P#Jtnoo*`Wrc@DW1)Ct+HutVyvYG18J|m$OcxT43xBw-b%y%hmx!q(b+MjLC($w z1JdNK(l(w3O$yOxMl@|NA5J_K>xMb<^$${i8Ol>Fti~DfM#0UD0eJWi@N*6b{bbov zEa*cc#ciYIJ;h;-)ZM%+iksxhsF5|sJ;?Nf2Nq&zE~G)AzvPQRd|zT<9k%Hox{Hee{X?k@871IOa`++d&GdS$`(pau3M+ULF)`>%D2i z(rFTVm~c!7@5n5`q#==Vpr zr3odBJ>?tB>kp~I6BE~TQ|e(;yag8tES<{J2Hcy@G1Z^juwU|3!t}hQRhq;0yL9=^ z?R^c6;H`%uMt;PLWj(KZqsjaP7DH$(#vl*^ha=cx&ae7EQ zGoN{(-F_HSD$>vH1$kz0hul&saN7puLtCF?T^q z-l$LMcb?j!G42r7n%~V`C1Npe>#BXR$&*n>I0M0(GCC$$pmZXls_L3YBaeMg7Gs)V z8ujx{dY-$8Dv&=NLq-UX_Rg56H%b2wrV1u3fA78Mvg_6RQ`9dHdq2kHRR$`rzTZtC z{%SP2W7W6mym@9Qkdi-)g+#W!R7KnMZO*|gsyzzt^j>lg9@#BiE-dM?Vu8|E8$>UK zH&OW)EI2BLuY=X^Euc@sV&Nu77hutBR%+tOrS1HCZcdGTP3 zkUqw=6jrLMg}KG&=7x3c6&SxgE%848*m_vO$q53fHa1$aglK&`nCNYt^AJ#|`F(zR zw%K-hHPc@d*I|$}c$i&l@1cLJf2BLQ;4|4YE#@%UejD_%fOKi46E(3Ig(;GHhk8NV zF}2(CF7=}4Ih%a1h|iVrlUEXRc6%-un3y2pN}?FnEPv(z^HbzP?b+wPm^nF-Ib8!| zCAWj%7|JlKXVa%XQ+r>Ul4qkO7d_6?>UzuMFhP{$w+PP8)3J1H-n1)bdYB9kRJu6W zIOS)DFxK5aS~Z7koMC2%U0#3<&P1Qx2FVYw{Cb9XhSBfcj)Ir&Pn}Y9%rxT~WVE4A zt$nXf_NVkal)NUY8jP}2I)u0P9^gtRV)|>8l&HSkI=B6i>a5{Pj?#hzeo9$?7CF4d zy?Ac1i+QoR;E_7?gJ5xNpF{K9^a&G4c>3{cA^%$=rHi6Rd#v)~dcs*nWw2e*-Y(Hx zH8fXpMP~G2m33*%_H@f$(cwJO9VNaE`da;tBf4=-4jeNWd0sr-3%x?un|xXH0wWOP zFnd9>Z5wfc$(f&R(?-w?&IsLmpvXNUd1)?99Xd}R^t!HChO3aKrCl@3?-a|RafUog zzG;qNLX6VA-5`^yhf3qk+9Tu5>z?zHj82Bel%mD zr#=I{#V50OAdpZ!0c}7M5z~$z8U*4vPcc52QrI$bHu!yO&{(&2Q>WE}c4e?*+t1X| zhk9b|?95K~>g3&kO6~sgT33cMaj;;_a8Xu+cT8i4RYhg++iP z^<;0F^~pT@<+@W*qi;iXOp9pI=?ALX@9|$RjqGhF?B&Wiv^NIIPMQQ;cW7-h?W#y* zFhE|A(gP1eo@)@xra;&mQi+85cra#($6@u9iCy z-xQDqF;oh#|L}MB;0^Mq7V1yVe>`#1q;#l;{vMP;B%nTbv~rH*uSq3wcdHzBk6kIR z#1i&N{jNw+{r!9n1ADzs^A>?FC*rd+RltLfYC8#3V44?Sj;wj`KqpO=4coPvqfu`}@`(hd<)im5 z-M6VgU-uWp>jz8iw8aYB*q+22HK=m$1C)l>c1Lue!s$R4S zXPt_AO^PAcj^}!wBx_%}S|lHPYP9HyoE})&XSEr$avaXO+pvnV5?}qKQ)|oQ=^9yG z5!lvfX*uw8Ekh#X_#HRM)*JaXOqAls?-ll@oz7%0sby{Xp@{Kb@^=U(m5y%K`|ylS zocp=@$-KbfKjfb10=F#hDf=?Cd5l?=I%)-#AUoOmb?}z$R_cnIGY1Qiq`YSpOnKRl zeru)9Aoop#ONJF!&#H4s!^ljAqa1f+`s$lF*{xcRv*Jj9@v|wj-O{R&UQW5iMCoI3 zkB(1Tmu~cMfBd-O!T`7QC7*Yv$CSM-0o-?maX4%*Hm(aZ!k_xjS(y`6+Bl!y~VbjlCZ|(Z-`W;5rfMZQ>Ki=|w zrzBm$P2(6|IYNEQ?J_5a?1ATjPeG8MNwA8uw{55MJM~M%t(=}kp|cjY7F7{hvSSAd zx(BX_N9y#auUXTL-+EZxbz)v5I>bFMI$n)6{qa=etl;c5lzd)G3j1YG_V=aulmcc~ zD984rdP@B_aXJO|#xuDQexw|t%KAg2ZI8w^Jr1NwF&~MVopN%u>9dM*xV?B09{V^+ z!p+J~t*}mdJOMGUe^>R5ap{aCK1LM(G#)p$^eO&8umDSEK}INV45@)AIv?lE+vokD z?-8n_+Yf$)*E{6KF+=GWb6%2qyl3EsQE{Hset!%| z>eH%jF4>*Ivn~RvrfuD1%J-YhQ-hhmd&}AkL|a8^iOS$DR2vDtEn0R{$;Ib0)NSWB z;bj7RUwcLAE;7k@yw9=6%{HgY2Ro4*LNM-O$U@H<-$YeT{8_H;{d3{@)lwf+W41oJ zPW=&pE`I#4AW#DZF34LF<2I2$O<9&-^Sm45xYsX^rqiQc^u;OvW`C7Ni|^>gxlmg} zx+qWIqz4OC6P>=W*lMUa*}^5;oVG`ncTVW6=&}p>>DMyL`YDZCPr}k*q+Jxv0GaG5=CHq=2qQvW@7WNG`f-!+iuMQ^S)na&1h>}p+vc9 z?452^@1qQAt_~3na%DVcNg5iPIbEA=MQQCO86f((e4b+*RRW9$#c@3Pu$GWDZn~z^ zZztQ0YyPAXuNb*k>s*$aIv>2xcm%S+WyX{wkMqE_PKo)rN4wwT>$4T`{YY%Tdalik zLrks(eYkM3R+`{-(lt1^jPTuAkwNz&#z<0})zQ|2eYnyOyj8f+6)kHKK7&REjPN-eD|MQM|PrK-j_PY z1Ac24(UsBbUJBP?FyYAZ#{q`;QP46W+ek78k)YUY*~UTw)7 zz}~rfM&4fN`pdUGx$#6ILXnQMo3QfPmGnVlaRsFApm&h`1?P#Fe2nb6i)U>|_7+|w za1=Ny|75HR6&!7t)7Us1*4=h}$f)J}W_z+M!>l5$etP7G(^dKiRA~wwq~PtQ-=vVy zMu6EnWht=tg>&(?@Oabl)#|L)a^1G}8?%R5Q{6ssEnF>cbs-*0z%4#7^?M}&rmV`Q zQ!xSu4PgGZW|ATTv@$O|^AX{OBNV{oat*T!j=xs%4~2tPJX>R__^L@j?f zw6I8Q>ax|I*NF!!-4`c7cySLA{J5h;`>|a6swxHu^!G;LD{zv%PS-aI*Iy_^a3)WZ z>*+#WU2SYUEYavMXtWF(ErdotL!+Og(R|fMaT7h{1b4X*EiK!^58}@jsyEl21+$Xo zg2J{hh5$@{`$A20e_WQu#q8Al`IFU_+Z*szgNdSIO0S4ICjN)tDw(*-EYE%P-l06&k;bySGj*A#lfDVEm_2y%$~S-c6xStk!~${Vyj&!n66#8iev4c z);Y-5<;R$1Uyj?ZJSc`JpD;UetPCL=FXM>hUW+d3tP^==X@b|;f3g@|56}(FT_INV zfb42qwq1msf9kOI)lBBeu{-KYA*THseLnfa7^X2tp^MP0J`Mq4LysIQ4IP%m7}4Uh zE9W>G{+1W>OLuK*sGuZu6&QElwr6;(M3VM7yH=35HobD5>G?Q%Uokf{ccnmV?hGmD zyf$kCycyi*Bzt1?VT>>LA&!HSK;((Q#=a`$%2Qmg^W)|GZSUhuvnDU)lQUgNveK~` zqP`H;(_qJ;XleXSF0suIxY7v9Zfz|xZoXfe+&trlZ>%FY=I%U#Cl=<%RZi# z4@|FX+Yi!htqQb4<$tyttVsUypftUMNrn4BqhViIXY*e5eY(x8;EVldt-=ywEj#S+vp+M392d5 z&B!_5*4CADxyY{a@5?$$bs+sYRKCd;s}u}g=r5#~yW2bC+7(9K%tbk%0J>A>7u&lp z1mV5E$@m^URCft6IJd|#7WjNte3=!P6JL8JXJ()Aye#GvuSd?Sd7;$e=y>ryBFo)< zJDzj=!JPA_uv6=eBRMnKt_-Fl2Aw;x_9qMoPV@Y4uc~SagR_4H;Q;QEdy9^;FqU<; z{wO(8Eb{x$)BeNuiHfnJq3yvzeT#h$k(L^rVOGygoumaH!Mw}ksr<7u=FhwO6EUlL z_OKti+by2XQyi9_L#?NUn=6c%Xk{a#ED9PHWn9sQB2sgDy?CZEYbh$_NFvr^w@f&cW<_(DVX0STLjn}8%$EI$-$wMw? z#BQR7scEuoW-g^HQ?-6Ny31GPbA0EYg^y6T!pq_9C!3CznRDN^&YF--dfH;iN((JH z9z`01-%(wRFVDK%cs#t&g!xrk+e;rDs~oszL{8oM5q`(vJYvrI@733}ykV1cnTZ}` zA&ab~4Ry#b+k**5$E|G~RGPxVDl8m_&M8M{ty|V8aYw?51-MQnXQJo)_o{QJ#Ks4x z&HC21YSzY7J<&2$piorp{7RD}JEhoYl+Dk^_;1t`eq^V}eko0KTJs=YzH9mx_Wmc^ zEV&bB4O2t%T2@v;i<#(0n_F0yxyqn3`#Vs~=Mb;e)~ncJ`vOLnTGFIfh{31j12fj| z*Px;Zjf>%+?no($+UMz!8exi!SaI}Yw~DYcp%YI69K3Da8-G-k6lQvIrmf3JS@sd( zwsH63FMCGjFX~rS)@|RhdJ6mFU}3wevrTXRu`u(J`cg(^-Y!X7n#5wJ+#ema(&IEd zcUE_#{z!}axeB7h89kcrx;j{O)!Ih2DQq|wqOCg4Km;BAQZ?lHJ3I1EKA(Y~T(at~ z)#^I-M2ctuKSPzanW2SfxEhKM+a8B3 zFfD&7y^=D^5pbx`Hz~&f+rZqoc*U)%r`og7r^b;3uczXE+Rd&e-7;!XQ@_0;dVlma>eWP97UM6K<2kBx^!}l}=&{q$X50Hw z=8dX~lNQ`Vt4j>fyr)T&WEKb%bGGXl`*@C(9A>84yJy>5t4H3wW@qi}Sh{bD9I~!e zM@2u>jFN4)i=Qd8cipboplG5qYNLKI$}#eMbdb*F-O3QrQ^LCW$OrnxX^f8fI+?_B zxHE+=7KyR7B`fixUn$aMNor|2OKdB=avOY2g(o`&F3wJ_0)w;nC${`Fi&Aq<{Qf9L zzE69je>SRuryPz#4d-pIMi1iW*gDXqQd-LWiDP# zGgRMQ`943HSzb9=o}OQCuIEom{;cU*G79ZfJsg*-tu%2ne4giFmD&W80ozgtBF;IU zvQaL$#%HY-60Mt1EX`fo7tu3CE0R&0;L^_*cjt$bmi7G_c{7VRZRpm=mBmKx;;(nL zR6am77&}Z2_REl$q{px(HIP!WKEk5mS86X!ZWw(5iMlr{w3C|TL&S46iwRLHKFhbP zx~nsok=>8#su7E&>93FZHl*wZ>^n>x-h(1vfM)(@E}N=~&nL^`ZI%TxLqiwrLiLlh9L|=UFpv zR#X`@=Jn>c>vp0fjHgAzM9pQRP~DZds{?JFxH+z5fp7O>>%o$T4+lK)Ij8mzX3ztR z3T+mW$%vEwR^AD7H}{Co%_`1zK|!N4o+?oknaI7FnE?+~r78$@OZ$ABqdngM;~H{e z?UHkwSdz`j??a5QBl7PDmq08RWud!&hY0j_lWW?zWK^he#&EfGkV-Le^ApkhpS|g( zFCM~rQ;D_O`bY1lUe3q3+BC)1N>{sNFfc6CH~hRbHY#49!$H4YA|J?>dHng_Af|o<#>b^OZbH5q>|^8lmU@@xp-t?}*398miivzk$LAp* zO_b^HD8`}BBA-v>x7TU78N6T6WndonUVT@^~EbE>vpP z&I0kVqdk!=RhFHK3Vr^7-(+eN5ZuE3gely*6=iUY_Cs4ezfI~D2L{)J|c={x5(`eRjT*QbpLVQ0g*l3%LE~`R8?ydyWAHjaQ&$Wx+R1>OG zEWFD*9A?8Ryr8G@3U^h~%!gPOMtTiX_y}B5YbiR_#b82|V`+&NCPZg;CRMpwQ`%Z( z+|abxTmFib=~7pIzF>tYgbj1&9y?oCp{`wGj{o<-b*+^ zE+5%7<)g^4P3OgoW!^5!+MiW_B)ARwkqNElNUJLB@SD=qpY1mvXxCdKnxDokk5)R# zR!6vVF=H9fZU?`sxcq@F}>qGmhq;}RQ+ii z4)u&u(`uu{{w){tjENm66wO9*{0`p5to*A=*v3oUWpQO^&+L=cIR}4Q4oqKAh2XX; z$UpvS+WmKeuhY!H-rIFZ0H@7iKMZ^AvQ@ZP+41q-$C_nn&-NrogJ*{fQ2yRY65FDT zY@z+tk}$Vo+laSAWw2LcsBcB5?up*BVs_suS18h>eh4e+^2a5e)44rnlwyudXR3f> zr|nu5aa%Kf3;eB@U7%E9-c(?nZWqO_A@{P;po%v0v|hU@FVLeZQCRlp(E;Vh@Il*s z&+?}gm}2osvUHR#l`|&Bb4h7C4nrA<+`icelV3IqZRJ6cSS-2{aUaRFr}#}pW#oG4$gvfF$X|AYoZ*Db53#1ZFx z#-@xuo=5ImybCSh5R%&UKLeUId|`|-X$6jid-1eZrNwGp7f>(eu_Pg`WPbb^5gTPt zD9Xl<%CWSno-zE^7eV!pn(jqXW?TEbFk9;Yyb0)K61>GXToR&?#Xnd%jT@>d#d4HD zJvm-o)$QR-w-l2qT-SuUTLC5)ObJI1ZgjaD(DY~RV$FV8hx-_Rb(zlYaH$SylS$Ru+f4|921$I z_$3xi9!+HYg)!Z-hrI=31_NWQ1Xe5X*?=UFD68iuF~-k!OwDK9-n!1mxMKv&U4ea2ysyu&60-sjT6PomIeGE zSV>+qMmM()xn3hPqtKA6cNQORlY5)hm< z75sDbj1BwZN9c=(aC^>{c#*LW!)PQ?LJVq#+f&vcNx`xmv8h7Km~^7*JI}Ld<;dZ zPSg1;VD7}b4L*CncRz9Yn(&@?pHkJR(Pg?>#7px?Yitb4l(?sF?K{;4uLecSuvzCW zL}m*2EihKtUW_%Zvf9oS8CYw?#0RQ0Rt3}VdVGYP<&xgciO)rv3tV1}BO0FEy~O^$ z-rxFinx|H-fNqU4>qmNz=E*yF_Cb8+Re9m}2L6fCESwwzZlZR9_r})K!fQ5*0+XcC zo!$O(acs|(cfl>N7gpRFuwumII!sc$Eurkkd96Pj$-qF?UDfBYw7d8-iJgb4%djPJ z#No7uh{!ju;!JW>Hu0ly#MULl2x^6d3U)r+0gfAUelAS)p^nYPsma#5OV}P_8ya=; z_`X?1f53Ilax=!mzh_CH#frzJP1zx0a0+CN0Kh8(AsX(bqn;Z4F~7k2qSe#!rl-sn3^ zS#nV5*bLWfcKdE~Lbw%ie`)j7w!=$B|CF!fF1&gQZyamfPmvGo^$&Pjvy9=Bc6 zHBsWD!C3>SK`|j_iqqwGS(jC~t)%b%@tT6C84IN^L4E*p!KanF(#o??r`rY$=T#3k zWHlA#@aCVa*Eqkn;}{2#9M@|GXCt_4h>%`54Xssi8CN-9_x(1Rq^+@l+dm*>{#g>n zmVW@suM)s*F?*JfWfxGf>AUpe)OVrZqd-HUKYOJ+rLjSV5~WKS9qgebFe%$&g)AA6 z{zBSm&h6?{>oyX|P;E7h8)1^<(AJIPVLMfz`DLpY zL1sHkIS*mox4|CA@=Pw->{sih_%kW3n4fdN06`W|izdc=>_S~yZv5{f$ zor_n-(b#~6Xmx9SeOAx;l_KTtMv1st^|a#Fb3!UNVXWmXJ3Sd|NhO4|UjAc(3XZrJ zmOg@$WcMc&!@nv{JBifoRftD+367X^pN!RwnUuRsA39hb(pl4aRQ?LV6LaN{+G9V4 zv{#i>a2o?3`Vp|GQB7N?ywCd-8!-MnAcA$K%%MejFQK9-dZZ0TuXxo+K)O#+MQPXBjn?623WfXVoCpc(CfV*~8I2 zJQFax3H=ieojDIXU8MSO>=wwGPHk%{o#T1xqAeHG@yL&dZ46PJS3Q!6Sc!d}1L$hG zER)*(b$e~KHb@n7!nZD?Hm<{S!5;XD<%;TwS#c}&hhQ_@W*U_BAvM<8+S;lk57@r+^1#{*5|w`O+eK|jDYvV-rXWWvcdYj9 zU~|}7$>q#kr&kHp@*WL=j%QYB#w(U=9~)62nIn>Kjt5!J^{5!<`f>s?2I#Wjb|Z4# zp=cmb;U4OZj!wficB#!wQ|_~>5eQ%*fMvJ zcdPFVZ+7am$t7lDA)K)u4E9e(T~=m-ws;^+3YW>VS-9sXIMT?87Vopw=Z*z` zbdTs095hRdJPHwy`<+`9vlI$0st@{AC0j$?X{u`YrBo9GxddJoSxh9i5^Eu^PF&n- z!#4j|Ugp+4u-@gIZxWN?+*IC7ZBy-Jfqo2A8R{r@iAh%JmeZq3I~V;Mdak;jHs5-6 z%YSrN=?G`kDoW?)pIqvYHi|*VxpXwasIx+~iJf{yLHm^*in7*+O_989VZG~%ZR4xj zm4eM&?zGM~wrzv8)L~TxUbos55C&{9^k;@-6r>a-*inw5bS1*fm$TZ9ieo~nU*1Nz zC?=i@j~88ec#mdJ#ra;QhvSGtUJYN~JL1-A>^RbrP!u3o0M&;5{9di1QvGyd$3VG9L^8&+WK+NW{X zo(KtyAKIZ>67 zXJPE4SxKI=yJA*xfgI|OHIno>yb&Ho52MK|?UwoGt!LFNNn8Zj!<8BLCVgZI*dm{7v1tRBrh+6}z@8JoJ~-U@h;c!K<@1KZ#Fxc( zE_;30W^4O*NTePv6Dq6<4mg?>x)~-?z2%D$`l773*%7Ur$eOr%GFF&(%YLW1Y-v+q zUg`832i#+%(HMUrN72h+~`k~^sK<)V3mg826qEzz{ zAqb+cz(PF(r@hsASjS$j&KB`rBx*HwIz_ay)xB1L3RcAxDnkdkKl)MNj8;^d+FT&O zQON2!pP7~&Neu&QCc6tozLGUZBudGVKUGZ`%rTRs{Y^Esel)3RBPtyq5$pZEf9XYq ziljxFp@-A(ZM85N&X(g`xWUK+RLV@|VEaJeu+_=fW$8P4)S~HHBpxGqcNIcv!LhkU zF7@QS8dfQ6MvXq2l&&q8B!u8rtD=1c%n6@0%1cNyrXnstLVpA$hpJT+^44OMW8=ie za%j^x^QTNlbg2_h^mEKLRSe!@SHBw_zuNcHmLB3ENZnFkAUvaR;eYX*x})_M79+lB zuwmuU7I;lY>s1O)?P=-{gUVvO+>nsrZuui|s;(I+KFD*4@!O0Qpq?wd`u@&YRgVw# znI($)u(gdpN|&O@H!|+o#Vw^r+)P9L>t~$A(e0AXV`*m=jX9G(b92MJB~2O8X8jW< zL-gRa_ZnnpoTdI4O4>(c)ow-;z4UUCtNaEC-vw{W0s(>B@x1DO7N4p-E2`!Nh;gno z`y2T1z@-5HFGSL?smMhrJx8}~HyH~x*ZQ^Px5^KVm!5XkI zi(2{p!sg83IcudK2})aNExSU2BGv7sQ#?W-UOPQs(0hH2KI_ONO#A+lg&&7hTPc;R zd!y%CE^K1#^h7>sz}eW^{j_1&k+F@dWX7b@3u!JRkj--GxG9iB%&BC2yn7M@B{uSl zcDq{=%aEJ-!Hb*}y1EjIGm_Ij@gCi5fU6+9XU8e!BWait*seXWxJVcMSVDx@p3<+mkpOYX z`At2LomDl{xuDy(-{LnC=guNjWR|%fF@0P#JlBgqg>m+vrq%4cmHmGI^7#GeB}oUD z@~IhNG19Z2@L!u@7snrKlUq2lvft{^q z*OxI)q4=ArcBY1v0-C+{%Z71hvFOItw_OskKvyeIji~NoR@U6wO4#En^39}op{kkj zNQDY2vCm(*i%CRVc+XW2ux_qVQPf&JuEdN_@L5l(!$t zvu~_p7ReQ`%N3=Ax0b)XR_?1(iZkPFb@qdr*o3!Vx_v50@jJFf$dirlm&qmBXw^Hs^-~6y!71oP^H18DZ^KEiu~2fH zL8v3H&a?H=5Ups0C0~g(D$~%i%BHD&&^S6-E^=V2(N;wP>HVY3>GRwxe-En;idE)p z6I6Mdz2kUh>I)}j-Z2rfLG!=x851b#`;%a zu9sCdMwv`!Jh%`ZeVg;l#K*rV2&^utx_*yso&}!9{?nz!+FWAoA{MOYGgsAXXI9j$ zBq)JN>Yk+NThT%kKTzD?OR1N_LP(j6ZV|f({`f7zqQqAXxm2V(-!S!oh0aWjvnac1 zr^C?=sh7wy)*rK0P400X^ZjyStdefVrZvp2Eeme?^D1NR_v?a%tqT<;(U8|rxQMwo z=eHSNsXfeu4o#k&?lRP$z^_|$K4gyTIP>cr<=ZQs#S%?!P=}X-t=2XoM4%Gq1Es#y zeIAsC=jjYDHpi7@nt{C5$72c1!M-#l`1SwNaFed?N{NCflrhu;7&G$K`PRgpeNcPV zd5YY5LS0i-zPuxjn;S}v8oY^J(Ld5BYPBAl*q!%!op%W-ab_%<9%oB3%!}sdv(=zQ z+uwY9_Lxk)!i+u3Jn9!4D)v#Px8=iSNkyr1q|!Vhh9ZSc;pEl!^rp0%7w^;QM)$^3 z#N2z-7Ln|iOXE>(v4*C#)^NIaO(#p<_K)>s3O@?S_b*Z=r>y3xi!mi`9T;YGwNE+- zmMRiZ2l$$jnIFQ{WR&L5J--=@In~zITGuYvZ>`n(TU5tT$Q}mtFSO zN@vN^ii@007)egg?4UCwQRc|kxmFiLE1KL7D^D%+a&QwsEa3da zhhBe^L+9fUn&|=Hmqk2pr#i4Q#15sKzXovTiD>-&mDSC~&+RXEf4%AY;s^MfO%M_B z@J~`SS{#jLy}9qJQ@1_fkFuLqXnS{VT`wBkhla|76 zUtQ%Psd_ffy<3&onj#-NS>z;4=GOVR*IKy=!b5w?z-wk7RqV-7 z5no=at37G5+Vdgh`9aKL#F5b?J4L`+qez+bWAfN|%jjAm1}PN+QVNJv?Zl?5*uyhJ z*0g?E$(&wBZ;>~++{}Xt#qHuM{nh@81o7sH{rw-#J&LU%@5%h8>eJea?fV}ta)%i4 zr&FcAY#$A?$bC&J@;s;W;LUG&?grlX6Q0i{nxBNXJDlaN+7)e8n~_A@uMe#{^X0#V z)Q#k~vpRJOO!OT+oHu@!nzo}}Z*9{FOVdL+``yFSBd!901mxu~zdyO~kI9JEFi~jX zN}dpJlOI+V%V-E0t&7iCbtxU0uz512HY6zM*&gLXSht}0LGu9I+^BXr!JYC_5K(Nw zDK(QL0w%raa~Pv<94k$J|2jIwCcC*tYQ&3o%ZKsOkkWUYZzJ7t7Ji&;KR>cM#!|C? z5^fqhvFlnIx4*2yc}YGx>M@Co{L*@daC_^Bn183We*VEBKhuUW`Obm&TRlemOG}~u z6#@?Z@#`4JYZSiD{?7iZ>i5kVyhG~FN9?s*if%3aUb!hxJ&p2b^4m_)L$^8`aFY%)vjU(=ShGEuF*d)CVm&m6-ql0000000000zLm1E4Z;Bc?j+v7=2fb- zrp}m7I0PQD;^$6Mn6Hn<&S?DKub!Ke85!1k@}mbfxi|7@Y=7)^Ff=Ubvx)Mm8Zq^p znKZK2!`p-9rb(>Eax5N~z4qe5L>Ai7ciSIc_iLMLUbH^%Panm3B|r3?PE&3chn?r> zUdjFF_9hP3^Z7$+j*dNP&aw4xCb6uyU^zJ2X{@P14qjcIq^gWlcjJKN!J6X}&7tYz zWmp&CG7^SC8y1_{=CN;%W$9pqwpPq^s|knW)#UoDG|e;TKE!Zd@iR8IS$>iV;mH{> zHtVq_hE-^L7_NKLmT(q{Xo3cD_sRi@%;@PVxp1RTS2fDW9Q)4yVbG_2-R-RXv}mvI z*vsdg(Nu>ZJ-Gz;arV$O3vmEcMW4xJ?si6~24l1-hadZ4i@k$wZMu~e=iO#_rI_YO ziK0o*1)$bu(=rVa6vwHmU3Z$e#s|8xeZH!}?6r5Giy}T)w1*$L#hM*IS6iFn zYD#{T$eAPAc*XcOU7<%~q{{&2#k1}DJ}u@JUd-`Ze6kYrsy7>`*I!RRhMM^DGv|M! z?f*S$`aPCGUdGz$Z9nKgZ>LVtH}4Yy`*Sl}G(dQ#26k62pN#`91{|;<`(nsRUBlb% zTWHaw^u90n9-LgM$KTtCvWBv)mrT+t=~R#L)Xuh05RX`*VTKTk-ey_~=4$ zjsb`M-X|PWEcpQd00000005r00^R}u09fh&x}0}0PfrK389i$H-6n;NmwGokX{>Ei z`)%UpOxUGXTQ>S))OemA-_qz9^O+vDHQdkH!_D;Q%k*q%bsCvd4|p}}YP)5g+?u+I z=ydkSB@Zpl`;WAOaI`EXjBFJt&i=P9M#t<*>V1NKljgaqAuy zb(xq4oHHiMo!cyliR&G$#PQOL6YmUXvl*K{bd0uncau6lE)EwLZRu8M;Y$W$?aj$! zUM=RZ=HTMUO~qSg)Wxx3o~)-;w<}0J$BA!_eQx9EB%EH@Os`04jZd@U!JvY;Fptl@ z7?#H-lzKHT)L4Tu2*&K&w&dt=U^cqi9XUhE_}!~(vaBp^6c4Nqd9I*+VMOBkxYKFp z?#b~|uuQN%edt{-w{8N-eNP@UQo{@40C4oVyxlg{Vyb+uv7vuFf`{-}M?Eh+)Em`R zp1a`UMu&3;VY4&e=svtJd2gPmC6bl5DV&DxQ{6s#@f@y#yDTAg9pURzrK3Nkr(f#T zL4H1){p~yWf45zo{dzvcOY!cU(vZGuwTm&X+VjMzX~q!SZFYOAAF?wPUd@_;`0V(k zx4S3X^2|M$=e)7`nq@ed8uJgho49(yYAp!8O`CChkAUBXn!9_jnTnONVI3uZHXDw? z7Nq6v_678LH`^Z;Fv@NS?8&?QdNn@rqt(LXqW5sbUS&#ioLZc7;6L-hYF!`h1}~$e z?<4{M00000006!P<1i1<0N^`O?-T6w4|X$?Y+Y`q{Sb4}q;?(Y7)ZJm?l{IAyS(kt zIvvRse{<-A3pG4HG~Jg*^JFdI`7GTZKMeY6Dfe^g(ZEhG>p494qCV`{2%$3!&juPp zi5?7B)wD_2{a_9GA>E(kf#Lq_Jk?Le{OA^++#+qn)r@8-7&F^iQ$F6`ObSUK%MOXOF$TktC`e^-@yuRG|J)qYdw*uSxV zpXO{jD<>BEJ^=aF)nVz5@bzxcBe%y?PYpbEU&mu9x^3eO#zM&s(2%9 zw|#IWu{nE`-WnSN`OP5xCG00FY)!75yefDm`*+O6LZeYfEe++BYPWrp=BQzF z!U@;b7aL34NOxHp=8MTE)9F$_UH$6TU31iSdKH|9LBGE>EUPb!(NH+(T1WHhqeR4N z^bhHVJ7K8t%(!T>^k3soCn&8PT7+C+UpV+lGuakB)w&oNIisvTW8Z&90a)rk`JTC_ zdi)v%tQd z4OXrWFCG_8Wd2>yx+1>E1b*>lcu<9W>EQbA$LUwYc@~cUm*-z=#($8`H#ncX#X0{y z59NATs2jbFjQ~~@BchFFbrhfg z-`Bq2qvVbpI<}tga=zNj*_rmrIPaeBANIi0`5n(^n$@4!tGMp>wCS?San|X%w2t5P zKa=0}diu3^@OgP&{oJiP+i@{H+It@99qHh)zHD=z`hD4cdXBp>c)Yfcc6}pDyGL8w zbRX(#e|nncG@ky)X3ooMdYId$JvQ5{SX)`-?XIT9N%i5>{5urFZ>}#U?zA><%*092 z`&j*ExD}2khSjKPsO9U!Mw7!^b3JFs;?l>izT8S3zIpcqhEB&{h%yXsrLnafEKWjt zebVAay#KoZ-*_zVPdyxl}v}4eAwB_w-SBlbdB|`v9qJGKdE4xwEE-V*v6Li zCh@LpSF{^H9a2X(=k96=Awt&%BO{XMyRDyxUz|McBzOChmQ{DH!0|hTc+>ZEjPBQ> zo{q%p>4dMdyOFzFD1-wT^`r8TDXtCrt4iyhzP-2iX)m(Fyfru&`LRxqDk*7~uP>IQ z8R;7K6@kJW1AaM8Oq0-U|{-DTnZ1>Y8iF8i1a zO;qUt_fAMY#Jz*p{qD%oeS5L}iV4`y;YjON&hDr#+8x}w-=Ag@_n+IC&AHpAe=wiV z`t8G?_WLKsc`-pgw9=zkt!EQ%9kUNts*cCLRxpyjWdru+Vp7~e{aIyf4Rtz?v77U+ zu34DI!<*y0#^HTlEnDjS^vr?RdJfWd{Ex%fsf&sL4w(S}0PLuAdeHRIV3PWaPp2Lq z(@+ajEGcR7Ffs1y;R(hj^VIGzysD2)9N!wYsQc2(~ zDgKtnc;TB%Gxy&4`o1M^JAS!R0002Yq)G(S3Kda+`RCsIkPbPH?qZR$l--^Zn(*D@ zg_*v)YdeqGCg{L1-kn?XBH!P&MYk{+A9FKw6-r`N-~6?hYU;0WEUU&x~F0Fxrc`?_9O4oTD42FaKQeJ{(;+B=Zg^&haG;G>`fvV2=9cZ|u@~GydI)!Ml4e(r?$#J);mvR~wtD5NdFD~3 z)|$6`?WLUzgO0-M9S2VwIQ3V1Ub>oL*u8LU&%ra7r#*>umw05T$9NiJ#qP! zU%%j2cf;#1!vA}ZpFDVA;Kayp;nbgp_a8fP;L20XU%=QIv;ePDmmD~8=wnYjGRH8h z;QZ*@r%s-}eAT`W9$}c(7r^_kFl4Uq|L(?-k^RAm|72A5IXJ?6?d_i@*Qd`*FD^a7 z-o{=BpOY9&j=~>&hrMp;31$!b+|rA%e;Ykh|Gob92t9Iyc>}}K1LT{C9-HoefI;XX z{CV;&ehdB_9J{UmjDEm05PTXl63B`CU4QPI^cBN2FTeaSlVVbJhE4TGU<}uxL3oSI zg*+W+()4*f>{np#Uzt4G-g}V^_x>5**LxEGf|2n}y%(8pFdoYHevM+ir_oEj@8Au+ z=MiE|G~9cZd72qQr+VMVJA1DpuJ;SP68@KZFX5xT=kcN5E7<5gjTd@9z>VI^*z5g} z`86}c^cWMLVMg#Jy=U>xr5Eu!CdIB`y74sVf7xz zRruU>y$5jtu9s&-=4GbH{A=$`=y9<6uQ3Y#4UEr&IYfKE#&L$jdhZ!@A0wlud*4Be zy*shrdjUP)`z8KT?>RW;8MvTGyk`d7jAlJ)#&-E>f z*gpLqTh`Y$cttc9V>o66o)v0kn7K9;NyY07tQLkzrNXHg+3)@6>9tQUJa+h;uHilS zL&9syXNcvzW~KC9@&ULc#|xq)D{4T~gNA9@PRRAb5kDG>Cz7djCY#F_iUXy=a%HGm zt2dg%t#+q7GCDRsv0`#+dS-SGR{rXRHEY)`uHUe6)8;K(w{73CbJy-Y=j}az-~I~@ zoV(Kh$LEUS>2wrl7-#u0!JK7YLO0?H{tSMOO|gsYpRqq=f6KYt0Jq4!k9(G1 zc4bkySGCk*>cfFb;8@_NT2F2twfZ;t;qaXfKHQb}HzJe#~T`OOrQ zBAQHt`UdemU?n2Mbcf9>Yo^WFM;=KdIgNL{`X+qOtB1+w^1WX%pTfUoG$zC_wre^< zrqDKug-PUEWWUvEzTYgg3MS692OQWbwD6Z6T6)%EBn z7^U&AU`-5=^LehQqe2lLa6-=wxsDsh>CVU$QSnbV zPs>I$>8p|`-1)#RuQ9fwiau|x(}#xwddr;O8@s4}a7(^66WBpSxybvHV+O-fTd>=C zY)ff4GanFTPT}_cjVL-38+JDb%K9YvFj#;L-svIy5@Rxh%nD{F1OD39m$?K?1;gL+6h^lXU8@TcGtx@+pak1^?HC4izywf9v*=x9!*D* z39Ojgr&gaAP%=ePu@aofg`3)|KRf&>q?qji&RTl;W5>;Qk;NO+WsCw^NRu@jz*t25 z&5mgBvL>bm(<@tEs>t%An|9^1Vdd3dnH4*W21QMgc+4V6M3<{(XkjkZUXRd*iS~)2 zB!m&-aKP}MzwDpUgu`Xq&eE6u=_;Gew)^(>V(*i96RW}cUdKQzX7^1E#MC9`LhTET zh_3k>l?EIw7N$V19QhCk8zc>K4#LtR`$YOkbOaUz*#@H%vtYfymEWRpR%J2SG2CKQ z`MIo!rskPqsco=!qB&jJbFfgAf?v=jqzW>J*ia7cV(9=nm(C%~*5yK=2{UP~BiO)J}^I=jFP|P#{}rZ~fris*PiIGO6d* zMABR)+bmauSv8`gMA}by5kaW<+*RmA#gI8x3J7LG15fFphnaf;cj6!u9mSF3hR94o z5H(cAD^P0^wTX$`4XCz^Z1fpk7F&7z2_p-JtSSj7La@vqbPNv%6fvjyd0b>r@7KK{ z=I87Xlb|ve1+dt@oNEMLEec>$)Cix6>S9x_tD$_rtPQJqPa9VzWRq1nDbTE$_*>1W zdBf7Z*G31{c*C9c59cDbZo@f7KUNQ0UL$NJI<*g=8}AD@JqXND@1M{b z^bi|lI&fZCf|CF_^mIvL8?c-Rw)VdU#9M4(lV5_18BU(TcM4S;RKFd`fpg1~?Syl*3k!DTuWR^V&aDtG1 z1{*vtL>sP>Xt_Dtwgj2V;&~>BqYz_eVay=xz9;K+n*>S)(E)3&qIQP>FLf_pK`e1x zh}|;d7f>!by9FFtJBLrewQ(*wgf3gyME4fgkq;ISVmI!I0>=Bh)^eDB6(TRNDYJK) zd6aoGU^~;L7wIeb(OIR@aFki4S$A6Ria1Uqd|%jc`g;2j^BANHyU2I!z5_#KRH=8; zdDAW0B=!9W*^=uF^?u8I1mYfu6gtE$0Nj5B;JMJ+an7-$-uHV?pi%rwz*2}CVb;_u z5)33pjYc~&YqN5#>B-r(^9{M)bn*M|{OXS{jCfWpa`4CByCvdUb(jr+Z_W#I?r*z>x03d zYDwwE>96jt@7gx0hljeGZ$xu{5D13?RQE4Hmhu?>R|dixyASu>4geU88m=pZjB^2w z*#i8cenDcfBq+8sIMC%03x;+sy5X>0)(sxN7qbB=;HqvowLys*f?G&yOP@K~4|0y7 zwRSP8%Zlj$;-cO!Ap0`$_n297eRApk#mNBR;SM(;VClQ}Dkf1&Hq*yjqME*X$ZPUp zumbVsi_e>!RRgbgR@OtV4~T;z)#T+t_Mo5UOHnnS(BixIw#Bu!F&D zaNV&>ha*-fDOh^Zj>ZSBnaqyWBNf3awBMZ$sV0Yt$?+jxz&y_(JnlHLpaO7>VooX< zNl0=?2t zI3Q?t-OY`~+{`Tp#yqT9vg%<9zYCctlG8AXyalhs3~})^z9Ms2 zA+$Pe5-b%UmR!|A#Z4qcODuhkBjCUI#&o##`CU=;WFGg?7p1Js$;zYe7v3DO@0u zNo}lkqb{6-#UfiR=pN5OluqI;B%s)?gLT7-F6S>#_r8Rlg7t1PfTuQ%qY232D&zs8 z4X_7GsY5~*x<@rc-=|o+2MbCzGhVXXv=FY;yY0*e;)X4i{I{H%Xz+ZeTHkoZ`njN) zOsxx~a-0KB0fj52m6^1_2F62Gof5Z8D zGRawxUBEi}0fVuDpX}pOx7lACFg6-lk-@zN(2xVs#UK0N{haIucO+C9<$=E;=?3xIV99V%^6*@n#C#B|5PPBE)!&j(o8%-U#prM0+jjpu z3HSy%SCxOFF%xnEVo|geRY#5hk$=!O)SOlX)Hh_I7+GznroHU?D1cFA=xAr;V6mv^ zu~1zSI{8Q=UKd=~8dd_5xU$h)uL(h3^Q-|6-Dk%l-at4m2msI==6Ity2hmzHr~rQR z7;AQS`q-lHRk!ULA1xM>EIU-M&F-EkrzL644LeKW09slh%VF1R4z*dfoVV+`XQ{dX zKJJ;`L+GFJ_rZo50C|0xPGd zEFL0k0oW`+y-3VtIbQ|4p!P9|ngmxM_5_f`11m?H`%9{k8XmnX9I_jcca3kZB!j+Y ztx-&Y$GL6ZhWSt{DWM0OgPAd#=iEqah1_U_l&N?r8}SDRM+1=mAhT(Vw1QH(1v>i? zQ^Vuv)1b2ySaOFbiiUUKfHI&P+s%_zFNhq4y21JT@7_Sz2!G9e_s(vVtgE0@t8RrN4Nxg)Z3% za%6)tbioj`VY|cdl<#zhrzp8X;^?87Yp(8alIkbz62famHO65`LAh+_!@^b415uu} z0s$?8vCi=ql&i2SFt1P`0+F2L_gS#&d$1kubdF@8#8H^a}Zpdwe&T37|$yJ zm>eGsg&mMG0Z>kI?g-dnSf-yNew_#UY#KHEfpX-|)V!FL2SbaP9ZECQdG-tU2*!NE!~KuWEv~7n^P>896Z$; zvW<(TqXkzdHjBOuS3}BTDG>;ON_bTOjd00v-^1Q0l&?-yUWvXQ_i zFHoBeMOJt7$-P2WBDplL`ojw$j>C8%88$kjvNv3pSEtdb+NIO{(yRX*w%tf1^7VrI zcyPgCMK73gDu~?~3@h9N(nR#u`~14)MZUZZh6g_FXT2}u_0<2jnKdv%9TO6*ZvjNf z{4y#OA<~AI@PAa_9>xwGTx z>5cEY@RTS5ejr{zJi@A!wq^N>$valf+ksC8j~&6>uEi6js@#=aPF7ibIJfyAa1*`{ zLXo^+RppLekKkF2qcsDs0>Kd2V5CJXY@-mW++FuEDpsH$`8N6 zEhQ2iZ#Ww8)O5PKHs`ONTbtO5QD)?D`NFFwtzsU9#B>YSG+*PJYv$g%r#qJ%RFG*o zIW15f*2Rz)iveKDiO8xO*B<-J^9n^SAth4CYz;zUN^Ivpd+)<%pbq5__Ml5hyS`>X z5APS^Lffv}yq(KxQPqkj~=YowU#%5tH! zW5<;ni*~t$!(tS>CX!gWwo$ZYR)A?1CdcoYFX?`sk1f4~-YFNP!NJ7TzGD}kcVK)R zXgC^oM%)aFppF$(l}MP%`4y-pRq*4?DzGO4hJ@J=-4MY8Vod};NID5QLDL(@gnuq0 zKqY{t<;U^_!OS`=Bn*fD{2P$34f>zI3y(jUrF>E5=@p<=#Br4^=k4wK`9ic^I9}K? z6b;G(2Y;Gs1Lw!F5I5&r_-_YXcCeMkq5P%^j$fu60CB1lrLcv7tN=EI{Bg1o*PZxK zW$JB61?T{qSps|?!#|~5$nWOjb(WLRLPoUvls^a_md&w;p7hf|RzLhfmOcOU<#gDW z964V?wguTr5D4vP6o0oEBg5e$xea?2m5xkRmVVxMrx@P~WC;)=sP{1Nx!18e151_A zY9JNL)6*cGSS`qtQ2Wcl)D+MK<1FM^|0QD<`nJ-YcZ--snJzuFWu7cw1lnjumYgmivXP-$9LjigKuR384Zs(P2fyv$kfNkf>ESg zJ+P1Gl1qH6$P@HMfBFg_4B@39)uRVqz6Z-V+bZEN9Qel4ciYiI-nU+gq^~_fE$Yaz z6DT`H4o?2qN=M#w#xHR|fRS<3dtYWg$|9&4F*dd-JY$IR6X>Iv46S8kvs8%>E`5FJ zCQ>2t(I22mqI>%N-t)b$p-d(L9EJ=LH*yY|c zcpm=;0~xLjss|ImbU{*}aA{QpNak}{d4GWlPmEYoF)unbNy{C^`j!5QO&FqM4`)G( zBLCjAPCJX8YtWUmp&8dQ3OQQAP|Aa$`o4>gkz5yTLKD#eF6$q;_zkBlJkT~zQCaFx znGWOsWNI)Tm(eaO8p>y%x?$-{Rx#&V5GW{`!6#Z3-q01A1`B#&Rxw$LWu5gF zn!YJouq}{P??=7I*jfBd!t)nlErWZe;ar!-M*WNq4%4Uyo|?Z)@;qzVX|q7;(1*@a zVycSzbtM9NRTLi|V|kgd;bJxv^&KeY2!fvu3r3^{Foamh-Rnk7;DMDDprYZd8dE}z zhCI2N&6RyviI|lfNb(}!7!k6vK{PrpRfi*~zxjdUqy*K~R-`Os=wa0`r|&)$Y3%;M zFeiJ#q*Fq=D2j?|`?bi%rJvmqZrGv7J;>Luy=x_>$0XIsIAtdpbR}-=y(@*Mz8HxZ z5U+s!aJ{eMk3i150X$HZ1y%#*54b~8S=gcaOL7niv^#V~h$N#SUUb>OYb?!i1c!Jp zShE4T8cEp(LKzN8WwRU)grlmK^3U5?&mvW#Xe_BfUT|V=G}dr=fnziE&HFPzGb4zA zNWq2_4h5&p%=SQBAV)P(s$S3vJ?@b_8FM3@PfJ`A2l$_ZfW!4}A* zxMGLkXhQVdzN-7HxgRie&<#e$Qa0`rq*}a-8ihUNm_)0af@W>vryLj z{b+#%J6V_?O;dOlb>4n)=E3HWq$D_oZ zB|pm!_@$56x18Oxx}fRNB8>kxy|wsBh?i^3R_JyjvV}q#U3CKC(}uwZbAV$+^yk)G zKc1lB(K$pVMhXxDr6{&2pw9+Fi`BWKQzZ!FBq$xG;^jm$8Y?I<)(I)I(N@`8)oH9r zWLKMPv2Aq^9XT8iD4LqzG!{y?^uW-to-f2BwRFC&s-~Edn=&qOY(P}TwjMaqY&5qO zy;3r2ni3RVI7wg)#mj`(KK0C+WM~T@B@21sQ)YQIG&y(81v4_sZSsa=0e7MujMU%x z?q)#N`2eedgQ5C+8s87~q9JAu^hfHkpgE#Ex~@Qd%Z?Aqh8eQZ$TUf~2U@ei!xPeg zXp;C65_EYj$(&kq<P@uPMSQ_72o+zU9Uz6=)i)rY^0hR#@Xv4mfoHm zPDDgYY%9vD@%0-PWyAs{%yN-%Y)5CT+pQ;(vu^@_!#iI{LRyJ-9ELS!+fj5S!bZq1 zEge9j5eg`*A~c5TnK)D{ZhaTQ5~$sO3u^Zg;lg3qRjR~(Fte;vqRIcJKo5c-1Q}(} zV8+BEI_E<3pLa5aO$(WRvEH~e-`FrRVUzlN;qu8_xBoZA`Rd+*bzZgL9@u_)v|ppI zw_Cdpt*Q{8hey&u%Q7SVT0P{gq7$trNo~F{tA=a;O;tW(h~@a$iY&11Lccbj3kJDt zE=s&3%>SFczr(Ksei@h$yW^4x5D^qD@WRV_g_1CtBBfx=)!%wxgI|#n{)KOp#eN6_ zbS{r>=@J44e;+AG4_i@sOv%L);$gIEX4CSUk7Lks})KDi28mca~!WmtkfmfUOzUP zufe$BI{0nQkwYV&sE!XbCL-hOM-Em-I~Mi+!6Rcw*PXX9Gr1*V<@4j~{%OU5BOx+; zV(UNd^>7)?9z$mtlXr$$I|*a!SfFdtr9##?kq?XtS~hBkMky$aK6_&fOIq%jA=RM( zx2luPxZ!B4sfs{kN|F}8Uh;>lI}pBpY5Is{XZE0NwTNfdBTs&0&-QG=NM^+V#|M13 zeiS|ASA(Rn1ofVS4!YYQE&4|eH@`@`*T z0e66#*eAcIaJvLBKWO+0POCRWdRUIErnt~#uL^VD%mH-0J zmE)r$Iaq(lSqNq9AUHk&qlp4WKdwBOyvQFg4be_b89`GX`_iAxQm?-1Jzp(H{0CoO zlz3pW46%@R8)mb`zx~>ccYI+B)Fm6?4WIw?9!^gR+gW5d2~8FfI(OG66)K1C0v~XI zg`QOspV1;Ua1zi_a}Ie3*S$<@El+R~?fApZ$_I>gNi@F_3~V?I_|h^@Y{fSoq^%pT zyUR2dZnTO0;Gf@cz42W~Ot(Wzuf{_+UlVF&c;}|u*#|D8trus%oQ_<2#`K|mh}g%^ zdw-9&Lj0d4_JJT7oML}x8N@R~qf)2a4_<+c_qxLwbO(e7oIDzAmE~X;b87LEw;8Rn z6x_1mds?tMtbKZ8avz``J_fEpl(bDD8EW4f1le7=^yuHZQnD2~eHNYZhW((o^vErp zCKQ)@-vZuX4e$n}|AUZ`opJPg1qcj`VGz;!7F6<`}iVF+Ke+2W8ZI%=+j#-~QcGI1jy7FO;_qYu-bC}-tJB(`mHoi|)< zwW}%|kp8iOiP4#f0k^&b>=C=>X&64x~rt_w*S`3JrtW@`@4wV+=pK4inF zVc0}Ntf(dO<4_q^1d^cP`{5nd$*SkS@xEiL2P~15HAfFv&_QMiYABlzShDVx7LR`H z%z4gGvg5^IUT_}B0Ll8kzxO1X!O(jP{tC^Vc`;&_htL2+0ZrZserP z93|;xK7l@tzW}|p;FpNPs8-2DKu9$f#!8l2WV;czv&CH8aMTftN^7XVB7H0IZs_q_ zy_6Z}xU`kFUzenU+cwWTw-9ei3-ewGjEge<|F>8yb3!!q*} z%hA3N4;ZElXd1G}^=EBJ56K4q;u@f2Y_cI(^TXahpvMsD;{DoOBMrw1i@uudl-{vrc>hj2nFDtK$q0#szXlYRz=WA; z&B7Ho-hu=cYrsMQkv!D@sIg%5%L2n?M?Fp97wy8|m%ngKbs zt6|DoI0)?v*|1;eXIzjNv-#EcET}y6-odiRoIQBe&V^wE`Lin_QPu%fIpNUihMZIc znO8jxFa5+#LZW{&0{#t>tZQ$<$d;`2nked`shFaHHog6jB!qy?M7@9O{UiD-^gKh1 zVHqO&o|1@|MD`sT3{hxYUNY1ULG%Pt(PF@m_^^?66OkB;Ju`2oGNgG6YJveP*D82JE|JR}S$ez~15 zuxu9a6E_3H3Gf4v65snK`ZX4y+Y{PLV6}oBkSvLm4FF(3ko^TE z>QIh>araS&jF|El!rl8Xnrt`Gpyu57c8nvNjIi!Vp|lIt!;nx5SL^XDS0B6UG09sFA+IxWl+=$F+lE~(xgJQ}b zhwGw#CzpVd{-BhMHaW$c$quWwA^_=xUk8CwDO2USRC|z>N6wrPX(O_9>U4+WlI=lG zTo}G0V-aiwHjBzr?iJCC*nnfOY$zZj0&XCa~J7AQTQO2Y?YxWXY1m`R>ufHp;Ur0 zD})L>Fcg^8M41l&hr?yZRXKzPzZ)l%;3SGXe4byHlK#FcS0S`@_1MCU7phEzqGe$6 zwCS-(Zp%>8@>Kzi$ZC{~7czt1bIjl3&oUMRaXM6|s4F6(@An9u>)-nn;&`4NXlEd5 zfgUteZ07>~a{gZw|NQ##Xoer~=i8H8u8!t#@$X-&$K&2DJ)ij`emC?fO~d&UtOpHA z@aTJUvhrVx{^<%L&Ee3iRK@Lc#|z7)+;{K-sDMT;2%GtAqg+keoW!xzQzB0mc!|0z zQb`6%E7dNs{SkgVyJPHP7egh~D~5C0=6nw0j60-QDo_0=3#*JZ;+!nI1-p{KYnmfl zbACxkedx7$AVvqhz6bw^R`cBuMN`smOdR-f^Lx8R^b9ub-p>88)5-yVd$+C*we;J9 zFb;r!WLfPZe*blUc_Z+(E$fmO+*VBWz88EyQQk1hJ$k^mAy6ZFL5$LSoVf>hWzsK8 z06KIog(Z6F+tZr`@FLK(lWCV=OQJWPOT+$y)%{b);@5ry0-Q|rTes|JjczYROCr$K zfETay9>b4dh4f&7#eu#dX?;!SAo&9I5J6az%i%xG#mJIG9$ApYj^UZ;5c!BeMYRCbB7wza~$Q-HlaHM?^lvs#Hawr+j#hk_j^aCGVId2P` z3K4LronkFS+RIq<#{#qzdP=#q{wiANdHtHz6-Of-kbJSo@geuOFl~$jDP5q* zZNzJS2`V0cih?V~(#^O5{`1#R@AwIN6>I}4tDfKiUu=AfY~cyjx(^;525S2BJ@3`I#w zbC$%=U}FA>iB7~*l&vEpn}Zy>9vY11HtrhO`L>Wh-M*l-Yv;zO8-N~DpxXdnxTR;% zPa!S|F$<)|+8-ncwoPu=0l^2MIhV*gf#5zKonJ0?>nt@x5Hrk)O5JQh4~2V^SJAa# zs8ka~-zlw=1D+`%o?m!#YiI}r%R%JC392A!d{7Cpiij3E*$%Mb_TyQmoD$FM^=F+dSw76W&}u8#F{|}zdcctZAS^G2M5d9 zT1?UuXkCQKfFuoVyZqpxQldLw#X!OV!BbCHX=pXKyTd24WNxnndrgtl1M4K$cF)ju@uUzqhM%!yE#l`3VMj=a; zB?Vdt;1A}uwYz2EULRsPI=7d5e}g^&IV5yI_nAyOM2Zvy#QQ_9am1?JQ;Q*$S2k0U z?>wYyh7;hRe&o;y)+BSO&vYiUSz(II8`*_O(h;Gj7>;Q`N~Yt!F4cy^Ff2bFwG<$XSx(Wq-Ec?}q12<=akDcP z*1^@v(9ISioDzEYbyuv(OLoN44)CmE*~!5eLaroBsveH7-Dycj_U{^sgpHanXLs)3 z*-XG)Hv+Fov8t2SeBI^C(E(%FmBWf=rYlvwI;)zm~gijA;!o6`V0#l1p2x* zV?;D{$gF6UgiLwLTsC27*|9BfFH>a=lS1~KA;3CZPRFJQ!H@;cio!|mD6$tcUI_&z2O_|u!#z)_nydt&olA%$8&g`+ zL==G~F{;nD)>qS^I>y7Q9Do+|p`nB!!PkSCfdKSgXVLS}djb??)Tl!@RIZb&N($UC z!U4%mRv5X72=?Ial5nk4mIWD#A48S21q+qrfw1UEk4y;#*g45h8IzM&q?i^fcJx`5~}s|GSSjg?^xSoIa#3k*TH2RNb!1!xBp zAP^5i4>htPD>-&m0K!O_kaS_A7*=>y zQogdcl1GXrnOF^nXvd8x7w~_&;55K;)7$Hxif9;)qZ0 zglomQnADE?u>kzQ2GPe?&C6>PcY4rbC_-%;(KKX5l>heCs`q1IpKh8o=<(13(9DL?4m-l(t z|Kak!0Qv}#U!CB{U6BI(@9!hq0SM9`-+n=(lq29S@@lvJlt1Q1pSr3f0vmGbYE1V1BJ}035<0M z@S_8a*$6Yrj6qgD0e9C=g5IZ@8BoR?XmAzib2Y@YYv5NH*1=@ggC%TaHbJMu7SQN6 zW;?S3?ikv|>}K{b=fUq5oX_lI_A?iNu0O?mn)w9tNhrZxammHQAS^N~_%##gJ%v3T o{)dS~>1)K0Uo_$9D>C=~|K;r?OCS9K9AUn4WqF1?li%j~U(&!A!vFvP literal 0 HcmV?d00001 diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-HairlineMedium.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-HairlineMedium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4da200d1541b7eb32e821aa051638ebc3f71354d GIT binary patch literal 19920 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 QJ$Ul!(iFRA|HtWn0oNdVFaQ7m literal 0 HcmV?d00001 diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-Medium.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..38b3abf939e0b51ed2699a35c774acb258560e30 GIT binary patch literal 18892 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 literal 0 HcmV?d00001 diff --git a/Resources/Fonts/LDFComicSans/LICENSE.txt b/Resources/Fonts/LDFComicSans/LICENSE.txt new file mode 100644 index 000000000000..f979389d95ee --- /dev/null +++ b/Resources/Fonts/LDFComicSans/LICENSE.txt @@ -0,0 +1,2 @@ +license: Freeware +link: https://www.fontspace.com/ldfcomicsans-font-f16951 \ No newline at end of file diff --git a/Resources/Locale/en-US/alerts/alerts.ftl b/Resources/Locale/en-US/alerts/alerts.ftl index 7522784713d9..3babbb6c1a5a 100644 --- a/Resources/Locale/en-US/alerts/alerts.ftl +++ b/Resources/Locale/en-US/alerts/alerts.ftl @@ -4,6 +4,12 @@ alerts-low-oxygen-desc = There is [color=red]not enough oxygen[/color] in the ai alerts-low-nitrogen-name = [color=red]Low Nitrogen[/color] alerts-low-nitrogen-desc = There is [color=red]not enough nitrogen[/color] in the air you are breathing. Put on [color=green]internals[/color]. +alerts-low-plasma-name = [color=red]Low Plasma[/color] +alerts-low-plasma-desc = There is [color=red]not enough plasma[/color] in the air you are breathing. Put on [color=green]internals[/color]. + +alerts-high-oxygen-name = [color=red]High Oxygen[/color] +alerts-high-oxygen-desc = There is [color=red]too much oxygen[/color] in the air you are breathing. Put on [color=green]internals[/color]. + alerts-high-toxin-name = [color=red]High Toxin Level[/color] alerts-high-toxin-desc = There are [color=red]too many toxins[/color] in the air you are breathing. Put on [color=green]internals[/color] or get away. diff --git a/Resources/Locale/en-US/chat/managers/chat-language.ftl b/Resources/Locale/en-US/chat/managers/chat-language.ftl index 422cd4e55b55..67762441e7de 100644 --- a/Resources/Locale/en-US/chat/managers/chat-language.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-language.ftl @@ -12,6 +12,7 @@ chat-language-Elyran-name = Elyran chat-language-Canilunzt-name = Canilunzt chat-language-Moffic-name = Moffic chat-language-RobotTalk-name = Binary +chat-language-Calcic-name = Calcic chat-language-ValyrianStandard-name = Valyrian chat-language-Sign-name = Sign chat-language-Marish-name = Marish diff --git a/Resources/Locale/en-US/chat/managers/chat-manager.ftl b/Resources/Locale/en-US/chat/managers/chat-manager.ftl index 7f2242568548..d8356dfa2de1 100644 --- a/Resources/Locale/en-US/chat/managers/chat-manager.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-manager.ftl @@ -112,10 +112,12 @@ chat-speech-verb-reptilian-1 = hisses chat-speech-verb-reptilian-2 = snorts chat-speech-verb-reptilian-3 = huffs -chat-speech-verb-name-skeleton = Skeleton +chat-speech-verb-name-skeleton = Skeleton / Plasmaman chat-speech-verb-skeleton-1 = rattles -chat-speech-verb-skeleton-2 = clacks -chat-speech-verb-skeleton-3 = gnashes +chat-speech-verb-skeleton-2 = ribs +chat-speech-verb-skeleton-3 = bones +chat-speech-verb-skeleton-4 = clacks +chat-speech-verb-skeleton-5 = cracks chat-speech-verb-name-vox = Vox chat-speech-verb-vox-1 = screeches diff --git a/Resources/Locale/en-US/envirosuit/envirosuit.ftl b/Resources/Locale/en-US/envirosuit/envirosuit.ftl new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/Resources/Locale/en-US/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/flavors/flavor-profiles.ftl index 543e9be50d0c..2fb0aef07c29 100644 --- a/Resources/Locale/en-US/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/flavors/flavor-profiles.ftl @@ -177,6 +177,7 @@ flavor-complex-true-nature = like the true nature of reality flavor-complex-false-meat = not entirely unlike meat flavor-complex-paper = like mushy pulp flavor-complex-compressed-meat = like compressed meat +flavor-complex-plasma = like plasma # Drink-specific flavors. diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index c3147678aae7..33a3f9b52b67 100644 --- a/Resources/Locale/en-US/language/languages.ftl +++ b/Resources/Locale/en-US/language/languages.ftl @@ -58,6 +58,9 @@ language-Moffic-description = The language of the mothpeople borders on complete language-RobotTalk-name = RobotTalk language-RobotTalk-description = A language consisting of harsh binary chirps, whistles, hisses, and whines. Organic tongues cannot speak it without aid from special translators. +language-Calcic-name = Calcic +language-Calcic-description = The bone-rattling language of skeletons and Plasmamen. It sounds like a harmonic trousle of bones with a humerus tone, sans any off-tune ribbing. + language-Sign-name = Tau-Ceti Basic Sign Language language-Sign-description = TCB-SL for short, this sign language is prevalent among mute and deaf people. diff --git a/Resources/Locale/en-US/loadouts/generic/hands.ftl b/Resources/Locale/en-US/loadouts/generic/hands.ftl index 409691f57760..69c7a9e7be57 100644 --- a/Resources/Locale/en-US/loadouts/generic/hands.ftl +++ b/Resources/Locale/en-US/loadouts/generic/hands.ftl @@ -1,3 +1,5 @@ loadout-name-LoadoutHandsColorWhite = gloves (colorable) loadout-name-LoadoutHandsGlovesFingerlessWhite = fingerless gloves (colorable) loadout-name-LoadoutHandsGlovesEvening = evening gloves (colorable) +loadout-name-LoadoutHandsGlovesEnviroglovesColor = envirogloves (colorable) +loadout-name-LoadoutHandsGlovesEnviroglovesEvening = evening envirogloves (colorable) diff --git a/Resources/Locale/en-US/loadouts/generic/species.ftl b/Resources/Locale/en-US/loadouts/generic/species.ftl new file mode 100644 index 000000000000..943ddbf3c24b --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/species.ftl @@ -0,0 +1,5 @@ +loadout-name-LoadoutSpeciesDoubleEmergencyPlasmaTank = extra plasma internals tank +loadout-description-LoadoutSpeciesDoubleEmergencyPlasmaTank = An extra plasma tank to extend your plasma supply for about another hour. + +loadout-name-LoadoutSpeciesDrinkMilkCartonAndSyringe = milk carton and syringe +loadout-description-LoadoutSpeciesDrinkMilkCartonAndSyringe = A milk carton full of nutritious calcium to heal your bones, and a syringe to inject the milk directly. diff --git a/Resources/Locale/en-US/loadouts/generic/uniform.ftl b/Resources/Locale/en-US/loadouts/generic/uniform.ftl index b05a9269357f..1fcf270f298b 100644 --- a/Resources/Locale/en-US/loadouts/generic/uniform.ftl +++ b/Resources/Locale/en-US/loadouts/generic/uniform.ftl @@ -43,3 +43,5 @@ loadout-name-LoadoutUniformJumpsuitSailor = sailor suit (colorable) loadout-name-LoadoutUniformJumpsuitTrackpants = track pants (colorable) loadout-name-LoadoutUniformJumpsuitTurtleneckGrey = grey turtleneck (colorable) loadout-name-LoadoutUniformJumpsuitYogaGymBra = yoga gym bra (colorable) +loadout-name-LoadoutUniformEnvirosuitBlackPinkAlt = black pink envirosuit, alternative +loadout-name-LoadoutUniformEnvirosuitEnviroslacksMNKAlt = MNK enviroslacks, alternative diff --git a/Resources/Locale/en-US/metabolism/metabolizer-types.ftl b/Resources/Locale/en-US/metabolism/metabolizer-types.ftl index d0f57e2bc0b0..97d5c068c417 100644 --- a/Resources/Locale/en-US/metabolism/metabolizer-types.ftl +++ b/Resources/Locale/en-US/metabolism/metabolizer-types.ftl @@ -12,3 +12,4 @@ metabolizer-type-arachnid = Arachnid metabolizer-type-vampiric = Vampiric metabolizer-type-liquorlifeline = Liquor Lifeline metabolizer-type-shadowkin = Shadowkin +metabolizer-type-plasmaman = Plasmaman diff --git a/Resources/Locale/en-US/mood/mood.ftl b/Resources/Locale/en-US/mood/mood.ftl index aa348ce62744..213fbb744319 100644 --- a/Resources/Locale/en-US/mood/mood.ftl +++ b/Resources/Locale/en-US/mood/mood.ftl @@ -1,4 +1,4 @@ -mood-show-effects-start = [font size=12]Mood:[/font] +mood-show-effects-start = [font size=12]Mood:[/font] mood-effect-HungerOverfed = I ate so much, I feel as though I'm about to burst! mood-effect-HungerOkay = I am feeling full. @@ -78,3 +78,10 @@ mood-effect-EthanolBenefit = I feel so relaxed from drinking. mood-effect-SpaceDrugsBenefit = Woaaaah, such pretty colors maaaaan. It's like I can hear color and taste sound maaan. + +# Plasmaman +mood-effect-PlasmamanIngestPlasma = + My body is rejuvenated by the fresh plasma coursing through my body. + +mood-effect-PlasmamanIngestMilk = + I can feel the milk's calcium repairing my bones. This is dairy-lightful! diff --git a/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl b/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl new file mode 100644 index 000000000000..04d705ae49f1 --- /dev/null +++ b/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl @@ -0,0 +1,18 @@ +self-extinguisher-verb = Self-Extinguish + +self-extinguisher-examine-cooldown-ready = The self-extinguisher is ready to be used. +self-extinguisher-examine-cooldown-recharging = The self-extinguisher is recharging for [color=teal]{$cooldown}[/color] seconds. +self-extinguisher-examine-no-charges = The self-extinguisher is recharging for [color=teal]{$cooldown}[/color] seconds. + +self-extinguisher-no-charges = The {$item} has no charges left! +self-extinguisher-on-cooldown = The {$item}'s extinguisher is recharging! +self-extinguisher-not-on-fire-self = You are not on fire! +self-extinguisher-not-on-fire-other = {$target} {CONJUGATE-BE($target)} not on fire! +self-extinguisher-not-immune-to-fire-self = You are not insulated against fire! +self-extinguisher-not-immune-to-fire-other = {$target} {CONJUGATE-BE($target)} not insulated against fire! + +self-extinguisher-extinguish-self = The {$item} extinguishes you! +self-extinguisher-extinguish-other = The {$item} extinguishes {$target}! + +self-extinguisher-refill = You refill the suit's self-extinguisher, using up the cartridge. +self-extinguisher-refill-full = The self-extinguisher is full. diff --git a/Resources/Locale/en-US/species/species.ftl b/Resources/Locale/en-US/species/species.ftl index bfebc705c56b..6ffc9ac2bd54 100644 --- a/Resources/Locale/en-US/species/species.ftl +++ b/Resources/Locale/en-US/species/species.ftl @@ -1,4 +1,4 @@ -## Species Names +## Species Names species-name-human = Human species-name-dwarf = Dwarf @@ -12,7 +12,8 @@ species-name-skeleton = Skeleton species-name-vox = Vox species-name-ipc = IPC species-name-shadowkin = Shadowkin +species-name-plasmaman = Plasmaman ## Misc species things -snail-hurt-by-salt-popup = The salty solution burns like acid! \ No newline at end of file +snail-hurt-by-salt-popup = The salty solution burns like acid! diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 0dcbc1ba663b..523d37c839a0 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -436,6 +436,9 @@ uplink-syndicate-pai-desc = A Syndicate variant of the pAI with access to the Sy uplink-bribe-name = Lobbying Bundle uplink-bribe-desc = A heartfelt gift that can help you sway someone's opinion. Real or counterfeit? Yes. +uplink-bribe-plasmaman-name = Lobbying Bundle +uplink-bribe-plasmaman-desc = A heartfelt gift that can help you sway someone's opinion. Real or counterfeit? Yes. Includes a tacticool envirosuit for a tacticool plasmaman like you. + uplink-hypodart-name = Hypodart uplink-hypodart-desc = A seemingly unremarkable dart with an enlarged reservoir for chemicals. It can store up to 7u reagents in itself, and instantly inject when it hits the target. Starts empty. diff --git a/Resources/Locale/en-US/thief/backpack.ftl b/Resources/Locale/en-US/thief/backpack.ftl index 90cb0031fb89..b779bded0b08 100644 --- a/Resources/Locale/en-US/thief/backpack.ftl +++ b/Resources/Locale/en-US/thief/backpack.ftl @@ -54,6 +54,13 @@ thief-backpack-category-communicator-description = for all station channels, a cybersun pen, a portable crew monitor, a voice chameleon mask and lots of money for business deals. +thief-backpack-category-communicator-plasmaman-name = communicator's kit +thief-backpack-category-communicator-plasmaman-description = + A communication enthusiast's kit. Includes a master key + for all station channels, a cybersun pen, a portable + crew monitor, a voice chameleon mask, a tacticool envirosuit + and lots of money for business deals. + thief-backpack-category-smuggler-name = smuggler's kit thief-backpack-category-smuggler-description = A kit for those who like to have big pockets. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 77fc0f5431ed..fb6e9f9bd5ba 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -95,6 +95,9 @@ trait-description-NormalVisionHarpy = Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. You do not have the usual vision anomaly that your species may possess. +trait-name-SkeletonAccent = Skeleton Accent +trait-description-SkeletonAccent = You have a humerus skeleton accent that will rattle others to the bone! + trait-name-NormalVision = Trichromat Modification trait-description-NormalVision = Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 0a57157f1b2e..5014263a81b8 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -444,3 +444,19 @@ - type: InstantAction useDelay: 4 +- type: entity + id: ActionSelfExtinguish + name: Self-Extinguish + description: Extinguishes you if you are on fire and insulated against self-ignition. + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + itemIconStyle: BigItem + icon: + sprite: Objects/Misc/fire_extinguisher.rsi + state: fire_extinguisher_open + iconCooldown: + sprite: Objects/Misc/fire_extinguisher.rsi + state: fire_extinguisher_closed + iconDisabled: Interface/Default/blocked.png + event: !type:SelfExtinguishEvent diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index c5703820dab3..759fe704238d 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -55,6 +55,24 @@ name: alerts-low-nitrogen-name description: alerts-low-nitrogen-desc +- type: alert + id: LowPlasma + category: Breathing + icons: + - sprite: /Textures/Interface/Alerts/breathing.rsi + state: not_enough_tox + name: alerts-low-plasma-name + description: alerts-low-plasma-desc + +- type: alert + id: HighOxygen + category: Breathing + icons: + - sprite: /Textures/Interface/Alerts/breathing.rsi + state: too_much_oxy + name: alerts-high-oxygen-name + description: alerts-high-oxygen-desc + - type: alert id: Toxins category: Toxins diff --git a/Resources/Prototypes/Body/Organs/plasmaman.yml b/Resources/Prototypes/Body/Organs/plasmaman.yml new file mode 100644 index 000000000000..fa69a490eacd --- /dev/null +++ b/Resources/Prototypes/Body/Organs/plasmaman.yml @@ -0,0 +1,150 @@ +- type: entity + id: BasePlasmamanOrgan + abstract: true + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 5 # Not very nutritious + - ReagentId: Plasma + Quantity: 2.5 + food: + maxVol: 5 + reagents: + - ReagentId: Plasma + Quantity: 5 + - type: Extractable + grindableSolutionName: food + juiceSolution: + reagents: + - ReagentId: Plasma + Quantity: 5 + - type: FlavorProfile + flavors: + - plasma + +- type: entity + id: OrganPlasmamanLungs + parent: [ BasePlasmamanOrgan, OrganHumanLungs ] + name: plasmaman lungs + description: The lungs yearn for the plasma. Only plasma gas can satiate these lungs, and oxygen is lethally toxic. + components: + - type: Sprite + layers: + - state: lungs + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Lung + alert: LowPlasma + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 5 + - ReagentId: Plasma + Quantity: 2.5 + Lung: + maxVol: 100.0 + canReact: false + food: + maxVol: 5 + reagents: + - ReagentId: Plasma + Quantity: 5 + +- type: entity + id: OrganPlasmamanStomach + parent: [ BasePlasmamanOrgan, OrganHumanStomach ] + name: plasmaman stomach + description: Why do plasmamen have stomachs if they don't need to eat? + components: + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 8 + - ReagentId: Plasma + Quantity: 4 + stomach: + maxVol: 50 + food: + maxVol: 8 + reagents: + - ReagentId: Plasma + Quantity: 8 + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Plasma + Quantity: 8 + +- type: entity + id: OrganPlasmamanEyes + parent: [ BasePlasmamanOrgan, OrganHumanEyes ] + name: plasmaman eyes + components: + - type: Sprite + layers: + - state: eyes + +- type: entity + id: OrganPlasmamanLiver + parent: [ BasePlasmamanOrgan, OrganHumanLiver ] + name: plasmaman liver + components: + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + +- type: entity + id: OrganPlasmamanTongue + parent: [ BasePlasmamanOrgan, OrganHumanTongue ] + name: plasmaman tongue + +- type: entity + id: OrganPlasmamanKidneys + parent: [ BasePlasmamanOrgan, OrganHumanKidneys ] + name: plasmaman kidneys + components: + - type: Sprite + layers: + - state: kidneys + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + +- type: entity + id: OrganPlasmamanHeart + parent: [ BasePlasmamanOrgan, OrganHumanHeart ] + name: plasmaman heart + description: It pulses with plasma even outside the body. + components: + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + +- type: entity + id: OrganPlasmamanBrain + parent: [ BasePlasmamanOrgan, OrganHumanBrain ] + name: plasmaman brain + components: + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 5 + - ReagentId: Plasma + Quantity: 2.5 + food: + maxVol: 10 + reagents: + - ReagentId: GreyMatter + Quantity: 5 + - ReagentId: Plasma + Quantity: 5 diff --git a/Resources/Prototypes/Body/Parts/plasmaman.yml b/Resources/Prototypes/Body/Parts/plasmaman.yml new file mode 100644 index 000000000000..2fdec5308571 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/plasmaman.yml @@ -0,0 +1,133 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartPlasmaman + parent: [BaseItem, BasePart] + name: plasmaman body part + abstract: true + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + - type: Butcherable + butcheringType: Knife + butcherDelay: 4.0 + spawned: + - id: SheetPlasma1 + amount: 1 + - type: IgniteFromGasPart + gas: Oxygen + +- type: entity + id: TorsoPlasmaman + name: plasmaman torso + parent: [PartPlasmaman, BaseTorso] + components: + - type: Sprite + state: torso_m + - type: Butcherable + butcherDelay: 6.0 + spawned: + - id: SheetPlasma1 + amount: 3 + - type: IgniteFromGasPart + fireStacks: 0.06 + +- type: entity + id: HeadPlasmaman + name: plasmaman head + parent: [PartPlasmaman, BaseHead] + components: + - type: Sprite + state: head_m + - type: Butcherable + butcherDelay: 5.0 + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftArmPlasmaman + name: left plasmaman arm + parent: [PartPlasmaman, BaseLeftArm] + components: + - type: Sprite + state: l_arm + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: RightArmPlasmaman + name: right plasmaman arm + parent: [PartPlasmaman, BaseRightArm] + components: + - type: Sprite + state: r_arm + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftHandPlasmaman + name: left plasmaman hand + parent: [PartPlasmaman, BaseLeftHand] + components: + - type: Sprite + state: l_hand + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: RightHandPlasmaman + name: right plasmaman hand + parent: [PartPlasmaman, BaseRightHand] + components: + - type: Sprite + state: r_hand + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: LeftLegPlasmaman + name: left plasmaman leg + parent: [PartPlasmaman, BaseLeftLeg] + components: + - type: Sprite + state: l_leg + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: RightLegPlasmaman + name: right plasmaman leg + parent: [PartPlasmaman, BaseRightLeg] + components: + - type: Sprite + state: r_leg + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftFootPlasmaman + name: left plasmaman foot + parent: [PartPlasmaman, BaseLeftFoot] + components: + - type: Sprite + state: l_foot + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: RightFootPlasmaman + name: right plasmaman foot + parent: [PartPlasmaman, BaseRightFoot] + components: + - type: Sprite + state: r_foot + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 diff --git a/Resources/Prototypes/Body/Prototypes/plasmaman.yml b/Resources/Prototypes/Body/Prototypes/plasmaman.yml new file mode 100644 index 000000000000..a41ad0802a97 --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/plasmaman.yml @@ -0,0 +1,50 @@ +- type: body + id: Plasmaman + name: "plasmaman" + root: torso + slots: + head: + part: HeadPlasmaman + connections: + - torso + organs: + brain: OrganPlasmamanBrain + eyes: OrganPlasmamanEyes + torso: + part: TorsoPlasmaman + connections: + - right arm + - left arm + - right leg + - left leg + - head + organs: + heart: OrganPlasmamanHeart + lungs: OrganPlasmamanLungs + stomach: OrganPlasmamanStomach + liver: OrganPlasmamanLiver + kidneys: OrganPlasmamanKidneys + right arm: + part: RightArmPlasmaman + connections: + - right hand + left arm: + part: LeftArmPlasmaman + connections: + - left hand + right hand: + part: RightHandPlasmaman + left hand: + part: LeftHandPlasmaman + right leg: + part: RightLegPlasmaman + connections: + - right foot + left leg: + part: LeftLegPlasmaman + connections: + - left foot + right foot: + part: RightFootPlasmaman + left foot: + part: LeftFootPlasmaman diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml b/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml index c04e49f413cc..55645819c259 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml @@ -68,6 +68,26 @@ category: cargoproduct-category-name-emergency group: market +- type: cargoProduct + id: EmergencyPlasmaInternals + icon: + sprite: Objects/Tanks/plasmaman.rsi + state: icon + product: CratePlasmaInternals + cost: 750 # Plasma is expensive! + category: cargoproduct-category-name-emergency + group: market + +- type: cargoProduct + id: EmergencyPlasmamanEnvirosuit + icon: + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + state: icon + product: CratePlasmamanEnvirosuit + cost: 600 + category: cargoproduct-category-name-emergency + group: market + - type: cargoProduct id: EmergencyBiosuit icon: diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml index d267ddb2ed21..73801981830f 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml @@ -265,6 +265,7 @@ - id: ClothingHandsGlovesColorYellowBudget - id: DoubleEmergencyOxygenTankFilled - id: DoubleEmergencyNitrogenTankFilled + - id: DoubleEmergencyPlasmaTankFilled - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -279,6 +280,7 @@ - id: ClothingHandsGlovesCombat - id: DoubleEmergencyOxygenTankFilled - id: DoubleEmergencyNitrogenTankFilled + - id: DoubleEmergencyPlasmaTankFilled - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -293,6 +295,7 @@ - id: ClothingHandsGlovesCombat - id: DoubleEmergencyOxygenTankFilled - id: DoubleEmergencyNitrogenTankFilled + - id: DoubleEmergencyPlasmaTankFilled - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -306,6 +309,7 @@ - id: ClothingHandsGlovesCombat - id: DoubleEmergencyOxygenTankFilled - id: DoubleEmergencyNitrogenTankFilled + - id: DoubleEmergencyPlasmaTankFilled - type: entity parent: ClothingBackpackDuffelSyndicateBundle diff --git a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml index 9532fbf74e68..1d9d92da0155 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml @@ -87,6 +87,40 @@ - id: NitrogenTankFilled amount: 4 +- type: entity + id: CratePlasmaInternals + parent: CrateInternals + name: internals crate (plasma) + description: Contains four breath masks and four plasma internals tanks. Intended for Plasmamen. + components: + - type: StorageFill + contents: + - id: ClothingMaskGas + amount: 2 + - id: ClothingMaskBreath + amount: 2 + - id: DoubleEmergencyPlasmaTankFilled + amount: 4 + +- type: entity + id: CratePlasmamanEnvirosuit + parent: CrateInternals + name: plasma envirosuit crate + description: Contains two full sets of envirosuits, two breath masks, and two plasma internals tanks. Intended for Plasmamen. + components: + - type: StorageFill + contents: + - id: ClothingUniformEnvirosuit + amount: 2 + - id: ClothingHeadEnvirohelmEmpty + amount: 2 + - id: ClothingHandsGlovesEnvirogloves + amount: 2 + - id: ClothingMaskBreath + amount: 2 + - id: DoubleEmergencyPlasmaTankFilled + amount: 2 + - type: entity id: CrateEmergencyRadiation parent: CrateRadiation diff --git a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml index ba97af392507..82f5bd6aa693 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml @@ -21,6 +21,7 @@ - id: ClothingHandsGlovesCombat - id: DoubleEmergencyOxygenTankFilled - id: DoubleEmergencyNitrogenTankFilled + - id: DoubleEmergencyPlasmaTankFilled - type: entity id: CrateSyndicateSuperSurplusBundle diff --git a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml index 58a49aa6e957..5b96ba96d860 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml @@ -47,6 +47,33 @@ - id: ClothingMaskNeckGaiter - id: SyndieHandyFlag +- type: entity + id: BriefcaseSyndieLobbyingBundlePlasmamanFilled + parent: BriefcaseSyndie + suffix: Syndicate, Spesos, Plasmaman + components: + - type: StorageFill + contents: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash30000 + amount: 1 + - id: EncryptionKeySyndie + - id: RubberStampTrader + - id: PhoneInstrumentSyndicate + - id: ClothingUniformEnvirosuitTacticool + - id: ClothingHeadEnvirohelmTacticool + - id: ClothingOuterCoatJensenFilled + - id: ClothingHandsGlovesCombat + +- type: entity # No more space in briefcase due to envirohelm so put the syndicate flag in the jensen coat + id: ClothingOuterCoatJensenFilled + parent: ClothingOuterCoatJensen + suffix: Syndicate Flag Inside + components: + - type: StorageFill + contents: + - id: SyndieHandyFlag + - type: entity id: BriefcaseThiefBribingBundleFilled parent: BriefcaseSyndie @@ -62,3 +89,19 @@ - id: ClothingHandsGlovesCombat - id: ClothingMaskNeckGaiter - id: ToyFigurineThief + +- type: entity + id: BriefcaseThiefBribingBundlePlasmamanFilled + parent: BriefcaseSyndie + suffix: Thief, Spesos, Plasmaman + components: + - type: StorageFill + contents: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash20000 + amount: 1 + - id: ClothingUniformEnvirosuitTacticool + - id: ClothingHeadEnvirohelmTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ToyFigurineThief diff --git a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml index 2cf1354c143c..379de235fca6 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml @@ -63,6 +63,22 @@ - 0.270782035 # nitrogen temperature: 293.15 +- type: entity + id: EmergencyPlasmaTankFilled + parent: EmergencyPlasmaTank + suffix: Filled + components: + - type: GasTank + outputPressure: 5.325 + air: + # 16 minutes with Plasmaman lungs + volume: 0.66 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 + - 0.270782035 # nitrogen + temperature: 293.15 - type: entity id: ExtendedEmergencyOxygenTankFilled @@ -93,6 +109,22 @@ - 0.615413715 # nitrogen temperature: 293.15 +- type: entity + id: ExtendedEmergencyPlasmaTankFilled + parent: ExtendedEmergencyPlasmaTank + suffix: Filled + components: + - type: GasTank + outputPressure: 5.325 + air: + # 36 minutes with Plasmaman lungs + volume: 1.5 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 + - 0.615413715 # plasma + temperature: 293.15 - type: entity id: DoubleEmergencyOxygenTankFilled @@ -123,6 +155,23 @@ - 1.025689525 # nitrogen temperature: 293.15 +- type: entity + id: DoubleEmergencyPlasmaTankFilled + parent: DoubleEmergencyPlasmaTank + suffix: Filled + components: + - type: GasTank + outputPressure: 5.325 + air: + # 60 minutes with Plasmaman lungs + volume: 1.5 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 + - 1.025689525 # plasma + temperature: 293.15 + - type: entity id: EmergencyFunnyOxygenTankFilled parent: EmergencyFunnyOxygenTank @@ -142,7 +191,7 @@ - 0 # water vapor - 0 # ammonia - 0.014251686 # 5% N2O - # 0.285033721 total + # 0.285033721 total temperature: 293.15 - type: entity @@ -211,7 +260,7 @@ suffix: Filled components: - type: GasTank - outputPressure: 101.3 + outputPressure: 21.3 air: # 6 minutes of agony volume: 5 @@ -221,3 +270,13 @@ - 0 # CO2 - 2.051379050 # plasma temperature: 293.15 + +- type: entity + id: PlasmaTankFilledInternals + parent: PlasmaTankFilled + name: plasma tank + suffix: Filled, Plasmaman Internals + components: + - type: GasTank + # 120 minutes with Plasmaman lungs + outputPressure: 5.325 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml index fce18024a7ef..7dbcce131b0e 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml @@ -3,6 +3,7 @@ startingInventory: OxygenTankFilled: 10 NitrogenTankFilled: 10 + PlasmaTankFilled: 10 - type: vendingMachineInventory id: TankDispenserEngineeringInventory diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index e70e93732f3b..b0b7810e19be 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -2,7 +2,7 @@ id: ChameleonSet name: thief-backpack-category-chameleon-name description: thief-backpack-category-chameleon-description - sprite: + sprite: sprite: /Textures/Clothing/OuterClothing/Misc/black_hoodie.rsi state: icon content: @@ -20,7 +20,7 @@ id: ToolsSet name: thief-backpack-category-tools-name description: thief-backpack-category-tools-description - sprite: + sprite: sprite: Objects/Tools/jaws_of_life.rsi state: jaws_pry content: @@ -67,7 +67,7 @@ id: SleeperSet name: thief-backpack-category-sleeper-name description: thief-backpack-category-sleeper-description - sprite: + sprite: sprite: Objects/Tanks/anesthetic.rsi state: icon content: @@ -84,9 +84,14 @@ id: CommunicatorSet name: thief-backpack-category-communicator-name description: thief-backpack-category-communicator-description - sprite: + sprite: sprite: Objects/Tools/spy_device.rsi state: icon + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman content: - EncryptionKeyStationMaster - CyberPen @@ -94,12 +99,30 @@ - BriefcaseThiefBribingBundleFilled - ClothingMaskGasVoiceChameleon #- todo Chameleon Stamp - + +- type: thiefBackpackSet + id: CommunicatorSetPlasmaman + name: thief-backpack-category-communicator-plasmaman-name + description: thief-backpack-category-communicator-plasmaman-description + sprite: + sprite: Objects/Tools/spy_device.rsi + state: icon + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + content: + - EncryptionKeyStationMaster + - CyberPen + - SpyCrewMonitor + - BriefcaseThiefBribingBundlePlasmamanFilled + - ClothingMaskGasVoiceChameleon + - type: thiefBackpackSet id: SmugglerSet name: thief-backpack-category-smuggler-name description: thief-backpack-category-smuggler-description - sprite: + sprite: sprite: Clothing/Neck/Cloaks/void.rsi state: icon content: diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index ca196b3ec05f..64e3eba5aa6d 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -815,6 +815,27 @@ Telecrystal: 4 categories: - UplinkDeception + conditions: + - !type:BuyerSpeciesCondition + blacklist: + - Plasmaman + +- type: listing + id: UplinkBribePlasmaman + name: uplink-bribe-plasmaman-name + description: uplink-bribe-plasmaman-desc + productEntity: BriefcaseSyndieLobbyingBundlePlasmamanFilled + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 2 + cost: + Telecrystal: 4 + categories: + - UplinkDeception + conditions: + - !type:BuyerSpeciesCondition + whitelist: + - Plasmaman # - type: listing # id: UplinkGigacancerScanner @@ -833,8 +854,6 @@ icon: { sprite: /Textures/Objects/Tools/Decoys/operative_decoy.rsi, state: folded } productEntity: ClothingBackpackDuffelSyndicateDecoyKitFilled discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 3 cost: Telecrystal: 1 categories: @@ -1612,8 +1631,6 @@ description: uplink-syndicate-stamp-desc productEntity: RubberStampSyndicate discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 cost: Telecrystal: 1 categories: diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml index 134d4605402f..802590accd23 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml @@ -15,3 +15,7 @@ id: LoadoutHandsGlovesFingerlessWhite - type: loadout id: LoadoutHandsGlovesEvening + - type: loadout + id: LoadoutHandsGlovesEnviroglovesColor + - type: loadout + id: LoadoutHandsGlovesEnviroglovesEvening diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml index 16d145a041ca..caf1880711d5 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml @@ -305,3 +305,67 @@ id: LoadoutUniformJumpsuitFlannelKhakis - type: loadout id: LoadoutUniformJumpsuitFlannelBlackKhakis + - type: loadout + id: LoadoutUniformEnvirosuit + - type: loadout + id: LoadoutUniformEnvirosuitBlackPink + - type: loadout + id: LoadoutUniformEnvirosuitBlackPinkAlt + - type: loadout + id: LoadoutUniformEnvirosuitMartialGi + - type: loadout + id: LoadoutUniformEnvirosuitSafari + - type: loadout + id: LoadoutUniformEnvirosuitTrans + - type: loadout + id: LoadoutUniformEnvirosuitAncientVoid + - type: loadout + id: LoadoutUniformEnvirosuitColorWhite + - type: loadout + id: LoadoutUniformEnvirosuitColorGrey + - type: loadout + id: LoadoutUniformEnvirosuitColorBlack + - type: loadout + id: LoadoutUniformEnvirosuitColorRed + - type: loadout + id: LoadoutUniformEnvirosuitColorGreen + - type: loadout + id: LoadoutUniformEnvirosuitColorDarkGreen + - type: loadout + id: LoadoutUniformEnvirosuitColorBlue + - type: loadout + id: LoadoutUniformEnvirosuitColorDarkBlue + - type: loadout + id: LoadoutUniformEnvirosuitColorTeal + - type: loadout + id: LoadoutUniformEnvirosuitColorMaroon + - type: loadout + id: LoadoutUniformEnvirosuitColorPink + - type: loadout + id: LoadoutUniformEnvirosuitColorYellow + - type: loadout + id: LoadoutUniformEnvirosuitColorPurple + - type: loadout + id: LoadoutUniformEnvirosuitColorOrange + - type: loadout + id: LoadoutUniformEnvirosuitColorLightBrown + - type: loadout + id: LoadoutUniformEnvirosuitColorBrown + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacks + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksNegative + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorRed + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorOrange + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorGreen + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBlue + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBrown + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNK + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNKAlt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml index 3bd4172dd22b..aca3f2e5fc06 100644 --- a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml @@ -75,3 +75,5 @@ id: LoadoutCourierUniformMailSuit - type: loadout id: LoadoutCourierUniformMailSkirt + - type: loadout + id: LoadoutCourierUniformEnvirosuitMailCarrier diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml index 398d67f032dc..ef718f2093f8 100644 --- a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml @@ -226,3 +226,7 @@ id: LoadoutUniformJumpsuitSecFormal - type: loadout id: LoadoutUniformJumpsuitSecSummer + - type: loadout + id: LoadoutSecurityUniformEnvirosuitBlue + - type: loadout + id: LoadoutSecurityUniformEnvirosuitGrey diff --git a/Resources/Prototypes/Chemistry/metabolizer_types.yml b/Resources/Prototypes/Chemistry/metabolizer_types.yml index 80f69893c6ea..381261358497 100644 --- a/Resources/Prototypes/Chemistry/metabolizer_types.yml +++ b/Resources/Prototypes/Chemistry/metabolizer_types.yml @@ -56,3 +56,7 @@ - type: metabolizerType id: Shadowkin name: metabolizer-type-shadowkin + +- type: metabolizerType + id: Plasmaman + name: metabolizer-type-plasmaman diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 3cc2bb4fd7dc..86a6fab9c558 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -372,6 +372,18 @@ Shock: 1.25 Radiation: 1.3 +- type: damageModifierSet + id: Plasmaman + coefficients: + Blunt: 1.5 + Slash: 0.85 + Piercing: 0.75 + Cold: 0 + Heat: 1.5 + Poison: 0.8 + Radiation: 0 + Bloodloss: 0.0 # Immune to weapons that directly deal bloodloss damage + - type: damageModifierSet id: DermalArmor coefficients: diff --git a/Resources/Prototypes/Datasets/Names/plasmaman.yml b/Resources/Prototypes/Datasets/Names/plasmaman.yml new file mode 100644 index 000000000000..3e12b9e379fd --- /dev/null +++ b/Resources/Prototypes/Datasets/Names/plasmaman.yml @@ -0,0 +1,326 @@ +- type: dataset + id: names_plasmaman + values: + # Periodic table elements + - Actinium + - Aluminium + - Americium + - Antimony + - Argon + - Arsenic + - Astatine + - Barium + - Berkelium + - Beryllium + - Bismuth + - Bohrium + - Boron + - Bromine + - Cadmium + - Caesium + - Calcium + - Californium + - Carbon + - Cerium + - Chlorine + - Chromium + - Cobalt + - Copernicium + - Copper + - Curium + - Darmstadtium + - Dubnium + - Dysprosium + - Einsteinium + - Erbium + - Europium + - Fermium + - Flerovium + - Fluorine + - Francium + - Gadolinium + - Gallium + - Germanium + - Gold + - Hafnium + - Hassium + - Helium + - Holmium + - Hydrogen + - Indium + - Iodine + - Iridium + - Iron + - Krypton + - Lanthanum + - Lawrencium + - Lead + - Lithium + - Livermorium + - Lutetium + - Magnesium + - Manganese + - Meitnerium + - Mendelevium + - Mercury + - Molybdenum + - Moscovium + - Neodymium + - Neon + - Neptunium + - Nickel + - Nihonium + - Niobium + - Nitrogen + - Nobelium + - Oganesson + - Osmium + - Oxygen + - Palladium + - Phosphorus + - Platinum + - Plutonium + - Polonium + - Potassium + - Praseodymium + - Promethium + - Protactinium + - Radium + - Radon + - Rhenium + - Rhodium + - Roentgenium + - Rubidium + - Ruthenium + - Rutherfordium + - Samarium + - Scandium + - Seaborgium + - Selenium + - Silicon + - Silver + - Sodium + - Strontium + - Sulfur + - Tantalum + - Technetium + - Tellurium + - Tennessine + - Terbium + - Thallium + - Thorium + - Thulium + - Tin + - Titanium + - Tungsten + - Uranium + - Vanadium + - Xenon + - Ytterbium + - Yttrium + - Zinc + - Zirconium + # Periodic table groups + - Metalloid + - Alkali + - Alkaline + - Triel + - Tetrel + - Chalcogen + - Pnictogen + - Halogen + - Noble + # Periodic table series + - Lanthanide + - Actinide + # Polyatomic cations + - Ammonium + - Hydronium + - Nitronium + - Pyrylium + # Anions + - Hydride + - Oxide + - Fluoride + - Sulfide + - Selenide + - Telluride + - Chloride + - Nitride + - Phospide + - Arsenide + - Bromide + - Iodide + - Azide + - Bisulfide + - Hydroxide + - Acetylide + - Ethoxide + - Cyanide + - Amide + - Phenoxide + - Peroxide + - Superoxide + - Acetylide + # Oxoanions + - Sulfate + - Sulfite + - Phosphate + - Phospite + - Arsenate + - Arsenite + - Nitrate + - Nitrite + - Thiosulfate + - Perchlorate + - Iodate + - Chlorate + - Bromate + - Perbromate + - Chlorite + - Hypochlorite + - Hypobromite + - Carbonate + - Chromate + - Bicarbonate + - Dichromate + - Persulfate + - Pyrosulfite + - Pyrosulfate + - Pyrophosphite + - Pyrophosphate + - Pyroarsenate + - Dicarbonate + - Pyrocarbonate + - Pyroselenite + - Ethanolate + - Benzoate + - Citrate + - Manganate + - Zincate + - Aluminate + - Tungstate + - Orthosilicate + - Metasilicate + - Silicate + - Cyanate + - Thiocyanate + - Permanganate + - Sulfonate + - Isocyanate + - Carbamate + # Anions from organic acids + - Acetate + - Formate + - Oxalate + - Propionate + - Butyrate + - Malate + # Isotopes + - Protium + - Deuterium + - Tritium + - Uranium-235 + - Uranium-238 + - Radon-222 + - Thorium-232 + # Compounds + - Ammonia + - Methane + - Glucose + - Ethanol + - Formaldehyde + - Acetylene + - Toluene + # SS14 chemicals + - Bananium + - Fresium + - Carpetium + - Razorium + - Artifexium + - Barozine + - Frezon + - Phlogiston + - Licoxide + - Lipolicide + - Tazinide + - Lotophagoi + - Vestine + - Thermite + - Saxoite + - Sigynate + - Nocturine + - Impedrezene + - Ephedrine + # Skeleton names from skeleton_first.yml - double weight + - Sternum + - Sternum + - Ribs + - Ribs + - Vertebrae + - Vertebrae + - Sacrum + - Sacrum + - Mandible + - Mandible + - Clavicle + - Clavicle + - Scapula + - Scapula + - Humerus + - Humerus + - Radius + - Radius + - Ulna + - Ulna + - Carpals + - Carpals + - Phalanges + - Phalanges + - Pelvis + - Pelvis + - Femur + - Femur + - Tibia + - Tibia + - Fibula + - Fibula + - Marrow + - Marrow + - Tarsals + - Tarsals + - Patella + - Patella + - Tailbone + - Tailbone + - Rib + - Rib + - Hyoid + - Hyoid + - Coccyx + - Coccyx + - Tarsus + - Tarsus + - Lacrimal + - Lacrimal + - Bone + - Bone + # Bonus Skeleton names + - Skull + - Skull + - Maxilla + - Maxilla + - Zygomatic + - Zygomatic + - Malleus + - Malleus + - Incus + - Incus + - Stapes + - Stapes + - Metacarpals + - Metacarpals + - Metatarsals + - Metatarsals + - Ribs + - Ribs diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml index 6785e74acb2d..0b8a4bd11f00 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml @@ -1,5 +1,7 @@ - type: startingGear id: CourierGear + subGear: + - CourierPlasmamanGear equipment: head: ClothingHeadCourier jumpsuit: ClothingUniformCourier @@ -11,3 +13,11 @@ innerClothingSkirt: ClothingUniformSkirtCourier satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: CourierPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCourier + head: ClothingHeadEnvirohelmCourier + gloves: ClothingHandsGlovesEnviroglovesCargo diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml index d07a1b44979d..03efbd17557d 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml @@ -38,9 +38,19 @@ - type: startingGear id: AdminAssistantGear + subGear: + - AdminAssistantPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitAdminAssistant id: AdminAssistantPDA ears: ClothingHeadsetAdminAssist shoes: ClothingShoesLeather - innerClothingSkirt: ClothingUniformJumpskirtAdminAssistant \ No newline at end of file + innerClothingSkirt: ClothingUniformJumpskirtAdminAssistant + +- type: startingGear + id: AdminAssistantPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitAdminAssistant + head: ClothingHeadEnvirohelmAdminAssistant + gloves: ClothingHandsGlovesEnviroglovesAdminAssistant diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml index db5e717a011f..af0bca2ea0a5 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml @@ -55,6 +55,8 @@ - type: startingGear id: SyndicateListenerGear + subGear: + - SyndicatePlasmamanGear # TODO: syndicate listener enviropyjamas equipment: jumpsuit: ClothingUniformJumpsuitPyjamaSyndicateBlack head: ClothingHeadPyjamaSyndicateBlack diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml index 8f76050d8829..effd10d2c68e 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml @@ -38,6 +38,8 @@ - type: startingGear id: CJGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChiefJustice back: ClothingBackpackFilled # TODO- make Justice department bags diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml index c2032b67ebea..7e4a2ebff0d0 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml @@ -28,6 +28,8 @@ - type: startingGear id: ClerkGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitClerk back: ClothingBackpackFilled diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml index e0cebc4417a0..5aed73bcbf79 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml @@ -17,6 +17,8 @@ - type: startingGear id: ProsecutorGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitProsecutor neck: ClothingNeckProsecutorbadge diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml index 802ef248f2c8..ea2bbe305aad 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml @@ -31,9 +31,16 @@ - type: CPRTraining - type: SurgerySpeedModifier speedModifier: 2.0 + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CorpsmanGear # see Prototypes/Roles/Jobs/Fun/misc_startinggear.yml for "BrigmedicGear" + subGear: + - CorpsmanPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitBrigmedic outerClothing: ClothingOuterArmorPlateCarrier @@ -48,3 +55,11 @@ innerClothingSkirt: ClothingUniformJumpskirtBrigmedic satchel: ClothingBackpackSatchelBrigmedicFilled duffelbag: ClothingBackpackDuffelBrigmedicFilled + +- type: startingGear + id: CorpsmanPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitBrigmedic + head: ClothingHeadEnvirohelmBrigmedic + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml index 02cf0ab6f67d..a00bab327d6f 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml @@ -44,3 +44,17 @@ - type: Fiber fiberMaterial: fibers-synthetic - type: FingerprintMask + +- type: entity + parent: ClothingHandsGlovesSyntheticBase + abstract: true + id: ClothingHandsGlovesEnviroglovesBase + components: + - type: Armor + modifiers: + coefficients: + Caustic: 0.95 + - type: IgniteFromGasImmunity + parts: + - LeftHand + - RightHand diff --git a/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml new file mode 100644 index 000000000000..656bae9e9526 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml @@ -0,0 +1,655 @@ +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnvirogloves + name: plasma envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#913b00" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#913b00" + right: + - state: inhand-right + color: "#913b00" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#913b00" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesBlack + name: black envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#2f2e31" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#2f2e31" + right: + - state: inhand-right + color: "#2f2e31" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#2f2e31" + - type: Fiber + fiberColor: fibers-black + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesNitrile + name: nitrile envirogloves + description: Pricy nitrile gloves made for Plasmamen. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#234f60" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#234f60" + right: + - state: inhand-right + color: "#234f60" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#234f60" + - type: Fiber + fiberMaterial: fibers-nitrile + - type: FingerprintMask + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesWhite + name: white envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#ffffff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + right: + - state: inhand-right + color: "#ffffff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#ffffff" + - type: Fiber + fiberColor: fibers-white + +- type: entity + parent: ClothingHandsGlovesEnviroglovesWhite + id: ClothingHandsGlovesEnviroglovesColor + name: envirogloves + description: Covers up those scandalous boney hands. + suffix: Loadouts, Colorable + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesEvening + name: evening envirogloves + description: Who said Plasmamen can't serve elegance and looks? + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/evening_gloves.rsi + - type: Clothing + sprite: Clothing/Hands/Gloves/evening_gloves.rsi + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesRoboticist + name: roboticist envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#932500" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#932500" + right: + - state: inhand-right + color: "#932500" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#932500" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesJanitor + name: janitor envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#883391" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#883391" + right: + - state: inhand-right + color: "#883391" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#883391" + - type: Fiber + fiberColor: fibers-purple + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesCargo + name: logistics envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#bb9042" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#bb9042" + right: + - state: inhand-right + color: "#bb9042" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#bb9042" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesEngineering + name: engineering envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#d75600" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#d75600" + right: + - state: inhand-right + color: "#d75600" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#d75600" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesAtmos + name: atmos envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#00a5ff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#00a5ff" + right: + - state: inhand-right + color: "#00a5ff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#00a5ff" + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesSalvage + name: salvage envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#47453d" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#47453d" + right: + - state: inhand-right + color: "#47453d" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#47453d" + - type: Fiber + fiberColor: fibers-olive + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesLeather + name: hydroponics envirogloves + description: These leather gloves protect your boney hands against thorns, barbs, prickles, and spikes. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#3164ff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#3164ff" + right: + - state: inhand-right + color: "#3164ff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#3164ff" + - type: GloveHeatResistance + heatResistance: 1400 + - type: Fiber + fiberMaterial: fibers-leather + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesPrototype + name: prototype envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#911801" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#911801" + right: + - state: inhand-right + color: "#911801" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#911801" + - type: Fiber + fiberColor: fibers-red + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesClown + name: clown envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#ff0000" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#ff0000" + right: + - state: inhand-right + color: "#ff0000" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#ff0000" + - type: Fiber + fiberColor: fibers-red + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesHoP + name: head of personnel's envirogloves + description: Covers up those scandalous, bony hands. Appears to be an attempt at making a replica of the captain's gloves. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Envirogloves/hop.rsi + layers: + - state: icon + - type: Item + sprite: Clothing/Hands/Gloves/Envirogloves/hop.rsi + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + - type: Clothing + sprite: Clothing/Hands/Gloves/Envirogloves/hop.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesChiefEngineer + name: chief engineer's envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#45ff00" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#45ff00" + right: + - state: inhand-right + color: "#45ff00" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#45ff00" + - type: Fiber + fiberColor: fibers-green + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesResearchDirector + name: research director's envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#64008a" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#64008a" + right: + - state: inhand-right + color: "#64008a" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#64008a" + - type: Fiber + fiberColor: fibers-purple + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesPurple + name: purple envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#a349a4" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#a349a4" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#a349a4" + - type: Fiber + fiberColor: fibers-purple + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesAdminAssistant + name: administrative assistant's envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#315266" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#315266" + right: + - state: inhand-right + color: "#315266" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#315266" + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesColorDarkGreen + name: dark green envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#79CC26" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#79CC26" + right: + - state: inhand-right + color: "#79CC26" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#79CC26" + - type: Fiber + fiberColor: fibers-green + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesColorDarkGrey + name: dark grey envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#616161" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#616161" + right: + - state: inhand-right + color: "#616161" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#616161" + - type: Fiber + fiberColor: fibers-grey + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesGladiator + name: gladiator envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#dab13b" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#dab13b" + right: + - state: inhand-right + color: "#dab13b" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#dab13b" + - type: Fiber + fiberColor: fibers-yellow + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesReporter + name: reporter envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#79121b" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#79121b" + right: + - state: inhand-right + color: "#79121b" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#79121b" + - type: Fiber + fiberColor: fibers-red diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml index 08a3eb568fe8..4d791e018e0d 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml @@ -126,6 +126,9 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.2 + - type: IgniteFromGasImmunity + parts: + - Head - type: IngestionBlocker - type: Clothing #Copies ClothingHeadHardsuitBase behavior @@ -135,6 +138,7 @@ tags: - WhitelistChameleon - HelmetEVA + - PlasmamanSafe - type: IdentityBlocker - type: HideLayerClothing slots: @@ -165,6 +169,9 @@ coefficient: 0.1 - type: FireProtection reduction: 0.2 + - type: IgniteFromGasImmunity + parts: + - Head - type: Armor modifiers: coefficients: @@ -178,12 +185,174 @@ - type: Tag tags: - WhitelistChameleon + - PlasmamanSafe - type: IdentityBlocker - type: HideLayerClothing slots: - Hair - Snout +- type: entity + abstract: true + parent: ClothingHeadBase + id: ClothingHeadEnvirohelmBase + name: base envirosuit helmet + components: + - type: Sprite + layers: + - state: icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + size: Normal + heldPrefix: off + - type: Clothing + equipDelay: 0.4 + unequipDelay: 0.6 # Slightly higher delay to protect against accidental unequips + equippedPrefix: off + clothingVisuals: + head: + - state: equipped-HELMET + - type: IgniteFromGasImmunity + parts: + - Head + - type: Armor + modifiers: + coefficients: + Caustic: 0.90 + - type: EyeProtection + - type: BreathMask + - type: PressureProtection # Same as EVA helmet + highPressureMultiplier: 0.6 + lowPressureMultiplier: 1000 + - type: TemperatureProtection + coefficient: 0.2 + - type: IngestionBlocker + - type: Tag + tags: + - WhitelistChameleon + - Envirohelm + - PlasmamanSafe + - type: HideLayerClothing + slots: + - Hair + - Snout + clothingSlots: + - mask + - type: ToggleableLightVisuals + clothingVisuals: + head: + - state: on-equipped-HELMET + shader: unshaded + - type: PointLight + enabled: false + color: "#ffa1ff" + radius: 4 + energy: 3 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + netsync: false + - type: Appearance + - type: HandheldLight + addPrefix: true + blinkingBehaviourId: blinking + radiatingBehaviourId: radiating + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour + id: radiating + interpolate: Linear + maxDuration: 2.0 + startValue: 3.0 + endValue: 2.0 + isLooped: true + reverseWhenFinished: true + - !type:PulseBehaviour + id: blinking + interpolate: Nearest + maxDuration: 1.0 + minValue: 0.1 + maxValue: 2.0 + isLooped: true + - type: PowerCellSlot + cellSlotId: cell_slot + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMedium + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot {} + - type: GuideHelp # While the playerbase is getting introduced to Plasmamen, add their guidebook here + guides: [ Plasmaman ] + +# When making new custom envirohelms, inherit from this entity and +# replace the color fields on the layers +- type: entity + abstract: true + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCustomBase + name: base custom envirosuit helmet + components: + - type: ToggleableLightVisuals + inhandVisuals: + left: + - state: on-inhand-left + shader: unshaded + right: + - state: on-inhand-right + shader: unshaded + clothingVisuals: + head: + - state: on-equipped-HELMET + shader: unshaded + - type: Sprite + sprite: Clothing/Head/Envirohelms/custom.rsi + layers: + - state: icon + color: "#FFFFFF" + - state: accent-icon + color: "#FF0000" + # - state: midaccent-icon + # color: "#0000FF" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#FFFFFF" + - state: accent-inhand-left + color: "#FF0000" + # - state: midaccent-inhand-left + # color: "#0000FF" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#FFFFFF" + - state: accent-inhand-right + color: "#FF0000" + # - state: midaccent-inhand-right + # color: "#0000FF" + - state: visor-inhand-right + - type: Clothing + sprite: Clothing/Head/Envirohelms/custom.rsi + clothingVisuals: + head: + - state: equipped-HELMET + color: "#FFFFFF" + - state: accent-equipped-HELMET + color: "#FF0000" + # - state: midaccent-equipped-HELMET + # color: "#0000FF" + - state: visor-equipped-HELMET + - type: entity abstract: true parent: ClothingHeadHardsuitBase diff --git a/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml b/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml new file mode 100644 index 000000000000..e05101895082 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml @@ -0,0 +1,2192 @@ +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelm + name: plasma envirosuit helmet + description: A special containment helmet that allows plasma-based lifeforms to exist safely in an oxygenated environment. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/plain.rsi + - type: Item + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + - type: Clothing + sprite: Clothing/Head/Envirohelms/plain.rsi + - type: ToggleableLightVisuals + inhandVisuals: + left: + - state: on-inhand-left + shader: unshaded + right: + - state: on-inhand-right + shader: unshaded + +- type: entity + parent: ClothingHeadEnvirohelm + id: ClothingHeadEnvirohelmEmpty + suffix: Empty + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmAtmos + name: atmospherics envirosuit helmet + description: A space-worthy helmet specially designed for atmos technician Plasmamen, the usual purple stripes being replaced by atmos' blue. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/atmos.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/atmos.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCargo + name: logistics envirosuit helmet + description: A Plasmaman envirohelmet designed for cargo technicians. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/cargo.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/cargo.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCaptain + name: captain's envirosuit helmet + description: A special containment helmet designed for the Captain. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/captain.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/captain.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChiefEngineer + name: chief engineer's envirosuit helmet + description: A special containment helmet designed for the Chief Engineer, the usual purple stripes being replaced by the chief's green. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/ce.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/ce.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChaplain + name: chaplain's envirosuit helmet + description: An envirohelm specially designed for only the most pious of Plasmamen. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/chaplain.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/chaplain.rsi + +- type: entity + parent: ClothingHeadEnvirohelmEnviroslacksColorOrange + id: ClothingHeadEnvirohelmDetective + name: detective's envirosuit helmet + description: A special containment helmet designed for detectives, protecting them from burning alive, alongside other undesirables. + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChemist + name: chemistry envirosuit helmet + description: A Plasmaman envirosuit designed for chemists, two orange stripes going down its face. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/chemist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/chemist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmClown + name: clown envirosuit helmet + description: The make-up is painted on, it's a miracle it doesn't chip. HONK! + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/clown.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/clown.rsi + - type: PointLight + color: "#a777ff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCMO + name: chief medical officer's envirosuit helmet + description: A special containment helmet designed for the Chief Medical Officer. The gold stripe differentiates them from other medical staff. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/cmo.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/cmo.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmEngineering + name: engineering envirosuit helmet + description: A space-worthy helmet specially designed for engineer Plasmamen, the usual purple stripes being replaced by engineering's orange. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/engineering.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/engineering.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHoP + name: head of personnel's envirosuit helmet + description: A special containment helmet designed for the Head of Personnel. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hop.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hop.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHoS + name: head of security's envirosuit helmet + description: A special containment helmet designed for the Head of Security. The pair of gold stripes differentiates them from other members of security. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hos.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hos.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHydroponics + name: hydroponics envirosuit helmet + description: A green and blue envirohelmet designating its wearer as a botanist. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hydroponics.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hydroponics.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmJanitor + name: janitor envirosuit helmet + description: A grey helmet bearing a pair of purple stripes, designating the wearer as a janitor. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/janitor.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/janitor.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmAncientVoid + name: NTSRA envirosuit helmet + description: Made out of a modified NTSRA vacsuit, this helmet was Nanotrasen's first-designed envirohelmet for Plasmamen. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/ancientvoid.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/ancientvoid.rsi + clothingVisuals: + head: + - state: equipped-HELMET + - state: visor-equipped-HELMET + - type: ToggleableLightVisuals + clothingVisuals: + head: + - state: visor-equipped-HELMET + shader: unshaded + - type: PointLight + color: "#ffffff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmMedicalDoctor + name: medical envirosuit helmet + description: An envirohelmet designed for Plasmaman Medical personnel, having two stripes down its length to denote as much. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/medical.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/medical.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmGenitcs + name: genetics envirosuit helmet + description: A Plasmaman envirohelmet designed for geneticists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/genetics.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/genetics.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmMime + name: mime envirosuit helmet + description: The make-up is painted on, it's a miracle it doesn't chip. It's not very colourful. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/mime.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/mime.rsi + - type: PointLight + color: "#ffffff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmParamedic + name: paramedic envirosuit helmet + description: An envirohelmet designed for Plasmaman paramedics, with darker blue stripes compared to the medical model. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/paramedic.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/paramedic.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmPrisoner + name: prisoner envirosuit helmet + description: A Plasmaman containment helmet for prisoners. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8300" + - state: accent-icon + color: "#3c3c3c" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8300" + - state: accent-inhand-left + color: "#3c3c3c" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ff8300" + - state: accent-inhand-right + color: "#3c3c3c" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ff8300" + - state: accent-equipped-HELMET + color: "#3c3c3c" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmResearchDirector + name: mystagogue's envirosuit helmet + description: A special containment helmet designed for the Mystagogue. A light brown design is applied to differentiate them from other scientists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/rd.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/rd.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmRoboticist + name: roboticist envirosuit helmet + description: A Plasmaman envirohelmet designed for roboticists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/roboticist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/roboticist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmSalvage + name: salvage envirosuit helmet + description: A khaki helmet given to Plasmamen salvage technicians. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/salvage.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/salvage.rsi + - type: PointLight + color: "#c77eff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmScientist + name: science envirosuit helmet + description: A Plasmaman envirohelmet designed for scientists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/scientist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/scientist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSec + name: security envirosuit helmet + description: A Plasmaman containment helmet designed for security officers, protecting them from burning alive, alongside other undesirables. + components: + - type: Sprite + layers: + - state: icon + color: "#8f3132" + - state: accent-icon + color: "#2e2e2e" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#8f3132" + - state: accent-inhand-left + color: "#2e2e2e" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#8f3132" + - state: accent-inhand-right + color: "#2e2e2e" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#8f3132" + - state: accent-equipped-HELMET + color: "#2e2e2e" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSecBlue + name: blue security envirosuit helmet + description: A cool blue envirosuit helmet for Plasmaman Security personnel. + components: + - type: Sprite + layers: + - state: icon + color: "#b9c1d9" + - state: accent-icon + color: "#36476b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b9c1d9" + - state: accent-inhand-left + color: "#36476b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#b9c1d9" + - state: accent-inhand-right + color: "#36476b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#b9c1d9" + - state: accent-equipped-HELMET + color: "#36476b" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSecGrey + name: grey security envirosuit helmet + description: A light grey envirosuit helmet with bright red highlights for Plasmamen Security personnel. + components: + - type: Sprite + layers: + - state: icon + color: "#7e7e7e" + - state: accent-icon + color: "#a61d1d" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#7e7e7e" + - state: accent-inhand-left + color: "#a61d1d" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#7e7e7e" + - state: accent-inhand-right + color: "#a61d1d" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#7e7e7e" + - state: accent-equipped-HELMET + color: "#a61d1d" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmVirology + name: virology envirosuit helmet + description: The helmet worn by the safest people on the station, those who are completely immune to the monstrosities they create. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/virology.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/virology.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmWarden + name: warden's envirosuit helmet + description: A Plasmaman containment helmet designed for the warden. A pair of white stripes being added to differeciate them from other members of security. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/warden.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/warden.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmOperative + name: operative envirosuit helmet + description: Anyone wearing this is badass and deserves at least a cursory nod of respect. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/tacticool.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/tacticool.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmTacticool + name: tacticool envirosuit helmet + description: There's no doubt about it, this helmet puts you above ALL of the other Plasmamen. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/tacticool.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/tacticool.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCentcomAgent + name: CentCom agent's envirosuit helmet + description: A special containment helmet designed for CentCom's legal team. You know, so any coffee spills don't kill the poor sod. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/centcom_agent.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/centcom_agent.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCentcomOfficial + name: CentCom official's envirosuit helmet + description: A special containment helmet designed for CentCom Staff. They sure do love their green. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/centcom_official.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/centcom_official.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCentcomOfficer + name: CentCom officer's envirosuit helmet + description: A special containment helmet designed for CentCom Officers. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/centcom_officer.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/centcom_officer.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmCourier + name: courier's envirosuit helmet + description: An envirosuit helmet for the courier. + components: + - type: Sprite + layers: + - state: icon + color: "#4a281f" + - state: accent-icon + color: "#c2911e" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#4a281f" + - state: accent-inhand-left + color: "#c2911e" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#4a281f" + - state: accent-inhand-right + color: "#c2911e" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#4a281f" + - state: accent-equipped-HELMET + color: "#c2911e" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMailCarrier + name: mail carrier's envirosuit helmet + description: Smells like a good pension. + components: + - type: Sprite + layers: + - state: icon + color: "#394dc6" + - state: accent-icon + color: "#dcdcdc" + - state: midaccent-icon + color: "#d82927" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#394dc6" + - state: accent-inhand-left + color: "#dcdcdc" + - state: midaccent-inhand-left + color: "#d82927" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#394dc6" + - state: accent-inhand-right + color: "#dcdcdc" + - state: midaccent-inhand-right + color: "#d82927" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#394dc6" + - state: accent-equipped-HELMET + color: "#dcdcdc" + - state: midaccent-equipped-HELMET + color: "#d82927" + - state: visor-equipped-HELMET + - type: ClothingAddFaction + faction: Mailman + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMusician + name: musician's envirosuit helmet + description: Experts are perplexed as to how Plasmamen can still play the trumpet with this helmet on. + components: + - type: Sprite + layers: + - state: icon + color: "#3c335b" + - state: accent-icon + color: "#f3f5f4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3c335b" + - state: accent-inhand-left + color: "#f3f5f4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3c335b" + - state: accent-inhand-right + color: "#f3f5f4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3c335b" + - state: accent-equipped-HELMET + color: "#f3f5f4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmReporter + name: reporter envirosuit helmet + description: An envirosuit helmet for the reporter. + components: + - type: Sprite + layers: + - state: icon + color: "#112334" + - state: accent-icon + color: "#79121b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#112334" + - state: accent-inhand-left + color: "#79121b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#112334" + - state: accent-inhand-right + color: "#79121b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#112334" + - state: accent-equipped-HELMET + color: "#79121b" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmGladiator + name: gladiator envirosuit helmet + description: Protects the head from toy spears and poisonous oxygen. + components: + - type: Sprite + layers: + - state: icon + color: "#dab13b" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#dab13b" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#dab13b" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#dab13b" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMantis + name: mantis' envirosuit helmet + description: An envirosuit helmet for the forensic mantis with a fancy gold stripe. + components: + - type: Sprite + layers: + - state: icon + color: "#46566d" + - state: accent-icon + color: "#7d2322" + - state: midaccent-icon + color: "#d4af48" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#46566d" + - state: accent-inhand-left + color: "#7d2322" + - state: midaccent-inhand-left + color: "#d4af48" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#46566d" + - state: accent-inhand-right + color: "#7d2322" + - state: midaccent-inhand-right + color: "#d4af48" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#46566d" + - state: accent-equipped-HELMET + color: "#7d2322" + - state: midaccent-equipped-HELMET + color: "#d4af48" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSafari + name: safari envirosuit helmet + description: Makes you a target for the locals. + components: + - type: Sprite + layers: + - state: icon + color: "#d3b986" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d3b986" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#d3b986" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#d3b986" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMartialGi + name: gi envirosuit helmet + description: A white envirosuit helmet with black stripes used for martial arts. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#3b3b3b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#3b3b3b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#3b3b3b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#3b3b3b" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmQM + name: logistics officer's envirosuit helmet + description: A special containment helmet designed for the Logistics Officer. + components: + - type: Sprite + layers: + - state: icon + color: "#bb934b" + - state: accent-icon + color: "#ffc000" + - state: midaccent-icon + color: "#d08200" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#bb934b" + - state: accent-inhand-left + color: "#ffc000" + - state: midaccent-inhand-left + color: "#d08200" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#bb934b" + - state: accent-inhand-right + color: "#ffc000" + - state: midaccent-inhand-right + color: "#d08200" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#bb934b" + - state: accent-equipped-HELMET + color: "#ffc000" + - state: midaccent-equipped-HELMET + color: "#d08200" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBoxing + name: boxing envirosuit helmet + description: A white envirosuit helmet with red stripes. + components: + - type: Sprite + layers: + - state: icon + color: "#eeeeee" + - state: accent-icon + color: "#a81818" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#eeeeee" + - state: accent-inhand-left + color: "#a81818" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#eeeeee" + - state: accent-inhand-right + color: "#a81818" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#eeeeee" + - state: accent-equipped-HELMET + color: "#a81818" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmAdminAssistant + name: administrative assistant's envirosuit helmet + description: A white envirosuit helmet with dark blue stripes. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#315266" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#315266" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#315266" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#315266" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBlackPink + name: black pink envirosuit helmet + description: How you like that envirosuit helmet? + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: accent-icon + color: "#f4a1b7" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: accent-inhand-left + color: "#f4a1b7" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#292929" + - state: accent-inhand-right + color: "#f4a1b7" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#292929" + - state: accent-equipped-HELMET + color: "#f4a1b7" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBlackPinkAlt + name: black pink envirosuit helmet + suffix: Alternative + description: This envirosuit helmet makes you want to kill this love. + components: + - type: Sprite + layers: + - state: icon + color: "#f4a1b7" + - state: accent-icon + color: "#292929" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#f4a1b7" + - state: accent-inhand-left + color: "#292929" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#f4a1b7" + - state: accent-inhand-right + color: "#292929" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#f4a1b7" + - state: accent-equipped-HELMET + color: "#292929" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBlueshield + name: blueshield's envirosuit helmet + description: A Plasmaman envirosuit helmet designed for the blueshield. + components: + - type: Sprite + layers: + - state: icon + color: "#535353" + - state: accent-icon + color: "#0044d4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#535353" + - state: accent-inhand-left + color: "#0044d4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#535353" + - state: accent-inhand-right + color: "#0044d4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#535353" + - state: accent-equipped-HELMET + color: "#0044d4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmTrans + name: trans envirosuit helmet + description: The preferred headgear of Transylvanian Plasmamen to prevent burning from oxygen. + components: + - type: Sprite + layers: + - state: icon + color: "#FFFFFF" + - state: accent-icon + color: "#ffb0c0" + - state: sideaccent-icon + color: "#5dd2ff" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#FFFFFF" + - state: accent-inhand-left + color: "#ffb0c0" + - state: sideaccent-inhand-left + color: "#5dd2ff" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#FFFFFF" + - state: accent-inhand-right + color: "#ffb0c0" + - state: sideaccent-inhand-right + color: "#5dd2ff" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#FFFFFF" + - state: accent-equipped-HELMET + color: "#ffb0c0" + - state: sideaccent-equipped-HELMET + color: "#5dd2ff" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmPrisonGuard + name: prison guard's envirosuit helmet + description: Hope a prisoner doesn't snatch this away from you! + components: + - type: Sprite + layers: + - state: icon + color: "#d76b00" + - state: accent-icon + color: "#363636" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d76b00" + - state: accent-inhand-left + color: "#363636" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#d76b00" + - state: accent-inhand-right + color: "#363636" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#d76b00" + - state: accent-equipped-HELMET + color: "#363636" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBrigmedic + name: corpsman envirosuit helmet + description: A helmet provided to Corpsmen Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#486782" + - state: accent-icon + color: "#2e2e2e" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#486782" + - state: accent-inhand-left + color: "#2e2e2e" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#486782" + - state: accent-inhand-right + color: "#2e2e2e" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#486782" + - state: accent-equipped-HELMET + color: "#2e2e2e" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmNanotrasenRepresentative + name: nanotrasen representative envirosuit helmet + description: A black envirosuit helmet worn by the NanoTrasen Representative, with black and gold accents. + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: accent-icon + color: "#ffce5b" + - state: midaccent-icon + color: "#266199" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: accent-inhand-left + color: "#ffce5b" + - state: midaccent-inhand-left + color: "#266199" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#292929" + - state: accent-inhand-right + color: "#ffce5b" + - state: midaccent-inhand-right + color: "#266199" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#292929" + - state: accent-equipped-HELMET + color: "#ffce5b" + - state: midaccent-equipped-HELMET + color: "#266199" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMagistrate + name: magistrate envirosuit helmet + description: A plain white envirosuit with yellow stripes. + components: + - type: Sprite + layers: + - state: icon + color: "#ebebeb" + - state: accent-icon + color: "#ffce5b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ebebeb" + - state: accent-inhand-left + color: "#ffce5b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ebebeb" + - state: accent-inhand-right + color: "#ffce5b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ebebeb" + - state: accent-equipped-HELMET + color: "#ffce5b" + - state: visor-equipped-HELMET + +# Color envirohelms +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmColorWhite + name: white envirosuit helmet + description: A generic white envirohelm. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/white.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/white.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorGrey + name: grey envirosuit helmet + description: A grey envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#b3b3b3" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b3b3b3" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#b3b3b3" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#b3b3b3" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorBlack + name: black envirosuit helmet + description: A black envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#3f3f3f" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3f3f3f" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3f3f3f" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3f3f3f" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorRed + name: red envirosuit helmet + description: A red envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#d1423f" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d1423f" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#d1423f" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#d1423f" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorGreen + name: green envirosuit helmet + description: A green envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#9ed63a" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9ed63a" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#9ed63a" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#9ed63a" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorDarkGreen + name: dark green envirosuit helmet + description: A dark green envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#79CC26" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#79CC26" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#79CC26" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#79CC26" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorBlue + name: blue envirosuit helmet + description: A blue envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#52aecc" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#52aecc" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#52aecc" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#52aecc" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorDarkBlue + name: dark blue envirosuit helmet + description: A dark blue envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#3285ba" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3285ba" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3285ba" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3285ba" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorTeal + name: teal envirosuit helmet + description: A teal envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#77f3b7" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#77f3b7" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#77f3b7" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#77f3b7" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorMaroon + name: maroon envirosuit helmet + description: A maroon envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#cc295f" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#cc295f" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#cc295f" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#cc295f" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorPink + name: pink envirosuit helmet + description: A pink envirosuit helmet. So fetch! + components: + - type: Sprite + layers: + - state: icon + color: "#ff8cff" + - state: accent-icon + color: "#8b3e8c" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8cff" + - state: accent-inhand-left + color: "#8b3e8c" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ff8cff" + - state: accent-inhand-right + color: "#8b3e8c" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ff8cff" + - state: accent-equipped-HELMET + color: "#8b3e8c" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorYellow + name: yellow envirosuit helmet + description: A yellow envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#ffe14d" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffe14d" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffe14d" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffe14d" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorPurple + name: purple envirosuit helmet + description: A purple envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#9f70cc" + - state: accent-icon + color: "#843b85" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9f70cc" + - state: accent-inhand-left + color: "#843b85" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#9f70cc" + - state: accent-inhand-right + color: "#843b85" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#9f70cc" + - state: accent-equipped-HELMET + color: "#843b85" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorOrange + name: orange envirosuit helmet + description: An orange envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8c19" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8c19" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ff8c19" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ff8c19" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorLightBrown + name: light brown envirosuit helmet + description: A light brown envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#a17229" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a349a4" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#a17229" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#a17229" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorBrown + name: brown envirosuit helmet + description: A brown envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#543e1b" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#543e1b" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#543e1b" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#543e1b" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorRed + name: red enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with red accents. Fancy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#99211f" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#99211f" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#99211f" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#99211f" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorOrange + name: orange enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with orange accents. Zesty! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#c2680f" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#c2680f" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#c2680f" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#c2680f" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorGreen + name: green enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with green accents. Leafy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#5b991f" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#5b991f" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#5b991f" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#5b991f" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorBlue + name: blue enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with blue accents. Cool! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#2b5c99" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#2b5c99" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#2b5c99" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#2b5c99" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksMNK + name: MNK enviroslacks helmet + description: A sleek envirohelm brought to you by MNK. Classic! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#363636" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#363636" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#363636" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#363636" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksMNKAlt + name: monochrome enviroslacks helmet + description: A sleek envirohelm brought to you by MNK. Noir! + suffix: Alternative + components: + - type: Sprite + layers: + - state: icon + color: "#3b3b3b" + - state: accent-icon + color: "#d6d6d6" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3b3b3b" + - state: accent-inhand-left + color: "#d6d6d6" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3b3b3b" + - state: accent-inhand-right + color: "#d6d6d6" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3b3b3b" + - state: accent-equipped-HELMET + color: "#d6d6d6" + - state: visor-equipped-HELMET diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 1b350a97674e..74561ef19755 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -137,6 +137,18 @@ coefficient: 0.01 - type: FireProtection reduction: 0.75 # almost perfectly sealed, atmos firesuit is better + - type: IgniteFromGasImmunity + parts: + - Torso + - Groin + - LeftArm + - LeftHand + - RightArm + - RightHand + - LeftLeg + - LeftFoot + - RightLeg + - RightFoot - type: ClothingSpeedModifier walkModifier: 0.4 sprintModifier: 0.6 @@ -164,6 +176,7 @@ - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites - AllowLamiaHardsuit - FullBodyOuter + - PlasmamanSafe - type: Clothing equipDelay: 2.5 # Hardsuits are heavy and take a while to put on/off. unequipDelay: 2.5 @@ -204,6 +217,18 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.01 # Not complete protection from fire + - type: IgniteFromGasImmunity + parts: + - Torso + - Groin + - LeftArm + - LeftHand + - RightArm + - RightHand + - LeftLeg + - LeftFoot + - RightLeg + - RightFoot - type: ClothingSpeedModifier walkModifier: 0.8 sprintModifier: 0.8 @@ -214,6 +239,7 @@ tags: - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - PlasmamanSafe - type: Clothing equipDelay: 1.25 # Softsuits are easier to put on and off unequipDelay: 1 diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml index cea803d104f0..b10a1c95e670 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml @@ -153,3 +153,108 @@ - state: icon_flipped map: ["foldedLayer"] visible: true + +- type: entity + abstract: true + parent: UnsensoredClothingUniformBase + id: UnsensoredClothingUniformEnvirosuitBase + components: + - type: IgniteFromGasImmunity + parts: + - Torso + - Groin + - LeftArm + - LeftHand + - RightArm + - RightHand + - LeftLeg + - LeftFoot + - RightLeg + - RightFoot + - type: Clothing + equipDelay: 0.4 + unequipDelay: 0.6 # Slightly higher delay to protect against accidental unequips + femaleMask: NoMask + - type: SelfExtinguisher + cooldown: 100 + requiresIgniteFromGasImmune: true + sound: + path: /Audio/Effects/extinguish.ogg + - type: LimitedCharges + maxCharges: 4 + charges: 4 + - type: Armor + modifiers: + coefficients: + Caustic: 0.85 + - type: Tag + tags: + - WhitelistChameleon + - PlasmamanSafe + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET + - type: GuideHelp # While the playerbase is getting introduced to Plasmamen, add their guidebook here + guides: [ Plasmaman ] + +- type: entity + abstract: true + parent: UnsensoredClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitBase + components: + - type: SuitSensor + - type: DeviceNetwork + deviceNetId: Wireless + transmitFrequencyId: SuitSensor + - type: WirelessNetworkConnection + range: 1200 + - type: StationLimitedNetwork + +- type: entity + abstract: true + parent: UnsensoredClothingUniformEnvirosuitBase + id: UnsensoredClothingUniformEnvirosuitCustomBase + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/custom.rsi + layers: + - state: icon + color: "#FFFFFF" + - state: accent-icon + color: "#FF0000" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#FFFFFF" + - state: accent-inhand-left + color: "#FF0000" + right: + - state: inhand-right + color: "#FFFFFF" + - state: accent-inhand-right + color: "#FF0000" + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/custom.rsi + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#FFFFFF" + - state: accent-equipped-INNERCLOTHING + color: "#FF0000" + - state: loweraccent-equipped-INNERCLOTHING + color: "#FF0000" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" # Recommended default soles color + +- type: entity + abstract: true + parent: UnsensoredClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitCustomBase + components: + - type: SuitSensor + - type: DeviceNetwork + deviceNetId: Wireless + transmitFrequencyId: SuitSensor + - type: WirelessNetworkConnection + range: 1200 + - type: StationLimitedNetwork diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml new file mode 100644 index 000000000000..04fae7ee00ad --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml @@ -0,0 +1,3091 @@ +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuit + name: plasma envirosuit + description: A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitAtmos + name: atmospherics envirosuit + description: An air-tight suit designed to be used by Plasmamen employed as atmos technicians. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/atmos.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/atmos.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCargo + name: cargo tech envirosuit + description: An envirosuit used by Plasmamen cargo technicians. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/cargo.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/cargo.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCaptain + name: captain's envirosuit + description: It's a blue envirosuit with some gold markings denoting the rank of "Captain". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/captain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/captain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChiefEngineer + name: chief engineer's envirosuit + description: An air-tight suit designed to be used by Plasmamen insane enough to achieve the rank of "Chief Engineer". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/ce.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/ce.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChaplain + name: chaplain's envirosuit + description: An envirosuit specially designed for only the most pious of Plasmamen. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chaplain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chaplain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChef + name: chef's envirosuit + description: A white Plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chef.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chef.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChemist + name: chemistry envirosuit + description: A Plasmaman envirosuit designed for chemists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chemist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chemist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitClown + name: clown envirosuit + description: HONK! + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/clown.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/clown.rsi + - type: Tag + tags: + - ClownSuit + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCMO + name: chief medical officer's envirosuit + description: It's an envirosuit worn by those with the experience to be "Chief Medical Officer". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/cmo.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/cmo.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitEngineering + name: engineering envirosuit + description: An air-tight suit designed to be used by Plasmamen employed as engineers, the usual purple stripes being replaced by engineering's orange. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/engineering.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/engineering.rsi + +- type: entity + parent: ClothingUniformEnvirosuitEnviroslacksColorOrange + id: ClothingUniformEnvirosuitDetective + name: detective envirosuit + description: The pet project of a particularly posh Plasmaman, this custom suit was modified by Nanotrasen for its detectives. + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHoP + name: head of personnel's envirosuit + description: It's an envirosuit worn by someone who works in the position of "Head of Personnel". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hop.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hop.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHoS + name: head of security's envirosuit + description: A Plasmaman containment suit decorated for those few with the dedication to achieve the position of Head of Security. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hos.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hos.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHydroponics + name: hydroponics envirosuit + description: A green and blue envirosuit designed to protect Plasmamen from minor plant-related injuries. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hydroponics.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hydroponics.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitJanitor + name: janitor envirosuit + description: A grey and purple envirosuit designated for Plasmamen janitors. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/janitor.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/janitor.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitAncientVoid + name: NTSRA envirosuit + description: Made out of a modified NTSRA vacsuit, this non-spaceworthy suit was NanoTrasen's first designed envirosuit for Plasmamen. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/ancientvoid.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/ancientvoid.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitMedicalDoctor + name: medical doctor's envirosuit + description: A suit designed for the station's more plasma-based doctors. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/medical.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/medical.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitGenetics + name: genetics envirosuit + description: A Plasmaman envirosuit designed for geneticists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/genetics.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/genetics.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitMime + name: mime envirosuit + description: It's not very colourful. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/mime.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/mime.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitParamedic + name: paramedic envirosuit + description: A suit designed for the station's Plasmaman paramedics. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/paramedic.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/paramedic.rsi + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitPrisoner + name: prisoner envirosuit + description: An orange envirosuit identifying and protecting a criminal Plasmaman. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8300" + - state: plaintop-icon + color: "#ff8300" + - state: accentprisoner-icon + color: "#404040" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8300" + - state: plaintop-inhand-left + color: "#ff8300" + - state: accentprisoner-inhand-left + color: "#404040" + right: + - state: inhand-right + color: "#ff8300" + - state: plaintop-inhand-right + color: "#ff8300" + - state: accentprisoner-inhand-right + color: "#404040" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ff8300" + - state: plaintop-equipped-INNERCLOTHING + color: "#ff8300" + - state: accentprisoner-equipped-INNERCLOTHING + color: "#404040" + - state: loweraccent-equipped-INNERCLOTHING + color: "#404040" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + - type: SuitSensor + controlsLocked: true + randomMode: false + mode: SensorCords + - type: Tag + tags: + - ClothMade + - WhitelistChameleon + - PlasmamanSafe + - PrisonUniform + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitResearchDirector + name: mystagogue's envirosuit + description: It's an envirosuit worn by those with the know-how to achieve the position of "Mystagogue". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/rd.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/rd.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitRoboticist + name: roboticist envirosuit + description: A Plasmaman envirosuit designed for roboticists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/roboticist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/roboticist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitSalvage + name: salvage envirosuit + description: An air-tight khaki suit designed for salvage operations by Plasmamen. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/salvage.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/salvage.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitScientist + name: science envirosuit + description: A Plasmaman envirosuit designed for scientists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/scientist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/scientist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSec + name: security envirosuit + description: A Plasmaman containment suit designed for security officers. + components: + - type: Sprite + layers: + - state: icon + color: "#8f3132" + - state: accent2-icon + color: "#2e2e2e" + - state: accenthighlight-icon + color: "#313e5a" + - state: clip-icon + color: "#730000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#2e2e2e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#8f3132" + - state: accent2-inhand-left + color: "#2e2e2e" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: clip-inhand-left + color: "#730000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#2e2e2e" + right: + - state: inhand-right + color: "#8f3132" + - state: accent2-inhand-right + color: "#2e2e2e" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: clip-inhand-right + color: "#730000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#2e2e2e" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#8f3132" + - state: accent2-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: clip-equipped-INNERCLOTHING + color: "#730000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: pants-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: loweraccent-equipped-INNERCLOTHING + color: "#732829" + - state: shoesdark-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: soles-equipped-INNERCLOTHING + color: "#7a7a7a" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSecBlue + name: blue security envirosuit + description: A cool blue enviroshirt over charcoal trousers, for the calm and collected Plasmaman officer. + components: + - type: Sprite + layers: + - state: icon + color: "#b9c1d9" + - state: accent-icon + color: "#2e2e2e" + - state: accent3_chestonly-icon + color: "#36476b" + - state: accenthighlight-icon + color: "#313e5a" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#232938" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b9c1d9" + - state: accent-inhand-left + color: "#2e2e2e" + - state: accent3_chestonly-inhand-left + color: "#36476b" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#232938" + right: + - state: inhand-right + color: "#b9c1d9" + - state: accent-inhand-right + color: "#2e2e2e" + - state: accent3_chestonly-inhand-right + color: "#36476b" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#232938" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#b9c1d9" + - state: accentalt_noback-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: accent3_chestonly-equipped-INNERCLOTHING + color: "#36476b" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: pants-equipped-INNERCLOTHING + color: "#232938" + - state: backaccent-equipped-INNERCLOTHING + color: "#36476b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#36476b" + - state: shoesdark-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: soles-equipped-INNERCLOTHING + color: "#7a7a7a" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSecGrey + name: grey security envirosuit + description: Light grey enviroslacks with bright red highlights, for dedicated and responsive security officers. + components: + - type: Sprite + layers: + - state: icon + color: "#7e7e7e" + - state: plaintop-icon + color: "#7e7e7e" + - state: accent-icon + color: "#333333" + - state: accenthighlight-icon + color: "#313e5a" + - state: tie-icon + color: "#a61d1d" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#333333" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#7e7e7e" + - state: plaintop-inhand-left + color: "#7e7e7e" + - state: accent-inhand-left + color: "#333333" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: tie-inhand-left + color: "#a61d1d" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#333333" + right: + - state: inhand-right + color: "#7e7e7e" + - state: plaintop-inhand-right + color: "#7e7e7e" + - state: accent-inhand-right + color: "#333333" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: tie-inhand-right + color: "#a61d1d" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#333333" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#7e7e7e" + - state: plaintop-equipped-INNERCLOTHING + color: "#7e7e7e" + - state: accentalt-equipped-INNERCLOTHING + color: "#333333" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: tie-equipped-INNERCLOTHING + color: "#a61d1d" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: cuffs-equipped-INNERCLOTHING + color: "#a11a1a" + - state: cuffs_upper-equipped-INNERCLOTHING + color: "#c92323" + - state: pants-equipped-INNERCLOTHING + color: "#333333" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a61d1d" + - state: shoesdark-equipped-INNERCLOTHING + color: "#333333" + - state: soles-equipped-INNERCLOTHING + color: "#7a7a7a" + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitVirology + name: virology envirosuit + description: The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/virology.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/virology.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitWarden + name: warden's envirosuit + description: A Plasmaman containment suit designed for the warden, white stripes being added to differentiate them from other members of security. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/warden.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/warden.rsi + +- type: entity + parent: UnsensoredClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitOperative + name: operative envirosuit + description: A sinister looking envirosuit, for the most elite of bony operatives. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + - type: LimitedCharges + maxCharges: 6 + charges: 6 + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitTacticool + name: tacticool envirosuit + description: A sinister looking envirosuit, for the boniest of operatives. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + # Too cool for sensors to be on + - type: SuitSensor + randomMode: false + mode: SensorOff + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCentcomAgent + name: CentCom agent's envirosuit + description: An envirosuit tailored for CentCom's legal team. Smells of burnt coffee. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/centcom_agent.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/centcom_agent.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCentcomOfficial + name: CentCom official's envirosuit + description: It's an envirosuit worn by CentCom's officials. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/centcom_official.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/centcom_official.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCentcomOfficer + name: CentCom officer's envirosuit + description: It's an envirosuit worn by CentCom Officers. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/centcom_officer.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/centcom_officer.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitBlueshield + name: blueshield's envirosuit + description: An envirosuit designed for Plasmamen employed as the Blueshield. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/blueshield_officer.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/blueshield_officer.rsi + - type: Armor + modifiers: + coefficients: + Blunt: 0.95 + Heat: 0.95 + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitCourier + name: courier's envirosuit + description: An envirosuit tailored for the courier. + components: + - type: Sprite + layers: + - state: icon + color: "#4a281f" + - state: accent2-icon + color: "#c2911e" + - state: clip-icon + color: "#c2911e" + - state: clip_right-icon + color: "#c2911e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#4a281f" + - state: accent2-inhand-left + color: "#c2911e" + - state: clip-inhand-left + color: "#c2911e" + - state: clip_right-inhand-left + color: "#c2911e" + right: + - state: inhand-right + color: "#4a281f" + - state: accent2-inhand-right + color: "#c2911e" + - state: clip-inhand-right + color: "#c2911e" + - state: clip_right-inhand-right + color: "#c2911e" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#4a281f" + - state: accent2-equipped-INNERCLOTHING + color: "#c2911e" + - state: clip-equipped-INNERCLOTHING + color: "#c2911e" + - state: clip_right-equipped-INNERCLOTHING + color: "#c2911e" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#c2911e" + - state: soles-equipped-INNERCLOTHING + color: "#c2911e" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMailCarrier + name: mail carrier's envirosuit + description: An envirosuit tailored for the mail carrier. The color pattern makes pitbulls go wild. + components: + - type: Sprite + layers: + - state: icon + color: "#394dc6" + - state: accent-icon + color: "#d82927" + - state: accent2_chestonly-icon + color: "#dcdcdc" + - state: clip-icon + color: "#dcdcdc" + - state: clip_right-icon + color: "#c2c2c2" + - state: belt-icon + color: "#cfcfcf" + - state: beltbuckle_small-icon + color: "#f0990c" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#394dc6" + - state: accent-inhand-left + color: "#d82927" + - state: accent2_chestonly-inhand-left + color: "#dcdcdc" + - state: clip-inhand-left + color: "#dcdcdc" + - state: clip_right-inhand-left + color: "#c2c2c2" + - state: belt-inhand-left + color: "#cfcfcf" + - state: beltbuckle_small-inhand-left + color: "#f0990c" + right: + - state: inhand-right + color: "#394dc6" + - state: accent-inhand-right + color: "#d82927" + - state: accent2_chestonly-inhand-right + color: "#dcdcdc" + - state: clip-inhand-right + color: "#dcdcdc" + - state: clip_right-inhand-right + color: "#c2c2c2" + - state: belt-inhand-right + color: "#cfcfcf" + - state: beltbuckle_small-inhand-right + color: "#f0990c" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#394dc6" + - state: accentalt_noback-equipped-INNERCLOTHING + color: "#d82927" + - state: accent2_chestonly-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: clip-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: clip_right-equipped-INNERCLOTHING + color: "#c2c2c2" + - state: belt-equipped-INNERCLOTHING + color: "#cfcfcf" + - state: beltbuckle_small-equipped-INNERCLOTHING + color: "#f0990c" + - state: backaccent-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: soles-equipped-INNERCLOTHING + color: "#dcdcdc" + - type: ClothingAddFaction + faction: Mailman + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMusician + name: musician's envirosuit + description: An envirosuit to play music with. + components: + - type: Sprite + layers: + - state: icon + color: "#3c335b" + - state: plaintop-icon + color: "#3c335b" + - state: accent2-icon + color: "#f3f5f4" + - state: pin-icon + color: "#db2525" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3c335b" + - state: accent2-inhand-left + color: "#f3f5f4" + - state: pin-inhand-left + color: "#db2525" + right: + - state: inhand-right + color: "#3c335b" + - state: accent2-inhand-right + color: "#f3f5f4" + - state: pin-inhand-right + color: "#db2525" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3c335b" + - state: accent2-equipped-INNERCLOTHING + color: "#f3f5f4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#f3f5f4" + - state: pin-equipped-INNERCLOTHING + color: "#db2525" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitReporter + name: reporter envirosuit + description: An envirosuit for the news-oriented Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#112334" + - state: accent2-icon + color: "#79121b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#112334" + - state: accent2-inhand-left + color: "#79121b" + right: + - state: inhand-right + color: "#112334" + - state: accent2-inhand-right + color: "#79121b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#112334" + - state: accent2-equipped-INNERCLOTHING + color: "#79121b" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#79121b" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitGladiator + name: gladiator envirosuit + description: Made for bloodthirsty Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#dab13b" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#dab13b" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#dab13b" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#dab13b" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#a349a4" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMantis + name: mantis' envirosuit + description: Hunting down psionics in the safety of this envirosuit. + components: + - type: Sprite + layers: + - state: icon + color: "#46566d" + - state: pants-icon + color: "#7d2322" + - state: belt-icon + color: "#51321a" + - state: beltbuckle-icon + color: "#dcbb60" + - state: accent-icon + color: "#d4af48" + - state: buttons-icon + color: "#997d30" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#46566d" + - state: pants-inhand-left + color: "#7d2322" + - state: belt-inhand-left + color: "#51321a" + - state: beltbuckle-inhand-left + color: "#dcbb60" + - state: accent-inhand-left + color: "#d4af48" + - state: buttons-inhand-left + color: "#997d30" + right: + - state: inhand-right + color: "#46566d" + - state: pants-inhand-right + color: "#7d2322" + - state: belt-inhand-right + color: "#51321a" + - state: beltbuckle-inhand-right + color: "#dcbb60" + - state: accent-inhand-right + color: "#d4af48" + - state: buttons-inhand-right + color: "#997d30" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#46566d" + - state: pants-equipped-INNERCLOTHING + color: "#7d2322" + - state: belt-equipped-INNERCLOTHING + color: "#51321a" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#dcbb60" + - state: accentalt-equipped-INNERCLOTHING + color: "#d4af48" + - state: loweraccent-equipped-INNERCLOTHING + color: "#d4af48" + - state: buttons-equipped-INNERCLOTHING + color: "#997d30" + - state: soles-equipped-INNERCLOTHING + color: "#d4af48" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSafari + name: safari envirosuit + description: Perfect for a jungle excursion. + components: + - type: Sprite + layers: + - state: icon + color: "#d3b986" + - state: accent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d3b986" + - state: accent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#d3b986" + - state: accent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#d3b986" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMartialGi + name: gi envirosuit + description: A flowy envirosuit tailor-made for martial arts that doesn't restrict your mobility. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#3b3b3b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#3b3b3b" + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#3b3b3b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: accent-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitQM + name: logistics officer's envirosuit + description: An air-tight suit designed to be used by Plasmamen insane enough to achieve the rank of "Logistics Officer". + components: + - type: Sprite + layers: + - state: icon + color: "#bb934b" + - state: accent-icon + color: "#ffc000" + - state: accent3_chestonly-icon + color: "#d08200" + - state: clip-icon + color: "#c0c0c0" + - state: clip_right-icon + color: "#a7a7a7" + - state: pants-icon + color: "#8a8a8a" + - state: belt-icon + color: "#6f6f6f" + - state: beltbuckle-icon + color: "#bfbfbf" + - state: buttons-icon + color: "#535353" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#bb934b" + - state: accent-inhand-left + color: "#ffc000" + - state: accent3_chestonly-inhand-left + color: "#d08200" + - state: clip-inhand-left + color: "#c0c0c0" + - state: clip_right-inhand-left + color: "#a7a7a7" + - state: pants-inhand-left + color: "#8a8a8a" + - state: belt-inhand-left + color: "#6f6f6f" + - state: beltbuckle-inhand-left + color: "#bfbfbf" + - state: buttons-inhand-left + color: "#535353" + right: + - state: inhand-right + color: "#bb934b" + - state: accent-inhand-right + color: "#ffc000" + - state: accent3_chestonly-inhand-right + color: "#d08200" + - state: clip-inhand-right + color: "#c0c0c0" + - state: clip_right-inhand-right + color: "#a7a7a7" + - state: pants-inhand-right + color: "#8a8a8a" + - state: belt-inhand-right + color: "#6f6f6f" + - state: beltbuckle-inhand-right + color: "#bfbfbf" + - state: buttons-inhand-right + color: "#535353" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#bb934b" + - state: accentalt-equipped-INNERCLOTHING + color: "#ffc000" + - state: accent3_chestonly-equipped-INNERCLOTHING + color: "#d08200" + - state: clip-equipped-INNERCLOTHING + color: "#c0c0c0" + - state: clip_right-equipped-INNERCLOTHING + color: "#a7a7a7" + - state: cuffs-equipped-INNERCLOTHING + color: "#d08200" + - state: cuffs_upper-equipped-INNERCLOTHING + color: "#6e6e6e" + - state: pants-equipped-INNERCLOTHING + color: "#8a8a8a" + - state: belt-equipped-INNERCLOTHING + color: "#6f6f6f" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#bfbfbf" + - state: buttons-equipped-INNERCLOTHING + color: "#535353" + - state: loweraccent-equipped-INNERCLOTHING + color: "#ffc000" + - state: shoesdark-equipped-INNERCLOTHING + color: "#828282" + - state: soles-equipped-INNERCLOTHING + color: "#ffc000" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBoxing + name: boxing envirosuit + description: Used by Plasmamen boxers. + components: + - type: Sprite + layers: + - state: icon + color: "#eeeeee" + - state: accent3-icon + color: "#a81818" + - state: pants-icon + color: "#a81818" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#eeeeee" + - state: accent3-inhand-left + color: "#a81818" + - state: pants-inhand-left + color: "#a81818" + right: + - state: inhand-right + color: "#eeeeee" + - state: accent3-inhand-right + color: "#a81818" + - state: pants-inhand-right + color: "#a81818" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#eeeeee" + - state: accent3-equipped-INNERCLOTHING + color: "#a81818" + - state: pants-equipped-INNERCLOTHING + color: "#a81818" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#eeeeee" + - state: soles-equipped-INNERCLOTHING + color: "#eeeeee" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitAdminAssistant + name: administrative assistant's envirosuit + description: An envirosuit worn by the Administrative Assistant. Smells of burnt coffee. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: pants-icon + color: "#313131" + - state: belt-icon + color: "#4d4d4d" + - state: accent-icon + color: "#315266" + - state: tie-icon + color: "#315266" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: pants-inhand-left + color: "#313131" + - state: belt-inhand-left + color: "#4d4d4d" + - state: accent-inhand-left + color: "#315266" + - state: tie-inhand-left + color: "#315266" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: pants-inhand-right + color: "#313131" + - state: belt-inhand-right + color: "#4d4d4d" + - state: accent-inhand-right + color: "#315266" + - state: tie-inhand-right + color: "#315266" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: pants-equipped-INNERCLOTHING + color: "#313131" + - state: belt-equipped-INNERCLOTHING + color: "#4d4d4d" + - state: accent-equipped-INNERCLOTHING + color: "#315266" + - state: loweraccent-equipped-INNERCLOTHING + color: "#315266" + - state: tie-equipped-INNERCLOTHING + color: "#315266" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBlackPink + name: black pink envirosuit + description: Black pink envirosuit in your area! + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: plaintop-icon + color: "#292929" + - state: accent-icon + color: "#f4a1b7" + - state: heart-icon + color: "#f4a1b7" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: plaintop-inhand-left + color: "#292929" + - state: accent-inhand-left + color: "#f4a1b7" + - state: heart-inhand-left + color: "#f4a1b7" + right: + - state: inhand-right + color: "#292929" + - state: plaintop-inhand-right + color: "#292929" + - state: accent-inhand-right + color: "#f4a1b7" + - state: heart-inhand-right + color: "#f4a1b7" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#292929" + - state: plaintop-equipped-INNERCLOTHING + color: "#292929" + - state: accent-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: heart-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: loweraccent-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: soles-equipped-INNERCLOTHING + color: "#f4a1b7" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBlackPinkAlt + name: black pink envirosuit + suffix: Alternative + description: Black pink envirosuit in your area! + components: + - type: Sprite + layers: + - state: icon + color: "#f4a1b7" + - state: plaintop-icon + color: "#f4a1b7" + - state: accent-icon + color: "#292929" + - state: heart-icon + color: "#292929" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#f4a1b7" + - state: plaintop-inhand-left + color: "#f4a1b7" + - state: accent-inhand-left + color: "#292929" + - state: heart-inhand-left + color: "#292929" + right: + - state: inhand-right + color: "#f4a1b7" + - state: plaintop-inhand-right + color: "#f4a1b7" + - state: accent-inhand-right + color: "#292929" + - state: heart-inhand-right + color: "#292929" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#f4a1b7" + - state: plaintop-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: accent-equipped-INNERCLOTHING + color: "#292929" + - state: heart-equipped-INNERCLOTHING + color: "#292929" + - state: loweraccent-equipped-INNERCLOTHING + color: "#292929" + - state: soles-equipped-INNERCLOTHING + color: "#292929" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitTrans + name: trans envirosuit + description: The signature envirosuit of Transylvanian Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: accent-icon + color: "#5dd2ff" + - state: heart-icon + color: "#ffb0c0" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#5dd2ff" + - state: heart-inhand-left + color: "#ffb0c0" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#5dd2ff" + - state: heart-inhand-right + color: "#ffb0c0" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: accentalt-equipped-INNERCLOTHING + color: "#5dd2ff" + - state: heart-equipped-INNERCLOTHING + color: "#ffb0c0" + - state: cuffs-equipped-INNERCLOTHING + color: "#ffb0c0" + - state: loweraccent2_top-equipped-INNERCLOTHING + color: "#5dd2ff" + - state: loweraccent2_bottom-equipped-INNERCLOTHING + color: "#ffb0c0" + - state: soles-equipped-INNERCLOTHING + color: "#5dd2ff" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitPrisonGuard + name: prison guard's envirosuit + description: A comfortable, durable, envirosuit made to keep Plasmamen prison staff comfortable and safe. + components: + - type: Sprite + layers: + - state: icon + color: "#d76b00" + - state: accent3-icon + color: "#363636" + - state: accenthighlight-icon + color: "#313e5a" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#363636" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d76b00" + - state: accent3-inhand-left + color: "#363636" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#363636" + right: + - state: inhand-right + color: "#d76b00" + - state: accent3-inhand-right + color: "#363636" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#363636" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#d76b00" + - state: accent3-equipped-INNERCLOTHING + color: "#363636" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: pants-equipped-INNERCLOTHING + color: "#363636" + - state: loweraccent-equipped-INNERCLOTHING + color: "#d76b00" + - state: shoesdark-equipped-INNERCLOTHING + color: "#363636" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBrigmedic + name: corpsman envirosuit + description: An envirosuit assigned to corpsmen Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#486782" + - state: accent-icon + color: "#333333" + - state: accent2_chestonly-icon + color: "#3b3b3b" + - state: accenthighlight-icon + color: "#2f74b8" + - state: buttons-icon + color: "#b0bdca" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#3b3b3b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#486782" + - state: accent-inhand-left + color: "#333333" + - state: accent2_chestonly-inhand-left + color: "#3b3b3b" + - state: accenthighlight-inhand-left + color: "#2f74b8" + - state: buttons-inhand-left + color: "#b0bdca" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#3b3b3b" + right: + - state: inhand-right + color: "#486782" + - state: accent-inhand-right + color: "#333333" + - state: accent2_chestonly-inhand-right + color: "#3b3b3b" + - state: accenthighlight-inhand-right + color: "#2f74b8" + - state: buttons-inhand-right + color: "#b0bdca" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#3b3b3b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#486782" + - state: accentalt-equipped-INNERCLOTHING + color: "#333333" + - state: accent2_chestonly-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#2f74b8" + - state: buttons-equipped-INNERCLOTHING + color: "#b0bdca" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: cuffs-equipped-INNERCLOTHING + color: "#bfcddb" + - state: pants-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#9ca7b3" + - state: shoesdark-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: soles-equipped-INNERCLOTHING + color: "#bfcddb" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitNanotrasenRepresentative + name: nanotrasen representative envirosuit + description: A black envirosuit worn by officials. + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: accent3_chestonly-icon + color: "#266199" + - state: accent2-icon + color: "#ffce5b" + - state: buttons-icon + color: "#f3f5f4" + - state: belt-icon + color: "#87511b" + - state: beltbuckle-icon + color: "#969696" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: accent3_chestonly-inhand-left + color: "#266199" + - state: accent2-inhand-left + color: "#ffce5b" + - state: buttons-inhand-left + color: "#f3f5f4" + - state: belt-inhand-left + color: "#87511b" + - state: beltbuckle-inhand-left + color: "#969696" + right: + - state: inhand-right + color: "#292929" + - state: accent3_chestonly-inhand-right + color: "#266199" + - state: accent2-inhand-right + color: "#ffce5b" + - state: buttons-inhand-right + color: "#f3f5f4" + - state: belt-inhand-right + color: "#87511b" + - state: beltbuckle-inhand-right + color: "#969696" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#292929" + - state: accent3_chestonly-equipped-INNERCLOTHING + color: "#266199" + - state: accent2-equipped-INNERCLOTHING + color: "#ffce5b" + - state: buttons-equipped-INNERCLOTHING + color: "#f3f5f4" + - state: cuffs-equipped-INNERCLOTHING + color: "#ffce5b" + - state: cuffs_upper-equipped-INNERCLOTHING + color: "#0057a8" + - state: belt-equipped-INNERCLOTHING + color: "#87511b" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#969696" + - state: loweraccent-equipped-INNERCLOTHING + color: "#266199" + - state: soles-equipped-INNERCLOTHING + color: "#ffce5b" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMagistrate + name: magistrate envirosuit + description: The envirosuit that doles out justice. + components: + - type: Sprite + layers: + - state: icon + color: "#ebebeb" + - state: plaintop-icon + color: "#ebebeb" + - state: tie-icon + color: "#333333" + - state: tieclip-icon + color: "#e6b952" + - state: accent-icon + color: "#ffce5b" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#634737" + - state: beltbuckle-icon + color: "#ffce5b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ebebeb" + - state: plaintop-inhand-left + color: "#ebebeb" + - state: tie-inhand-left + color: "#333333" + - state: tieclip-inhand-left + color: "#e6b952" + - state: accent-inhand-left + color: "#ffce5b" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#634737" + - state: beltbuckle-inhand-left + color: "#ffce5b" + right: + - state: inhand-right + color: "#ebebeb" + - state: plaintop-inhand-right + color: "#ebebeb" + - state: tie-inhand-right + color: "#333333" + - state: tieclip-inhand-right + color: "#e6b952" + - state: accent-inhand-right + color: "#ffce5b" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#634737" + - state: beltbuckle-inhand-right + color: "#ffce5b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ebebeb" + - state: plaintop-equipped-INNERCLOTHING + color: "#ebebeb" + - state: tie-equipped-INNERCLOTHING + color: "#333333" + - state: tieclip-equipped-INNERCLOTHING + color: "#e6b952" + - state: accentalt-equipped-INNERCLOTHING + color: "#ffce5b" + - state: cuffs-equipped-INNERCLOTHING + color: "#634737" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#634737" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#ffce5b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#ffce5b" + - state: soles-equipped-INNERCLOTHING + color: "#634737" + + +# The Tortured Enviroslacks Department (Skubman's Version) +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitEnviroslacks + name: enviroslacks + description: The pet project of a particularly posh Plasmaman. Professional! + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/enviroslacks.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/enviroslacks.rsi + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksNegative + name: negative enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant has inverted colors. Dapper! + components: + - type: Sprite + layers: + - state: icon + color: "#3f3f3f" + - state: plaintop-icon + color: "#3f3f3f" + - state: tie-icon + color: "#a349a4" + - state: accent-icon + color: "#a349a4" + - state: pants-icon + color: "#f2f2f2" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3f3f3f" + - state: plaintop-inhand-left + color: "#3f3f3f" + - state: tie-inhand-left + color: "#a349a4" + - state: accent-inhand-left + color: "#a349a4" + - state: pants-inhand-left + color: "#f2f2f2" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#3f3f3f" + - state: plaintop-inhand-right + color: "#3f3f3f" + - state: tie-inhand-right + color: "#a349a4" + - state: accent-inhand-right + color: "#a349a4" + - state: pants-inhand-right + color: "#f2f2f2" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3f3f3f" + - state: plaintop-equipped-INNERCLOTHING + color: "#3f3f3f" + - state: tie-equipped-INNERCLOTHING + color: "#a349a4" + - state: accentalt-equipped-INNERCLOTHING + color: "#a349a4" + - state: pants-equipped-INNERCLOTHING + color: "#f2f2f2" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorRed + name: red enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with red accents. Fancy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#99211f" + - state: accent-icon + color: "#99211f" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#99211f" + - state: accent-inhand-left + color: "#99211f" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#99211f" + - state: accent-inhand-right + color: "#99211f" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#99211f" + - state: accentalt-equipped-INNERCLOTHING + color: "#99211f" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#99211f" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorOrange + name: orange enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with orange accents. Zesty! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#c2680f" + - state: accent-icon + color: "#c2680f" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#c2680f" + - state: accent-inhand-left + color: "#c2680f" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#c2680f" + - state: accent-inhand-right + color: "#c2680f" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#c2680f" + - state: accentalt-equipped-INNERCLOTHING + color: "#c2680f" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#c2680f" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorGreen + name: green enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with green accents. Leafy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#5b991f" + - state: accent-icon + color: "#5b991f" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#5b991f" + - state: accent-inhand-left + color: "#5b991f" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#5b991f" + - state: accent-inhand-right + color: "#5b991f" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#5b991f" + - state: accentalt-equipped-INNERCLOTHING + color: "#5b991f" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#5b991f" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorBlue + name: blue enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with blue accents. Cool! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#2b5c99" + - state: accent-icon + color: "#2b5c99" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#2b5c99" + - state: accent-inhand-left + color: "#2b5c99" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#2b5c99" + - state: accent-inhand-right + color: "#2b5c99" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#2b5c99" + - state: accentalt-equipped-INNERCLOTHING + color: "#2b5c99" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#2b5c99" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorBrown + name: brown enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant has brown pants. Reminds you of dusty offices. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#a349a4" + - state: accent-icon + color: "#a349a4" + - state: pants-icon + color: "#583f20" + - state: belt-icon + color: "#363636" + - state: beltbuckle_small-icon + color: "#3e3e3e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#a349a4" + - state: accent-inhand-left + color: "#a349a4" + - state: pants-inhand-left + color: "#583f20" + - state: belt-inhand-left + color: "#363636" + - state: beltbuckle_small-inhand-left + color: "#3e3e3e" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#a349a4" + - state: accent-inhand-right + color: "#a349a4" + - state: pants-inhand-right + color: "#583f20" + - state: belt-inhand-right + color: "#363636" + - state: beltbuckle_small-inhand-right + color: "#3e3e3e" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#a349a4" + - state: accentalt-equipped-INNERCLOTHING + color: "#a349a4" + - state: pants-equipped-INNERCLOTHING + color: "#583f20" + - state: belt-equipped-INNERCLOTHING + color: "#363636" + - state: beltbuckle_small-equipped-INNERCLOTHING + color: "#3e3e3e" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksMNK + name: MNK enviroslacks + description: The iconic enviroslacks, with MNK's signature monochrome aesthetic. Classic! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#363636" + - state: accent-icon + color: "#363636" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#363636" + - state: accent-inhand-left + color: "#363636" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#363636" + - state: accent-inhand-right + color: "#363636" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#363636" + - state: accentalt-equipped-INNERCLOTHING + color: "#363636" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#d6d6d6" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksMNKAlt + name: MNK enviroslacks + description: The iconic enviroslacks, with MNK's signature monochrome aesthetic. Noir! + suffix: Alternative + components: + - type: Sprite + layers: + - state: icon + color: "#3b3b3b" + - state: plaintop-icon + color: "#3b3b3b" + - state: tie-icon + color: "#d6d6d6" + - state: accent-icon + color: "#d6d6d6" + - state: pants-icon + color: "#f2f2f2" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3b3b3b" + - state: plaintop-inhand-left + color: "#3b3b3b" + - state: tie-inhand-left + color: "#d6d6d6" + - state: accent-inhand-left + color: "#d6d6d6" + - state: pants-inhand-left + color: "#f2f2f2" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#3b3b3b" + - state: plaintop-inhand-right + color: "#3b3b3b" + - state: tie-inhand-right + color: "#d6d6d6" + - state: accent-inhand-right + color: "#d6d6d6" + - state: pants-inhand-right + color: "#f2f2f2" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3b3b3b" + - state: plaintop-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: tie-equipped-INNERCLOTHING + color: "#d6d6d6" + - state: accentalt-equipped-INNERCLOTHING + color: "#d6d6d6" + - state: pants-equipped-INNERCLOTHING + color: "#f2f2f2" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#424242" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksPsychologist + name: psychologist enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant was made for the psychologist. Mind-boggling! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#5ba0cf" + - state: accent-icon + color: "#5ba0cf" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#5ba0cf" + - state: accent-inhand-left + color: "#5ba0cf" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#5ba0cf" + - state: accent-inhand-right + color: "#5ba0cf" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#5ba0cf" + - state: accentalt-equipped-INNERCLOTHING + color: "#5ba0cf" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#5ba0cf" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +# Color envirosuits +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorWhite + name: white envirosuit + description: A generic white jumpsuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorGrey + name: grey envirosuit + description: A tasteful grey envirosuit that reminds you of the good old days. + components: + - type: Sprite + layers: + - state: icon + color: "#b3b3b3" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b3b3b3" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#b3b3b3" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#b3b3b3" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorBlack + name: black envirosuit + description: A generic black envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#3f3f3f" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3f3f3f" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#3f3f3f" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3f3f3f" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorRed + name: red envirosuit + description: A dark green envirosuit. + components: + - type: Sprite + layers: + - state: icon + color: "#d1423f" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d1423f" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#d1423f" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#d1423f" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorGreen + name: green envirosuit + description: A generic green envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#9ed63a" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9ed63a" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#9ed63a" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#9ed63a" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorDarkGreen + name: dark green envirosuit + description: A generic dark green envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#79CC26" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#79CC26" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#79CC26" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#79CC26" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorBlue + name: blue envirosuit + description: A generic blue envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#52aecc" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#52aecc" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#52aecc" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#52aecc" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorDarkBlue + name: dark blue envirosuit + description: A generic dark blue envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#3285ba" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3285ba" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#3285ba" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3285ba" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorTeal + name: teal envirosuit + description: A generic teal envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#77f3b7" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#77f3b7" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#77f3b7" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#77f3b7" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorMaroon + name: maroon envirosuit + description: A generic maroon envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#cc295f" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#cc295f" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#cc295f" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#cc295f" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorPink + name: pink envirosuit + description: >- + "Plasmamen can't slay" and other jokes you can tell yourself. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8cff" + - state: accent-icon + color: "#8b3e8c" + - state: corneraccent-icon + color: "#8b3e8c" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8cff" + - state: accent-inhand-left + color: "#8b3e8c" + - state: corneraccent-inhand-left + color: "#8b3e8c" + right: + - state: inhand-right + color: "#ff8cff" + - state: accent-inhand-right + color: "#8b3e8c" + - state: corneraccent-inhand-right + color: "#8b3e8c" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ff8cff" + - state: accent-equipped-INNERCLOTHING + color: "#8b3e8c" + - state: loweraccent-equipped-INNERCLOTHING + color: "#8b3e8c" + - state: corneraccent-equipped-INNERCLOTHING + color: "#8b3e8c" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorYellow + name: yellow envirosuit + description: A generic yellow envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#ffe14d" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffe14d" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#ffe14d" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffe14d" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorPurple + name: purple envirosuit + description: A generic purple envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#9f70cc" + - state: accent-icon + color: "#843b85" + - state: corneraccent-icon + color: "#843b85" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9f70cc" + - state: accent-inhand-left + color: "#843b85" + - state: corneraccent-inhand-left + color: "#843b85" + right: + - state: inhand-right + color: "#9f70cc" + - state: accent-inhand-right + color: "#843b85" + - state: corneraccent-inhand-right + color: "#843b85" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#9f70cc" + - state: accent-equipped-INNERCLOTHING + color: "#843b85" + - state: loweraccent-equipped-INNERCLOTHING + color: "#843b85" + - state: corneraccent-equipped-INNERCLOTHING + color: "#843b85" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorOrange + name: orange envirosuit + description: Don't wear this near paranoid security officers. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8c19" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8c19" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#ff8c19" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ff8c19" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorLightBrown + name: light brown envirosuit + description: A generic light brown envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#a17229" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a17229" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#a17229" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#a17229" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorBrown + name: brown envirosuit + description: A generic brown envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#543e1b" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#543e1b" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#543e1b" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#543e1b" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" diff --git a/Resources/Prototypes/Entities/Effects/weapon_arc.yml b/Resources/Prototypes/Entities/Effects/weapon_arc.yml index 0f3fab0e8789..556347f0d9c9 100644 --- a/Resources/Prototypes/Entities/Effects/weapon_arc.yml +++ b/Resources/Prototypes/Entities/Effects/weapon_arc.yml @@ -127,3 +127,29 @@ state: smash - type: TimedDespawn lifetime: 0.299 + +- type: entity + id: WeaponArcPurplePunch # Not inheriting so we don't have EffectVisuals to delete the entity + categories: [ HideSpawnMenu ] # on LightFade animation complete, which causes a + components: # "Predicting the queued deletion of a networked entity" error on tests. + - type: Sprite + sprite: Effects/arcs.rsi + layers: + - state: punch + color: "#ff80f4" + drawdepth: Effects + - type: WeaponArcVisuals + fadeOut: false + - type: TimedDespawn + lifetime: 0.549 + - type: PointLight + radius: 1.13 + energy: 50 + color: "#ff11d5" + netsync: false + - type: LightFade + rampUpDuration: 0.1 + duration: 0.449 + - type: Tag + tags: + - HideContextMenu diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 794d0fb90c71..90ea582271bc 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -319,6 +319,12 @@ id: NitrogenTankFilled - !type:EntSelector id: DoubleEmergencyNitrogenTankFilled + - !type:GroupSelector + children: + - !type:EntSelector + id: PlasmaTankFilled + - !type:EntSelector + id: DoubleEmergencyPlasmaTankFilled - !type:EntSelector id: EmergencyFunnyOxygenTankFilled weight: 0.5 diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml index 5aaf5d4870fb..304726411b1b 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml @@ -114,7 +114,7 @@ id: TattooEyeRight bodyPart: Eyes markingCategory: Head - speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Lamia] # Delta V - Felinid, Oni, Harpy + speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Lamia, Plasmaman] # Delta V - Felinid, Oni, Harpy coloring: default: type: @@ -128,7 +128,7 @@ id: TattooEyeLeft bodyPart: Eyes markingCategory: Head - speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Lamia] # Delta V - Felinid, Oni, Harpy + speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Lamia, Plasmaman] # Delta V - Felinid, Oni, Harpy coloring: default: type: diff --git a/Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml b/Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml new file mode 100644 index 000000000000..7fa3bf2f8692 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml @@ -0,0 +1,5 @@ +- type: entity + save: false + name: Urist McPlasma + parent: BaseMobPlasmaman + id: MobPlasmaman diff --git a/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml b/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml new file mode 100644 index 000000000000..a79ec0bd10d9 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml @@ -0,0 +1,156 @@ +- type: entity + parent: BaseMobSpeciesOrganic + id: BaseMobPlasmaman + name: Urist McPlasma + abstract: true + components: + - type: Icon + sprite: Mobs/Species/Plasmaman/parts.rsi + state: full + - type: Sprite + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.Face" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - shader: StencilClear + sprite: Mobs/Species/Human/parts.rsi + state: l_leg + - shader: StencilMask + map: ["enum.HumanoidVisualLayers.StencilMask"] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false + - map: ["enum.HumanoidVisualLayers.LFoot"] + - map: ["enum.HumanoidVisualLayers.RFoot"] + - map: ["jumpsuit"] # jumpsuit after foot to show envirosuit shoes + - map: ["enum.HumanoidVisualLayers.LHand"] + - map: ["enum.HumanoidVisualLayers.RHand"] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "innerBelt" ] + - map: [ "innerNeck" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "id" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: ["enum.HumanoidVisualLayers.Handcuffs"] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_human" + visible: false + - type: Carriable + - type: Body + prototype: Plasmaman + requiredLegs: 2 + gibSound: /Audio/Effects/bone_rattle.ogg + - type: Bloodstream + bloodlossThreshold: 0 + bleedReductionAmount: 0 + maxBleedAmount: 0 + bloodlossDamage: + types: + Blunt: 0 + bloodlossHealDamage: + types: + Blunt: 0 + bloodRefreshAmount: 0 + bloodRegenerationHunger: 0 + bloodRegenerationThirst: 0 + bloodMaxVolume: 0 + - type: Damageable + damageModifierSet: Plasmaman + - type: DamageVisuals + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#555555AA" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + - type: MeleeWeapon + soundHit: + collection: FirePunch + animation: WeaponArcPurplePunch + damage: + types: # oooh scarier extra damage~ + Heat: 5 + Blunt: 2.25 + - type: DamageOnHit + damage: + types: + Heat: 1 + targetParts: [ RightHand, LeftHand ] + - type: Speech + speechVerb: Skeleton + - type: Vocal + sounds: + Male: UnisexPlasmaman + Female: UnisexPlasmaman + Unsexed: UnisexPlasmaman + - type: Butcherable + butcheringType: Spike + spawned: + - id: SheetPlasma1 + amount: 8 + - type: Inventory + templateId: plasmaman + - type: Temperature + heatDamageThreshold: 313 # 40 celsius, -12 from base heat damage threshold + currentTemperature: 270.15 # -3 celsius + specificHeat: 46 + coldDamage: + types: + Cold: 0 + heatDamage: + types: + Heat: 3 + - type: ThermalRegulator + normalBodyTemperature: 270.15 + - type: Flammable + firestackFade: -0.05 + - type: HumanoidAppearance + species: Plasmaman + hideLayersOnEquip: + - Hair + - Snout + - type: TypingIndicator + proto: plasmaman + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Calcic + understands: + - TauCetiBasic + - Calcic + - type: FootPrints + +- type: entity + parent: BaseSpeciesDummy + id: MobPlasmamanDummy + categories: [ HideSpawnMenu ] + components: + - type: HumanoidAppearance + species: Plasmaman + - type: Inventory + templateId: plasmaman diff --git a/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml b/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml index 5f9812f4909a..60606a92fc9c 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml @@ -103,6 +103,15 @@ probability: 0.5 - type: FireVisuals alternateState: Standing + - type: TypingIndicator + proto: skeleton + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Calcic + understands: + - TauCetiBasic + - Calcic - type: FootPrints - type: LayingDown diff --git a/Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml b/Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml new file mode 100644 index 000000000000..b595862628cd --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml @@ -0,0 +1,34 @@ +- type: entity + parent: BaseItem + id: EnvirosuitExtinguisherRefill + name: envirosuit extinguisher refill + description: A cartridge loaded with a compressed extinguisher mix, used to refill the self-extinguisher on plasma envirosuits. + components: + - type: Sprite + sprite: Objects/Misc/extinguisher_refill.rsi + layers: + - state: icon + - type: Item + sprite: Objects/Misc/extinguisher_refill.rsi + size: Small + - type: SelfExtinguisherRefill + refillAmount: 10 + - type: GuideHelp + guides: [ Plasmaman ] + - type: MeleeWeapon # Same values as double emergency tank + attackRate: 0.9 + wideAnimationRotation: 45 + range: 1.75 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 2.5 + heavyRateModifier: 1.25 + heavyDamageBaseModifier: 1.5 + heavyStaminaCost: 10 + maxTargets: 3 + angle: 100 + soundHit: + path: /Audio/Weapons/smash.ogg + - type: DamageOtherOnHit + staminaCost: 5 diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index 4db76a979689..0edf59065e61 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -134,6 +134,19 @@ - type: Clothing sprite: Objects/Tanks/emergency_red.rsi +- type: entity + parent: EmergencyOxygenTank + id: EmergencyPlasmaTank + name: emergency plasma tank + description: An easily portable tank for emergencies. Contains very little plasma, rated for survival use only. + components: + - type: Sprite + sprite: Objects/Tanks/emergency_red.rsi # TODO: emergency plasma tank sprite + - type: Item + sprite: Objects/Tanks/emergency_red.rsi + - type: Clothing + sprite: Objects/Tanks/emergency_red.rsi + - type: entity parent: EmergencyOxygenTank id: ExtendedEmergencyOxygenTank @@ -164,6 +177,19 @@ - type: Clothing sprite: Objects/Tanks/emergency_extended_red.rsi +- type: entity + parent: ExtendedEmergencyOxygenTank + id: ExtendedEmergencyPlasmaTank + name: extended-capacity emergency plasma tank + description: An emergency tank with extended capacity. Technically rated for prolonged use. + components: + - type: Sprite + sprite: Objects/Tanks/emergency_extended_red.rsi # TODO: extended-capacity emergency plasma tank sprite + - type: Item + sprite: Objects/Tanks/emergency_extended_red.rsi + - type: Clothing + sprite: Objects/Tanks/emergency_extended_red.rsi + - type: entity parent: ExtendedEmergencyOxygenTank id: DoubleEmergencyOxygenTank @@ -201,6 +227,19 @@ - type: Clothing sprite: Objects/Tanks/emergency_double_red.rsi +- type: entity + parent: DoubleEmergencyOxygenTank + id: DoubleEmergencyPlasmaTank + name: plasma internals tank + description: A tank of plasma designed to be internals for Plasmamen. + components: + - type: Sprite + sprite: Objects/Tanks/plasmaman.rsi + - type: Item + sprite: Objects/Tanks/plasmaman.rsi + - type: Clothing + sprite: Objects/Tanks/plasmaman.rsi + - type: entity parent: EmergencyOxygenTank id: EmergencyFunnyOxygenTank @@ -243,7 +282,7 @@ parent: GasTankBase id: PlasmaTank name: plasma tank - description: Contains dangerous plasma. Do not inhale. Extremely flammable. + description: Contains dangerous plasma. Do not inhale, unless you're a plasmaman. Extremely flammable. components: - type: Sprite sprite: Objects/Tanks/plasma.rsi diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index fcb41ceef39b..4cea55becfc5 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -187,6 +187,7 @@ - SyndieSet - SleeperSet - CommunicatorSet + - CommunicatorSetPlasmaman - SmugglerSet - type: ActivatableUI key: enum.ThiefBackpackUIKey.Key diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 566f60ea0e91..01f8a32fea08 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -1196,6 +1196,7 @@ - ChemicalPayload # Nyano - SyringeCryostasis - ClothingEyesNightVisionMedicalGoggles + - EnvirosuitExtinguisherRefill # Shitmed Change - EnergyScalpel - EnergyCautery diff --git a/Resources/Prototypes/Flavors/flavors.yml b/Resources/Prototypes/Flavors/flavors.yml index 7534a8cdc683..bebc40fcc1ee 100644 --- a/Resources/Prototypes/Flavors/flavors.yml +++ b/Resources/Prototypes/Flavors/flavors.yml @@ -1133,3 +1133,8 @@ id: compressed-meat flavorType: Complex description: flavor-complex-compressed-meat + +- type: flavor + id: plasma + flavorType: Complex + description: flavor-complex-plasma diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index 41f668342650..e6d10810a564 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -13,6 +13,7 @@ - IPCs - Harpy - Shadowkin + - Plasmaman - Chitinid - type: guideEntry @@ -55,12 +56,17 @@ name: species-name-ipc text: "/ServerInfo/Guidebook/Mobs/IPCs.xml" +- type: guideEntry + id: Harpy + name: species-name-harpy + text: "/ServerInfo/Guidebook/Mobs/Harpy.xml" + - type: guideEntry id: Shadowkin name: species-name-shadowkin text: "/ServerInfo/Guidebook/Mobs/Shadowkin.xml" - type: guideEntry - id: Harpy - name: species-name-harpy - text: "/ServerInfo/Guidebook/Mobs/Harpy.xml" \ No newline at end of file + id: Plasmaman + name: species-name-plasmaman + text: "/ServerInfo/Guidebook/Mobs/Plasmaman.xml" diff --git a/Resources/Prototypes/InventoryTemplates/plasmaman_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/plasmaman_inventory_template.yml new file mode 100644 index 000000000000..c295cf120b1b --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/plasmaman_inventory_template.yml @@ -0,0 +1,129 @@ +- type: inventoryTemplate + id: plasmaman + slots: + - name: shoes + slotTexture: shoes + slotFlags: FEET + stripTime: 3 + uiWindowPos: 1,0 + strippingWindowPos: 1,3 + displayName: Shoes + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 0,1 + strippingWindowPos: 0,2 + displayName: Jumpsuit + spawnWhitelist: + tags: + - PlasmamanSafe + - name: outerClothing + slotTexture: suit + slotFlags: OUTERCLOTHING + stripTime: 6 + uiWindowPos: 1,1 + strippingWindowPos: 1,2 + displayName: Suit + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,1 + strippingWindowPos: 2,2 + displayName: Gloves + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,2 + strippingWindowPos: 0,1 + displayName: Neck + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,2 + strippingWindowPos: 1,1 + displayName: Mask + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,0 + displayName: Eyes + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 2,2 + strippingWindowPos: 2,0 + displayName: Ears + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,3 + strippingWindowPos: 1,0 + displayName: Head + spawnWhitelist: + tags: + - PlasmamanSafe + - name: pocket1 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,5 + dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage + displayName: Suit Storage + - name: id + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + fullTextureName: template_small + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + fullTextureName: template_small + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back diff --git a/Resources/Prototypes/Language/Species-Specific/skeleton.yml b/Resources/Prototypes/Language/Species-Specific/skeleton.yml new file mode 100644 index 000000000000..840f00850e8d --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/skeleton.yml @@ -0,0 +1,59 @@ +- type: language + id: Calcic + isVisibleLanguage: true + speech: + fontId: LDFComicSans + color: "#e3dac9" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 4 + replacement: + - k + - ck + - ack + - ick + - cl + - tk + - sk + - isk + - tak + - kl + - hs + - ss + - ks + - lk + - dk + - gk + - ka + - ska + - la + - pk + - wk + - ak + - ik + - ip + - ski + - bk + - kb + - ta + - is + - it + - li + - di + - ds + - ya + - sck + - crk + - hs + - ws + - mk + - aaa + - skraa + - skee + - hss + - raa + - klk + - tk + - stk + - clk diff --git a/Resources/Prototypes/Loadouts/Generic/hands.yml b/Resources/Prototypes/Loadouts/Generic/hands.yml index af5559ee3b87..ec2aec9070ae 100644 --- a/Resources/Prototypes/Loadouts/Generic/hands.yml +++ b/Resources/Prototypes/Loadouts/Generic/hands.yml @@ -10,6 +10,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutGloves + - !type:CharacterSpeciesRequirement # Use the envirogloves that use the same sprite instead. + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutHandsColorYellowBudget @@ -71,6 +75,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutGloves + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutHandsGlovesEvening @@ -83,3 +91,7 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutGloves + - !type:CharacterSpeciesRequirement # Use the evening envirogloves that use the same sprite instead. + inverted: true + species: + - Plasmaman diff --git a/Resources/Prototypes/Loadouts/Generic/items.yml b/Resources/Prototypes/Loadouts/Generic/items.yml index 45d67f17f67d..84889d7ca9ba 100644 --- a/Resources/Prototypes/Loadouts/Generic/items.yml +++ b/Resources/Prototypes/Loadouts/Generic/items.yml @@ -311,6 +311,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutAirTank + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemsExtendedEmergencyOxygenTank @@ -321,6 +325,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutAirTank + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemsDoubleEmergencyOxygenTank @@ -331,6 +339,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutAirTank + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemClothingMaskBreath @@ -433,6 +445,11 @@ cost: 1 items: - DrinkWaterBottleFull + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemLunchboxGenericFilledRandom @@ -440,6 +457,11 @@ cost: 3 items: - LunchboxGenericFilledRandom + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemDrinkMREFlask @@ -447,6 +469,11 @@ cost: 2 items: - DrinkMREFlask + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman # Survival boxes - type: loadout diff --git a/Resources/Prototypes/Loadouts/Generic/plasmaman.yml b/Resources/Prototypes/Loadouts/Generic/plasmaman.yml new file mode 100644 index 000000000000..a3dbd169f8a9 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/plasmaman.yml @@ -0,0 +1,723 @@ +# Equipment + +- type: loadout + id: LoadoutSpeciesEnvirosuitExtinguisherRefill + category: Species + cost: 5 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - EnvirosuitExtinguisherRefill + +- type: loadout + id: LoadoutSpeciesDoubleEmergencyPlasmaTank + category: Species + cost: 6 + canBeHeirloom: true + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - DoubleEmergencyPlasmaTankFilled + +- type: loadout + id: LoadoutSpeciesDrinkMilkCartonAndSyringe + category: Species + cost: 3 + canBeHeirloom: true + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - DrinkMilkCarton + - Syringe + +# Envirogloves + +- type: loadout + id: LoadoutHandsGlovesEnviroglovesColor + category: Hands + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingHandsGlovesEnviroglovesColor + +- type: loadout + id: LoadoutHandsGlovesEnviroglovesEvening + category: Hands + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingHandsGlovesEnviroglovesEvening + +# Envirosuits with paired envirohelms + +- type: loadout + id: LoadoutUniformEnvirosuit + category: Uniform + cost: 0 + exclusive: true + canBeHeirloom: true + guideEntry: Plasmaman + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuit + - ClothingHeadEnvirohelm + +- type: loadout + id: LoadoutUniformEnvirosuitBlackPink + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitBlackPink + - ClothingHeadEnvirohelmBlackPink + +- type: loadout + id: LoadoutUniformEnvirosuitBlackPinkAlt + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitBlackPinkAlt + - ClothingHeadEnvirohelmBlackPinkAlt + +- type: loadout + id: LoadoutUniformEnvirosuitMartialGi + category: Uniform + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitMartialGi + - ClothingHeadEnvirohelmMartialGi + +- type: loadout + id: LoadoutUniformEnvirosuitSafari + category: Uniform + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitSafari + - ClothingHeadEnvirohelmSafari + +- type: loadout + id: LoadoutUniformEnvirosuitTrans + category: Uniform + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitTrans + - ClothingHeadEnvirohelmTrans + +- type: loadout + id: LoadoutUniformEnvirosuitAncientVoid + category: Uniform + cost: 2 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + - !type:CharacterJobRequirement + inverted: true + jobs: + - Librarian # Librarian already starts with this envirosuit + items: + - ClothingUniformEnvirosuitAncientVoid + - ClothingHeadEnvirohelmAncientVoid + +# Colored envirosuits +- type: loadout + id: LoadoutUniformEnvirosuitColorWhite + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorWhite + - ClothingHeadEnvirohelmColorWhite + +- type: loadout + id: LoadoutUniformEnvirosuitColorGrey + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorGrey + - ClothingHeadEnvirohelmColorGrey + +- type: loadout + id: LoadoutUniformEnvirosuitColorBlack + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitColorBlack + - ClothingHeadEnvirohelmColorBlack + +- type: loadout + id: LoadoutUniformEnvirosuitColorRed + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitColorRed + - ClothingHeadEnvirohelmColorRed + +- type: loadout + id: LoadoutUniformEnvirosuitColorGreen + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorGreen + - ClothingHeadEnvirohelmColorGreen + +- type: loadout + id: LoadoutUniformEnvirosuitColorDarkGreen + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorDarkGreen + - ClothingHeadEnvirohelmColorDarkGreen + +- type: loadout + id: LoadoutUniformEnvirosuitColorBlue + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorBlue + - ClothingHeadEnvirohelmColorBlue + +- type: loadout + id: LoadoutUniformEnvirosuitColorDarkBlue + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorDarkBlue + - ClothingHeadEnvirohelmColorDarkBlue + +- type: loadout + id: LoadoutUniformEnvirosuitColorTeal + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorTeal + - ClothingHeadEnvirohelmColorTeal + +- type: loadout + id: LoadoutUniformEnvirosuitColorMaroon + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorMaroon + - ClothingHeadEnvirohelmColorMaroon + +- type: loadout + id: LoadoutUniformEnvirosuitColorPink + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorPink + - ClothingHeadEnvirohelmColorPink + +- type: loadout + id: LoadoutUniformEnvirosuitColorYellow + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorYellow + - ClothingHeadEnvirohelmColorYellow + +- type: loadout + id: LoadoutUniformEnvirosuitColorPurple + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorPurple + - ClothingHeadEnvirohelmColorPurple + +- type: loadout + id: LoadoutUniformEnvirosuitColorOrange + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorOrange + - ClothingHeadEnvirohelmColorOrange + +- type: loadout + id: LoadoutUniformEnvirosuitColorLightBrown + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorLightBrown + - ClothingHeadEnvirohelmColorLightBrown + +- type: loadout + id: LoadoutUniformEnvirosuitColorBrown + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorBrown + - ClothingHeadEnvirohelmColorBrown + +# Enviroslacks +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacks + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitEnviroslacks + - ClothingHeadEnvirohelmColorWhite + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksNegative + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksNegative + - ClothingHeadEnvirohelmColorBlack + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorRed + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorRed + - ClothingHeadEnvirohelmEnviroslacksColorRed + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorOrange + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorOrange + - ClothingHeadEnvirohelmEnviroslacksColorOrange + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorGreen + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorGreen + - ClothingHeadEnvirohelmEnviroslacksColorGreen + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBlue + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorBlue + - ClothingHeadEnvirohelmEnviroslacksColorBlue + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBrown + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorBrown + - ClothingHeadEnvirohelmColorWhite + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNK + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksMNK + - ClothingHeadEnvirohelmEnviroslacksMNK + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNKAlt + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksMNKAlt + - ClothingHeadEnvirohelmEnviroslacksMNKAlt diff --git a/Resources/Prototypes/Loadouts/Generic/shoes.yml b/Resources/Prototypes/Loadouts/Generic/shoes.yml index cf3cbfb074a5..22e18c2527be 100644 --- a/Resources/Prototypes/Loadouts/Generic/shoes.yml +++ b/Resources/Prototypes/Loadouts/Generic/shoes.yml @@ -248,6 +248,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes + - !type:CharacterSpeciesRequirement # Due to a visual bug with envirosuits and heels they are disabled for now. + inverted: true + species: + - Plasmaman items: - ClothingShoesHighheelBoots # Socks @@ -295,6 +299,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman items: - ClothingShoesHighHeels @@ -308,6 +316,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman items: - ClothingShoesHighHeelsLong diff --git a/Resources/Prototypes/Loadouts/Generic/uniform.yml b/Resources/Prototypes/Loadouts/Generic/uniform.yml index 3af5f79d8fdb..ea4287b0b19c 100644 --- a/Resources/Prototypes/Loadouts/Generic/uniform.yml +++ b/Resources/Prototypes/Loadouts/Generic/uniform.yml @@ -551,6 +551,7 @@ - Command # Kimono + - type: loadout id: LoadoutClothingJumpsuitKimono category: Uniform diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml index 2af937ef1a12..ae89a2f422fe 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml @@ -105,3 +105,21 @@ - MailCarrier items: - ClothingUniformSkirtMailCarrier + +- type: loadout + id: LoadoutCourierUniformEnvirosuitMailCarrier + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierUniforms + - !type:CharacterJobRequirement + jobs: + - MailCarrier + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingUniformEnvirosuitMailCarrier + - ClothingHeadEnvirohelmMailCarrier diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml index c193b8887210..bba1e6d06499 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml @@ -1329,3 +1329,39 @@ - Security items: - ClothingUniformJumpsuitSecSummer + +- type: loadout + id: LoadoutSecurityUniformEnvirosuitBlue + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityUniforms + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingUniformEnvirosuitSecBlue + - ClothingHeadEnvirohelmSecBlue + +- type: loadout + id: LoadoutSecurityUniformEnvirosuitGrey + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityUniforms + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingUniformEnvirosuitSecGrey + - ClothingHeadEnvirohelmSecGrey diff --git a/Resources/Prototypes/Mood/genericPositiveEffects.yml b/Resources/Prototypes/Mood/genericPositiveEffects.yml index c3d3acc8a5d0..4b30007611a0 100644 --- a/Resources/Prototypes/Mood/genericPositiveEffects.yml +++ b/Resources/Prototypes/Mood/genericPositiveEffects.yml @@ -1,4 +1,4 @@ -- type: moodEffect +- type: moodEffect id: BeingHugged moodChange: 3 timeout: 120 @@ -52,3 +52,13 @@ moodChange: 5 timeout: 60 # A bit of time before they realize it's gone moodletOnEnd: HeirloomNeutral + +- type: moodEffect + id: PlasmamanIngestMilk + moodChange: 7 + timeout: 60 + +- type: moodEffect + id: PlasmamanIngestPlasma + moodChange: 14 + timeout: 60 diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml index 5a90e77a58af..ca4d55c2f863 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml @@ -13,6 +13,8 @@ - type: startingGear id: MailCarrierGear + subGear: + - MailCarrierPlasmamanGear equipment: head: ClothingHeadMailCarrier jumpsuit: ClothingUniformMailCarrier @@ -24,3 +26,11 @@ innerClothingSkirt: ClothingUniformSkirtMailCarrier satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: MailCarrierPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMailCarrier + head: ClothingHeadEnvirohelmMailCarrier + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index 6a143a78b116..03958bab5293 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -43,6 +43,8 @@ - type: startingGear id: ForensicMantisGear + subGear: + - ForensicMantisPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMantis back: ClothingBackpackMantisFilled @@ -58,3 +60,11 @@ innerClothingSkirt: ClothingUniformSkirtMantis satchel: ClothingBackpackSatchelMantisFilled duffelbag: ClothingBackpackDuffelMantisFilled + +- type: startingGear + id: ForensicMantisPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMantis + head: ClothingHeadEnvirohelmMantis + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml index b82178a936ff..7edfc3644159 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml @@ -23,10 +23,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] - + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: PrisonGuardGear + subGear: + - PrisonGuardPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitPrisonGuard back: ClothingBackpackSecurityFilled @@ -39,3 +45,11 @@ innerClothingSkirt: ClothingUniformJumpsuitPrisonGuard satchel: ClothingBackpackSatchelSecurityFilled duffelbag: ClothingBackpackDuffelSecurityFilled + +- type: startingGear + id: PrisonGuardPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitPrisonGuard + head: ClothingHeadEnvirohelmPrisonGuard + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml index b2d54651e478..6b1c809c461e 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml @@ -18,9 +18,16 @@ - !type:AddTraitSpecial traits: - MartialArtist + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 3 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellPotato - type: startingGear id: NyanoGladiatorGear + subGear: + - GladiatorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitGladiator outerClothing: ClothingOuterArmorGladiator @@ -28,3 +35,11 @@ ears: ClothingHeadsetGrey innerClothingSkirt: UniformShortsRedWithTop #any other possessions, spawn in cell + +- type: startingGear + id: GladiatorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitGladiator + head: ClothingHeadEnvirohelmGladiator + gloves: ClothingHandsGlovesEnviroglovesGladiator diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml index de6212dacf94..7f336d8a7c9a 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml @@ -22,6 +22,8 @@ - type: startingGear id: MartialArtistGear + subGear: + - MartialArtistPlasmamanGear equipment: jumpsuit: ClothingUniformMartialGi belt: ClothingBeltMartialBlack @@ -32,3 +34,12 @@ gloves: ClothingHandsGlovesBoxingRed satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: MartialArtistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMartialGi + head: ClothingHeadEnvirohelmMartialGi + # No envirogloves, use the boxing gloves instead + shoes: ClothingShoesColorBlack diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml index e892a480413a..de1e8fc39acb 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml @@ -17,12 +17,27 @@ - !type:AddComponentSpecial components: - type: Pacified + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 3 # Poor prisoners with not a lot of self-extinguishes. + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellPotato - type: startingGear id: PrisonerGear + subGear: + - PrisonerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitPrisoner shoes: ClothingShoesColorBlack id: PrisonerPDA ears: ClothingHeadsetPrison #deltaV innerClothingSkirt: ClothingUniformJumpsuitPrisoner + +- type: startingGear + id: PrisonerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitPrisoner + head: ClothingHeadEnvirohelmPrisoner + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml b/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml index 891067b1c1fb..2502441d6c26 100644 --- a/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml +++ b/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml @@ -11,3 +11,4 @@ Reptilian: 0.5 SlimePerson: 0.5 Vulpkanin: 0.5 + Plasmaman: 0.25 diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml index 3f9fb7b53d28..52b653315340 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml @@ -266,6 +266,25 @@ effects: - !type:SatiateThirst factor: 4 + - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + damage: + groups: + Brute: -0.90 + types: + Heat: -0.30 + Shock: -0.30 + Caustic: -0.30 + - !type:ChemAddMoodlet + conditions: + - !type:OrganType + type: Plasmaman + - !type:ReagentThreshold + reagent: Milk + min: 4 + moodPrototype: PlasmamanIngestMilk - type: reagent id: MilkGoat diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index caa2e5acdc6d..b81b639b8bdf 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -32,6 +32,9 @@ - !type:OrganType type: Vox shouldHave: false + - !type:OrganType + type: Plasmaman + shouldHave: false ratios: CarbonDioxide: 1.0 Oxygen: -1.0 @@ -46,7 +49,7 @@ Poison: 7 - !type:AdjustAlert - alertType: Toxins + alertType: HighOxygen conditions: - !type:ReagentThreshold min: 0.5 @@ -54,6 +57,25 @@ type: Vox clear: true time: 5 + - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + scaleByQuantity: true + ignoreResistances: true + damage: + types: + Poison: + 7 + - !type:AdjustAlert + alertType: HighOxygen + conditions: + - !type:ReagentThreshold + min: 0.5 + - !type:OrganType + type: Plasmaman + clear: true + time: 5 - type: reagent id: Plasma @@ -72,15 +94,27 @@ Poison: effects: - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false damage: types: Poison: 3 - !type:AdjustReagent + conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false reagent: Inaprovaline amount: -2.0 Gas: effects: - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false scaleByQuantity: true ignoreResistances: true damage: @@ -91,10 +125,48 @@ - !type:AdjustAlert alertType: Toxins conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false - !type:ReagentThreshold min: 1.5 clear: True time: 5 + - !type:Oxygenate + factor: 4 + conditions: + - !type:OrganType + type: Plasmaman + - !type:ModifyLungGas + conditions: + - !type:OrganType + type: Plasmaman + ratios: + Nitrogen: 1.0 # Interesting exhale for plasmamen + Plasma: -1.0 + Medicine: + effects: + - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + damage: + groups: + Brute: -2 + types: + Heat: -0.66 + Shock: -0.66 + Caustic: -0.66 + Asphyxiation: -0.66 + Poison: -0.66 + - !type:ChemAddMoodlet + conditions: + - !type:OrganType + type: Plasmaman + - !type:ReagentThreshold + reagent: Plasma + min: 4 + moodPrototype: PlasmamanIngestPlasma reactiveEffects: Flammable: methods: [ Touch ] diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index 29f3fed247bb..37b400802c5a 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -262,3 +262,11 @@ Silver: 100 Gold: 100 Plasma: 200 + +- type: latheRecipe + id: EnvirosuitExtinguisherRefill + result: EnvirosuitExtinguisherRefill + completetime: 3 + materials: + Steel: 200 + Plasma: 50 diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 0aa31a5f6e0d..dd4ea9f163fe 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -105,6 +105,7 @@ - CloningConsoleComputerCircuitboard - MedicalScannerMachineCircuitboard - MetempsychoticMachineCircuitboard + - EnvirosuitExtinguisherRefill - type: technology id: HONKMech diff --git a/Resources/Prototypes/Roles/Antags/nukeops.yml b/Resources/Prototypes/Roles/Antags/nukeops.yml index 7b2d9893b606..2490243c83ea 100644 --- a/Resources/Prototypes/Roles/Antags/nukeops.yml +++ b/Resources/Prototypes/Roles/Antags/nukeops.yml @@ -44,6 +44,8 @@ #Lone Operative Gear - type: startingGear id: SyndicateLoneOperativeGearFull + subGear: + - SyndicatePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperative diff --git a/Resources/Prototypes/Roles/Antags/traitor.yml b/Resources/Prototypes/Roles/Antags/traitor.yml index 504b6384835c..f7d4a784019f 100644 --- a/Resources/Prototypes/Roles/Antags/traitor.yml +++ b/Resources/Prototypes/Roles/Antags/traitor.yml @@ -23,6 +23,8 @@ # Syndicate Operative Outfit - Barratry - type: startingGear id: SyndicateOperativeGearExtremelyBasic + subGear: + - SyndicatePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackSyndicate diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index f79a30e5fd6e..7b5c19bcf812 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -16,6 +16,8 @@ - type: startingGear id: CargoTechGear + subGear: + - CargoTechPlasmamanGear equipment: head: ClothingHeadHatCargosoft jumpsuit: ClothingUniformJumpsuitCargo @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtCargo satchel: ClothingBackpackSatchelCargoFilled duffelbag: ClothingBackpackDuffelCargoFilled + +- type: startingGear + id: CargoTechPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCargo + head: ClothingHeadEnvirohelmCargo + gloves: ClothingHandsGlovesEnviroglovesCargo diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index bea527623b25..f27c384c6a64 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -40,9 +40,14 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 - type: startingGear id: QuartermasterGear + subGear: + - QuartermasterPlasmamanGear equipment: head: ClothingHeadHatBeretLogi jumpsuit: ClothingUniformJumpsuitQM @@ -55,3 +60,11 @@ innerClothingSkirt: ClothingUniformJumpskirtQM satchel: ClothingBackpackSatchelQuartermasterFilled duffelbag: ClothingBackpackDuffelQuartermasterFilled + +- type: startingGear + id: QuartermasterPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitQM + head: ClothingHeadEnvirohelmQM + gloves: ClothingHandsGlovesEnviroglovesCargo diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml index 8b806009ef83..4d55f6183bab 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml @@ -21,6 +21,8 @@ - type: startingGear id: SalvageSpecialistGear + subGear: + - SalvageSpecialistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSalvageSpecialist back: ClothingBackpackSalvageFilled @@ -29,3 +31,12 @@ ears: ClothingHeadsetCargo satchel: ClothingBackpackSatchelSalvageFilled duffelbag: ClothingBackpackDuffelSalvageFilled + +- type: startingGear + id: SalvageSpecialistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSalvage + head: ClothingHeadEnvirohelmSalvage + gloves: ClothingHandsGlovesEnviroglovesSalvage + mask: ClothingMaskGasExplorer diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml index 5cf4fd9449bb..dce796968212 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml @@ -11,6 +11,8 @@ - type: startingGear id: PassengerGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorGrey back: ClothingBackpackFilled @@ -20,3 +22,11 @@ innerClothingSkirt: ClothingUniformJumpskirtColorGrey satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: PassengerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorGrey + head: ClothingHeadEnvirohelmColorGrey + gloves: ClothingHandsGlovesEnviroglovesColorDarkGrey diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index 85a86dabce38..74d5560b8e39 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -20,6 +20,8 @@ - type: startingGear id: BartenderGear + subGear: + - BartenderPlasmamanGear equipment: head: ClothingHeadHatTophat jumpsuit: ClothingUniformJumpsuitBartender @@ -31,3 +33,11 @@ innerClothingSkirt: ClothingUniformJumpskirtBartender satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: BartenderPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml index 35b858fb388a..77e9ec491b9f 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml @@ -16,6 +16,8 @@ - type: startingGear id: BotanistGear + subGear: + - BotanistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitHydroponics back: ClothingBackpackHydroponicsFilled @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtHydroponics satchel: ClothingBackpackSatchelHydroponicsFilled duffelbag: ClothingBackpackDuffelHydroponicsFilled + +- type: startingGear + id: BotanistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitHydroponics + head: ClothingHeadEnvirohelmHydroponics + gloves: ClothingHandsGlovesEnviroglovesLeather diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml index b2c88fe212a0..c3261bea60f9 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml @@ -43,6 +43,8 @@ - type: startingGear id: ChaplainGear + subGear: + - ChaplainPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChaplain back: ClothingBackpack @@ -53,3 +55,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChaplain satchel: ClothingBackpackSatchelChaplainFilled duffelbag: ClothingBackpackDuffelChaplainFilled + +- type: startingGear + id: ChaplainPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChaplain + head: ClothingHeadEnvirohelmChaplain + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml index 0837f1f39077..f4e44be33e0f 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -24,6 +24,8 @@ - type: startingGear id: ChefGear + subGear: + - ChefPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChef head: ClothingHeadHatChef @@ -37,3 +39,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChef satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ChefPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChef + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index 8cc8f5c6a727..67aaddaea2d3 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -32,6 +32,8 @@ - type: startingGear id: ClownGear + subGear: + - ClownPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitClown back: ClothingBackpackClownFilled @@ -43,3 +45,12 @@ ears: ClothingHeadsetService satchel: ClothingBackpackSatchelClownFilled duffelbag: ClothingBackpackDuffelClownFilled + +- type: startingGear + id: ClownPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitClown + head: ClothingHeadEnvirohelmClown + gloves: ClothingHandsGlovesEnviroglovesClown + mask: ClothingMaskClown # Parent sets mask to breath mask so set it again here diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index bf11532ddbf3..ac097e7e3063 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -17,6 +17,8 @@ - type: startingGear id: JanitorGear + subGear: + - JanitorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitJanitor back: ClothingBackpackFilled @@ -30,6 +32,14 @@ satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled +- type: startingGear + id: JanitorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitJanitor + head: ClothingHeadEnvirohelmJanitor + gloves: ClothingHandsGlovesEnviroglovesJanitor + - type: startingGear id: JanitorMaidGear equipment: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml index b8e37c2bebf0..3a3c88157fb0 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -20,6 +20,8 @@ - type: startingGear id: LawyerGear + subGear: + - LawyerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitLawyerBlack # TODO change jumpsuit to randomiser of the 4 variants back: ClothingBackpackLawyerFilled #DeltaV - stamp included @@ -32,3 +34,11 @@ innerClothingSkirt: ClothingUniformJumpskirtLawyerBlack satchel: ClothingBackpackSatchelLawyerFilled #DeltaV - stamp included duffelbag: ClothingBackpackDuffelLawyerFilled #DeltaV - stamp included + +- type: startingGear + id: LawyerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml index f2928c6b917c..b8e65f2d9805 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml @@ -41,6 +41,8 @@ - type: startingGear id: LibrarianGear + subGear: + - LibrarianPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitLibrarian back: ClothingBackpackLibrarianFilled @@ -53,3 +55,11 @@ innerClothingSkirt: ClothingUniformJumpskirtLibrarian satchel: ClothingBackpackSatchelLibrarianFilled duffelbag: ClothingBackpackDuffelLibrarianFilled + +- type: startingGear + id: LibrarianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitAncientVoid + head: ClothingHeadEnvirohelmAncientVoid + gloves: ClothingHandsGlovesEnviroglovesPrototype diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index 6aa6d02aecb2..cc0dcce714ae 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -21,6 +21,8 @@ - type: startingGear id: MimeGear + subGear: + - MimePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMime back: ClothingBackpackMimeFilled @@ -37,6 +39,15 @@ satchel: ClothingBackpackSatchelMimeFilled duffelbag: ClothingBackpackDuffelMimeFilled +- type: startingGear + id: MimePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMime + head: ClothingHeadEnvirohelmMime + gloves: ClothingHandsGlovesEnviroglovesWhite + mask: ClothingMaskMime # Parent sets mask to breath mask so set it again here + - type: entity id: ActionMimeInvisibleWall name: Create Invisible Wall diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml index 28f9c597e585..c556585f9c5a 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml @@ -20,6 +20,8 @@ - type: startingGear id: MusicianGear + subGear: + - MusicianPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMusician back: ClothingBackpackMusicianFilled @@ -29,3 +31,11 @@ ears: ClothingHeadsetService satchel: ClothingBackpackSatchelMusicianFilled duffelbag: ClothingBackpackDuffelMusicianFilled + +- type: startingGear + id: MusicianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMusician + head: ClothingHeadEnvirohelmMusician + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml index 8bfd05ad0148..34a96b909ccf 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml @@ -1,4 +1,4 @@ -- type: job +- type: job id: ServiceWorker name: job-name-serviceworker description: job-description-serviceworker @@ -21,6 +21,8 @@ - type: startingGear id: ServiceWorkerGear + subGear: + - ServiceWorkerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorDarkGreen # DeltaV back: ClothingBackpackFilled @@ -30,3 +32,11 @@ innerClothingSkirt: ClothingUniformJumpskirtColorDarkGreen # DeltaV satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ServiceWorkerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorDarkGreen + head: ClothingHeadEnvirohelmColorDarkGreen + gloves: ClothingHandsGlovesEnviroglovesColorDarkGreen diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 30b9a69d12fc..c4af21357d2e 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -27,7 +27,7 @@ - !type:CharacterWhitelistRequirement weight: 20 startingGear: CaptainGear - icon: JobIconCaptain + icon: "JobIconCaptain" requireAdminNotify: true joinNotifyCrew: true supervisors: job-supervisors-centcom @@ -40,9 +40,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CaptainGear + subGear: + - CaptainPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitCaptain back: ClothingBackpackCaptainFilled @@ -52,3 +59,11 @@ innerClothingSkirt: ClothingUniformJumpskirtCaptain satchel: ClothingBackpackSatchelCaptainFilled duffelbag: ClothingBackpackDuffelCaptainFilled + +- type: startingGear + id: CaptainPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCaptain + head: ClothingHeadEnvirohelmCaptain + gloves: ClothingHandsGlovesCaptain diff --git a/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml b/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml index 37c73f38e02c..c14ee7e283c9 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml @@ -12,9 +12,16 @@ - AllAccess access: - CentralCommand + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 10 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CentcomGear + subGear: + - CentcomPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitCentcomOfficial shoes: ClothingShoesBootsCombatFilled @@ -27,3 +34,11 @@ belt: WeaponPistolN1984 pocket1: BoxFolderBlack pocket2: PenCentcom + +- type: startingGear + id: CentcomPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCentcomOfficial + head: ClothingHeadEnvirohelmCentcomOfficial + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index feda9c0f466f..193a728d8171 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -66,9 +66,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: HoPGear + subGear: + - HoPPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitHoP back: ClothingBackpackHOPFilled @@ -78,3 +85,11 @@ innerClothingSkirt: ClothingUniformJumpskirtHoP satchel: ClothingBackpackSatchelHOPFilled duffelbag: ClothingBackpackDuffelHOPFilled + +- type: startingGear + id: HoPPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitHoP + head: ClothingHeadEnvirohelmHoP + gloves: ClothingHandsGlovesEnviroglovesHoP diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index a3bba1547a4e..b271a3d93584 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -18,7 +18,9 @@ - Atmospherics - type: startingGear - id: AtmosphericTechnicianGear + id: AtmosphericTechnicianGear + subGear: + - AtmosphericTechnicianPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitAtmos back: ClothingBackpackAtmospherics @@ -28,3 +30,11 @@ innerClothingSkirt: ClothingUniformJumpskirtAtmos satchel: ClothingBackpackSatchelEngineeringFilled duffelbag: ClothingBackpackDuffelEngineeringFilled + +- type: startingGear + id: AtmosphericTechnicianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitAtmos + head: ClothingHeadEnvirohelmAtmos + gloves: ClothingHandsGlovesEnviroglovesAtmos diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index ea3cd532562a..494bbcfde19c 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -35,9 +35,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellPotato - type: startingGear id: ChiefEngineerGear + subGear: + - ChiefEngineerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChiefEngineer back: ClothingBackpackChiefEngineerFilled @@ -47,3 +54,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChiefEngineer satchel: ClothingBackpackSatchelChiefEngineerFilled duffelbag: ClothingBackpackDuffelChiefEngineerFilled + +- type: startingGear + id: ChiefEngineerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChiefEngineer + head: ClothingHeadEnvirohelmChiefEngineer + gloves: ClothingHandsGlovesEnviroglovesChiefEngineer diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml index 128779db94d9..20798178fa1a 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml @@ -24,6 +24,8 @@ - type: startingGear id: SeniorEngineerGear + subGear: + - StationEngineerPlasmamanGear equipment: head: ClothingHeadHatBeretEngineering jumpsuit: ClothingUniformJumpsuitSeniorEngineer diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index dc5900451912..8169ff0e9c6d 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -20,6 +20,8 @@ - type: startingGear id: StationEngineerGear + subGear: + - StationEngineerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitEngineering back: ClothingBackpackEngineeringFilled @@ -31,3 +33,11 @@ innerClothingSkirt: ClothingUniformJumpskirtEngineering satchel: ClothingBackpackSatchelEngineeringFilled duffelbag: ClothingBackpackDuffelEngineeringFilled + +- type: startingGear + id: StationEngineerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEngineering + head: ClothingHeadEnvirohelmEngineering + gloves: ClothingHandsGlovesEnviroglovesEngineering diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml index 668af727519a..ac472d9fc7b2 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml @@ -22,6 +22,8 @@ - type: startingGear id: TechnicalAssistantGear + subGear: + - StationEngineerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorYellow back: ClothingBackpackEngineeringFilled diff --git a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml b/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml index f1e8fc9cf877..7dd2aa1e92a7 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml @@ -16,6 +16,8 @@ - type: startingGear id: ERTLeaderGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTLeader back: ClothingBackpackERTLeaderFilled @@ -32,6 +34,8 @@ - type: startingGear id: ERTLeaderGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTLeader back: ClothingBackpackERTLeaderFilled @@ -49,6 +53,9 @@ - type: startingGear id: ERTLeaderGearEVALecter + subGear: + - InhandTankGear + - ERTPlasmamanGearNoTank equipment: jumpsuit: ClothingUniformJumpsuitERTLeader back: ClothingBackpackERTLeaderFilled @@ -63,8 +70,6 @@ belt: ClothingBeltSecurityFilled pocket1: MagazineRifle pocket2: MagazineRifle - inhand: - - AirTankFilled # Chaplain - type: job @@ -88,6 +93,8 @@ - type: startingGear id: ERTChaplainGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTChaplain back: ClothingBackpackERTChaplainFilled @@ -105,6 +112,8 @@ - type: startingGear id: ERTChaplainGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTChaplain back: ClothingBackpackERTChaplainFilled @@ -139,6 +148,8 @@ - type: startingGear id: ERTEngineerGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTEngineer back: ClothingBackpackERTEngineerFilled @@ -155,6 +166,8 @@ - type: startingGear id: ERTEngineerGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTEngineer back: ClothingBackpackERTEngineerFilled @@ -188,6 +201,8 @@ - type: startingGear id: ERTSecurityGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTSecurity back: ClothingBackpackERTSecurityFilled @@ -204,6 +219,8 @@ - type: startingGear id: ERTSecurityGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTSecurity back: ClothingBackpackERTSecurityFilled @@ -221,6 +238,9 @@ - type: startingGear id: ERTSecurityGearEVALecter + subGear: + - InhandTankGear + - ERTPlasmamanGearNoTank equipment: jumpsuit: ClothingUniformJumpsuitERTSecurity back: ClothingBackpackERTSecurityFilled @@ -235,8 +255,6 @@ belt: ClothingBeltSecurityFilled pocket1: MagazineRifle pocket2: MagazineRifle - inhand: - - AirTankFilled # Medical - type: job @@ -256,6 +274,8 @@ - type: startingGear id: ERTMedicalGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTMedic back: ClothingBackpackERTMedicalFilled @@ -271,6 +291,8 @@ - type: startingGear id: ERTMedicalGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTMedic back: ClothingBackpackERTMedicalFilled @@ -303,6 +325,8 @@ - type: startingGear id: ERTJanitorGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTJanitor back: ClothingBackpackERTJanitorFilled @@ -317,6 +341,8 @@ - type: startingGear id: ERTJanitorGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTJanitor back: ClothingBackpackERTJanitorFilled diff --git a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml index b2cf3b879300..31e35077047c 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml @@ -20,6 +20,8 @@ # Syndicate Operative Outfit - Civilian - type: startingGear id: SyndicateOperativeGearCivilian + subGear: + - SyndicatePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSyndieFormal back: ClothingBackpackDuffelSyndicate @@ -31,6 +33,8 @@ #Space Ninja Outfit - type: startingGear id: SpaceNinjaGear + subGear: + - SpaceNinjaPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitNinja # belt holds katana so satchel has the tools for sabotaging things @@ -53,6 +57,8 @@ #Deathsquad Outfit - type: startingGear id: DeathSquadGear + subGear: + - ERTPlasmamanGear # TODO: death squad envirosuit equipment: jumpsuit: ClothingUniformJumpsuitDeathSquad back: ClothingBackpackDeathSquadFilled @@ -72,6 +78,8 @@ #Syndicate Operative Outfit - Full Kit - type: startingGear id: SyndicateOperativeGearFull + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperative @@ -92,6 +100,8 @@ #Nuclear Operative Commander Gear - type: startingGear id: SyndicateCommanderGearFull + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperative @@ -115,6 +125,8 @@ #Nuclear Operative Medic Gear - type: startingGear id: SyndicateOperativeMedicFull + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperativeMedic @@ -135,6 +147,8 @@ # Syndicate Footsoldier Gear - type: startingGear id: SyndicateFootsoldierGear + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative head: ClothingHeadHelmetSwatSyndicate @@ -152,6 +166,8 @@ # Syndicate Footsoldier Gear - No Headset - type: startingGear id: SyndicateFootsoldierGearRuin + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative head: ClothingHeadHelmetSwatSyndicate @@ -168,6 +184,8 @@ # Nanotrasen Paramilitary Unit Gear - type: startingGear id: NanotrasenParamilitaryGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSec back: ClothingBackpackSecurityFilled @@ -185,6 +203,8 @@ #CBURN Unit Gear - Full Kit - type: startingGear id: CBURNGear + subGear: + - CBURNPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorBrown back: ClothingBackpackDuffelCBURNFilled @@ -220,6 +240,8 @@ - type: startingGear id: LimitedPassengerGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorGrey shoes: ClothingShoesColorBlack @@ -229,6 +251,8 @@ - type: startingGear id: DeathMatchGear + subGear: + - DeathMatchPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorWhite shoes: ClothingShoesBootsJack @@ -303,6 +327,8 @@ #Banana Clown - type: startingGear id: BananaClown + subGear: + - ClownPlasmamanGear # TODO: Banana clown plasmaman starting gear equipment: shoes: ClothingShoesClownBanana jumpsuit: ClothingUniformJumpsuitClownBanana diff --git a/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml new file mode 100644 index 000000000000..bec0c1eb4599 --- /dev/null +++ b/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml @@ -0,0 +1,109 @@ +# Base Plasmaman starting gear that all plasmaman starting gears should inherit from +- type: startingGear + abstract: true + id: BasePlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + mask: ClothingMaskBreath + pocket2: DoubleEmergencyPlasmaTankFilled + +- type: startingGear + abstract: true + parent: BasePlasmamanGear + id: BasePlasmamanSecurityGear + equipment: + mask: ClothingMaskGasSecurity + +# Syndicate Operative Plasmaman outfit +- type: startingGear + abstract: true + id: BaseSyndicatePlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + jumpsuit: ClothingUniformEnvirosuitOperative + head: ClothingHeadEnvirohelmOperative + mask: ClothingMaskGasSyndicate + # No envirogloves, some starting gear might have combat gloves + +- type: startingGear + id: SyndicatePlasmamanGear + parent: BaseSyndicatePlasmamanGear + equipment: + pocket2: DoubleEmergencyPlasmaTankFilled + +- type: startingGear + id: SyndicateOperativePlasmamanGear + parent: BaseSyndicatePlasmamanGear + equipment: + pocket1: DoubleEmergencyPlasmaTankFilled + +- type: startingGear + id: SpaceNinjaPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + jumpsuit: ClothingUniformEnvirosuitColorBlack # TODO: actual ninja envirosuit + suitstorage: PlasmaTankFilledInternals + +# ERT starting gear +- type: startingGear + id: ERTPlasmamanGearNoTank + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + jumpsuit: ClothingUniformEnvirosuitColorBlack # TODO: ERT envirosuit + head: ClothingHeadEnvirohelmColorBlack # TODO: ERT envirohelm + mask: ClothingMaskGasERT + +- type: startingGear + id: ERTPlasmamanGear + parent: ERTPlasmamanGearNoTank + equipment: + suitstorage: PlasmaTankFilledInternals + +- type: startingGear + id: CBURNPlasmamanGear + parent: ERTPlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorLightBrown + head: ClothingHeadEnvirohelmColorLightBrown + +- type: startingGear + id: InhandTankGear + subGear: + - InhandOxygenTankGear + - InhandPlasmaTankGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + +- type: startingGear + id: InhandOxygenTankGear + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: [ Plasmaman ] + inhand: + - AirTankFilled + +- type: startingGear + id: InhandPlasmaTankGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + inhand: + - PlasmaTankFilledInternals + +- type: startingGear + id: DeathMatchPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorWhite + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index 12e457ac2e11..50fceea45145 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -23,6 +23,8 @@ - type: startingGear id: ChemistGear + subGear: + - ChemistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChemistry back: ClothingBackpackChemistryFilled @@ -32,3 +34,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChemistry satchel: ClothingBackpackSatchelChemistryFilled duffelbag: ClothingBackpackDuffelChemistryFilled + +- type: startingGear + id: ChemistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChemist + head: ClothingHeadEnvirohelmChemist + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 6a1e16bccc2e..1c9536eab543 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -45,9 +45,16 @@ - type: CPRTraining - type: SurgerySpeedModifier speedModifier: 2.5 + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CMOGear + subGear: + - CMOPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitCMO back: ClothingBackpackCMOFilled @@ -57,3 +64,11 @@ innerClothingSkirt: ClothingUniformJumpskirtCMO satchel: ClothingBackpackSatchelCMOFilled duffelbag: ClothingBackpackDuffelCMOFilled + +- type: startingGear + id: CMOPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCMO + head: ClothingHeadEnvirohelmCMO + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml index 8d37afdc51a2..427771575dd5 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -25,6 +25,8 @@ - type: startingGear id: DoctorGear + subGear: + - DoctorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMedicalDoctor back: ClothingBackpackMedicalFilled @@ -34,3 +36,11 @@ innerClothingSkirt: ClothingUniformJumpskirtMedicalDoctor satchel: ClothingBackpackSatchelMedicalFilled duffelbag: ClothingBackpackDuffelMedicalFilled + +- type: startingGear + id: DoctorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMedicalDoctor + head: ClothingHeadEnvirohelmMedicalDoctor + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml index 5492d02e09ee..a6b0ae543f33 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml @@ -1,4 +1,4 @@ -- type: job +- type: job id: MedicalIntern name: job-name-intern description: job-description-intern @@ -24,6 +24,8 @@ - type: startingGear id: MedicalInternGear + subGear: + - DoctorPlasmamanGear equipment: jumpsuit: UniformScrubsColorBlue # DeltaV - Intern starts with blue scrubs back: ClothingBackpackMedicalFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index 92c5b1857c5f..454322a92cb6 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -32,6 +32,8 @@ - type: startingGear id: ParamedicGear + subGear: + - ParamedicPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitParamedic back: ClothingBackpackParamedicFilledDV @@ -44,3 +46,12 @@ innerClothingSkirt: ClothingUniformJumpskirtParamedic satchel: ClothingBackpackSatchelParamedicFilledDV duffelbag: ClothingBackpackDuffelParamedicFilledDV + +- type: startingGear + id: ParamedicPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitParamedic + head: ClothingHeadEnvirohelmParamedic + gloves: ClothingHandsGlovesEnviroglovesNitrile + shoes: ClothingShoesColorBlue diff --git a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml index 4ff52e14490b..1c5eba7a1142 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml @@ -29,6 +29,8 @@ - type: startingGear id: SeniorPhysicianGear + subGear: + - DoctorPlasmamanGear equipment: head: ClothingHeadHatBeretSeniorPhysician jumpsuit: ClothingUniformJumpsuitSeniorPhysician diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml index 5bcc71854650..64c007b05748 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml @@ -1,4 +1,4 @@ -- type: job +- type: job id: ResearchAssistant name: job-name-research-assistant description: job-description-research-assistant @@ -18,6 +18,8 @@ - type: startingGear id: ResearchAssistantGear + subGear: + - ScientistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorWhite back: ClothingBackpackScienceFilled diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 0db869e3b3b5..a6f0dd7a6392 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -55,9 +55,16 @@ - DispelPower - MetapsionicPower - TelepathyPower + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: ResearchDirectorGear + subGear: + - ResearchDirectorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitResearchDirector back: ClothingBackpackResearchDirectorFilled @@ -69,3 +76,11 @@ innerClothingSkirt: ClothingUniformJumpskirtResearchDirector satchel: ClothingBackpackSatchelResearchDirectorFilled duffelbag: ClothingBackpackDuffelResearchDirectorFilled + +- type: startingGear + id: ResearchDirectorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitResearchDirector + head: ClothingHeadEnvirohelmResearchDirector + gloves: ClothingHandsGlovesEnviroglovesResearchDirector diff --git a/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml b/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml index 8b7611e7a4c5..1aff597566de 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml @@ -16,6 +16,8 @@ - type: startingGear id: RoboticistGear + subGear: + - RoboticistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitRoboticist back: ClothingBackpackRoboticsFilled @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtRoboticist satchel: ClothingBackpackSatchelRoboticsFilled duffelbag: ClothingBackpackDuffelRoboticsFilled + +- type: startingGear + id: RoboticistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitRoboticist + head: ClothingHeadEnvirohelmRoboticist + gloves: ClothingHandsGlovesEnviroglovesRoboticist diff --git a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml index ea4af6a6fbc7..40dc7926b83e 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -16,6 +16,8 @@ - type: startingGear id: ScientistGear + subGear: + - ScientistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitScientist back: ClothingBackpackScienceFilled @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtScientist satchel: ClothingBackpackSatchelScienceFilled duffelbag: ClothingBackpackDuffelScienceFilled + +- type: startingGear + id: ScientistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitScientist + head: ClothingHeadEnvirohelmScientist + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml index 8984fe79ff9b..5ca5ccb1d8c4 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml @@ -16,6 +16,8 @@ - type: startingGear id: SeniorResearcherGear + subGear: + - ScientistPlasmamanGear equipment: head: ClothingHeadHatBeretRND jumpsuit: ClothingUniformJumpsuitSeniorResearcher diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index 04dc55bc1f08..5a4b24b60b12 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -22,9 +22,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear - id: DetectiveGear + id: DetectiveGear + subGear: + - DetectivePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitDetective back: ClothingBackpackSecurity @@ -38,3 +45,11 @@ innerClothingSkirt: ClothingUniformJumpskirtDetective satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: DetectivePlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitDetective + head: ClothingHeadEnvirohelmDetective + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index a815ed32e6d6..e27233da9772 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -40,9 +40,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: HoSGear + subGear: + - HoSPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitHoS back: ClothingBackpackHOSFilled @@ -55,3 +62,11 @@ innerClothingSkirt: ClothingUniformJumpskirtHoS satchel: ClothingBackpackSatchelHOSFilled duffelbag: ClothingBackpackDuffelHOSFilled + +- type: startingGear + id: HoSPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitHoS + head: ClothingHeadEnvirohelmHoS + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 6596c2142d0c..a99f24b2b6f6 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -24,9 +24,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: SecurityCadetGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorRed back: ClothingBackpackSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 2fd44505b82c..066a592845b6 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -21,9 +21,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: SecurityOfficerGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSec back: ClothingBackpackSecurity @@ -37,3 +44,11 @@ innerClothingSkirt: ClothingUniformJumpskirtSec satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: SecurityOfficerPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSec + head: ClothingHeadEnvirohelmSec + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml index 041e063f7a02..584132d0bc1a 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml @@ -30,9 +30,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: SeniorOfficerGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSeniorOfficer back: ClothingBackpackSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 5f68518b084e..8533f9cc3482 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -27,9 +27,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: WardenGear + subGear: + - WardenPlasmamanGear equipment: head: ClothingHeadHatWarden jumpsuit: ClothingUniformJumpsuitWarden @@ -43,3 +50,11 @@ innerClothingSkirt: ClothingUniformJumpskirtWarden satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: WardenPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitWarden + head: ClothingHeadEnvirohelmWarden + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml index 65739809da00..89c5c0f1e602 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml @@ -20,6 +20,8 @@ - type: startingGear id: BoxerGear + subGear: + - BoxerPlasmamanGear equipment: jumpsuit: UniformShortsRed back: ClothingBackpackFilled @@ -31,3 +33,11 @@ innerClothingSkirt: UniformShortsRedWithTop satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: BoxerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitBoxing + head: ClothingHeadEnvirohelmBoxing + # No envirogloves, use the boxing gloves instead diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml index a2974c6eb7a3..1391bd0cba7f 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml @@ -21,6 +21,8 @@ - type: startingGear id: PsychologistGear + subGear: + - PsychologistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitPsychologist back: ClothingBackpackPsychologistFilled #DeltaV - stamp included @@ -30,3 +32,11 @@ innerClothingSkirt: ClothingUniformJumpsuitPsychologist satchel: ClothingBackpackSatchelPsychologistFilled #DeltaV - stamp included duffelbag: ClothingBackpackDuffelPsychologistFilled #DeltaV - stamp included + +- type: startingGear + id: PsychologistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacksPsychologist + head: ClothingHeadEnvirohelmMedicalDoctor + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml index ad810e970e97..f6118ff3488a 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml @@ -17,6 +17,8 @@ - type: startingGear id: ReporterGear + subGear: + - ReporterPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitReporter back: ClothingBackpackFilled @@ -26,3 +28,11 @@ innerClothingSkirt: ClothingUniformJumpsuitJournalist satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ReporterPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitReporter + head: ClothingHeadEnvirohelmReporter + gloves: ClothingHandsGlovesEnviroglovesReporter diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml index 1686e3290faf..d1d1b2c6e935 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml @@ -16,6 +16,8 @@ - type: startingGear id: ZookeeperGear + subGear: + - ZookeeperPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSafari back: ClothingBackpackFilled @@ -26,3 +28,11 @@ innerClothingSkirt: ClothingUniformJumpsuitSafari satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ZookeeperPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSafari + head: ClothingHeadEnvirohelmSafari + gloves: ClothingHandsGlovesEnviroglovesPurple diff --git a/Resources/Prototypes/SoundCollections/punching.yml b/Resources/Prototypes/SoundCollections/punching.yml index e17afd09789d..8d57114c0cea 100644 --- a/Resources/Prototypes/SoundCollections/punching.yml +++ b/Resources/Prototypes/SoundCollections/punching.yml @@ -5,3 +5,11 @@ - /Audio/Weapons/punch2.ogg - /Audio/Weapons/punch3.ogg - /Audio/Weapons/punch4.ogg + +- type: soundCollection + id: FirePunch + files: + - /Audio/Weapons/firepunch1.ogg + - /Audio/Weapons/firepunch2.ogg + - /Audio/Weapons/firepunch3.ogg + - /Audio/Weapons/firepunch4.ogg diff --git a/Resources/Prototypes/SoundCollections/screams.yml b/Resources/Prototypes/SoundCollections/screams.yml index 518bbf72bb7e..99a0d343d553 100644 --- a/Resources/Prototypes/SoundCollections/screams.yml +++ b/Resources/Prototypes/SoundCollections/screams.yml @@ -68,3 +68,10 @@ - /Audio/Voice/Slime/slime_scream_m2.ogg - /Audio/Voice/Slime/slime_scream_f1.ogg - /Audio/Voice/Slime/slime_scream_f2.ogg + +- type: soundCollection + id: PlasmamanUnisexScreams + files: + - /Audio/Voice/Plasmaman/plasmaman_scream_1.ogg + - /Audio/Voice/Plasmaman/plasmaman_scream_2.ogg + - /Audio/Voice/Plasmaman/plasmaman_scream_3.ogg diff --git a/Resources/Prototypes/Species/plasmaman.yml b/Resources/Prototypes/Species/plasmaman.yml new file mode 100644 index 000000000000..5ff96babaf7c --- /dev/null +++ b/Resources/Prototypes/Species/plasmaman.yml @@ -0,0 +1,171 @@ +- type: species + id: Plasmaman + name: species-name-plasmaman + roundStart: true + prototype: MobPlasmaman + sprites: MobPlasmamanSprites + defaultSkinTone: "#a349a4" + markingLimits: MobPlasmamanMarkingLimits + dollPrototype: MobPlasmamanDummy + skinColoration: Hues + youngAge: 60 + oldAge: 120 + maxAge: 180 + maleFirstNames: names_plasmaman + femaleFirstNames: names_plasmaman + naming: FirstRoman + sexes: + - Unsexed + +- type: speciesBaseSprites + id: MobPlasmamanSprites + sprites: + Head: MobPlasmamanHead + Face: MobHumanoidAnyMarking + Chest: MobPlasmamanTorso + Eyes: MobPlasmamanEyes + LArm: MobPlasmamanLArm + RArm: MobPlasmamanRArm + LHand: MobPlasmamanLHand + RHand: MobPlasmamanRHand + LLeg: MobPlasmamanLLeg + RLeg: MobPlasmamanRLeg + LFoot: MobPlasmamanLFoot + RFoot: MobPlasmamanRFoot + +- type: markingPoints + id: MobPlasmamanMarkingLimits + onlyWhitelisted: true # Hides the hair and facial hair options + points: + Hair: + points: 0 + required: false + FacialHair: + points: 0 + required: false + Snout: + points: 0 + required: false + Tail: + points: 0 + required: false + HeadTop: + points: 1 + required: false + Chest: + points: 1 + required: false + RightLeg: + points: 2 + required: false + RightFoot: + points: 2 + required: false + LeftLeg: + points: 2 + required: false + LeftFoot: + points: 2 + required: false + RightArm: + points: 2 + required: false + RightHand: + points: 2 + required: false + LeftArm: + points: 2 + required: false + LeftHand: + points: 2 + required: false + +- type: humanoidBaseSprite + id: MobPlasmamanHead + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobPlasmamanHeadMale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobPlasmamanHeadFemale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobPlasmamanEyes + baseSprite: + sprite: Mobs/Customization/plasmaman.rsi + state: eyes + +- type: humanoidBaseSprite + id: MobPlasmamanTorso + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobPlasmamanTorsoMale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobPlasmamanTorsoFemale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobPlasmamanLLeg + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobPlasmamanLArm + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobPlasmamanLHand + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobPlasmamanLFoot + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobPlasmamanRLeg + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobPlasmamanRArm + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobPlasmamanRHand + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobPlasmamanRFoot + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index ede5deb89747..9c3c21e19f01 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -236,6 +236,7 @@ species: - IPC - Lamia + - Plasmaman functions: - !type:TraitAddComponent components: @@ -257,6 +258,7 @@ species: - IPC - Lamia + - Plasmaman functions: - !type:TraitAddComponent components: diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index 8ea7006c0c8e..a13e8ee10e5d 100644 --- a/Resources/Prototypes/Traits/neutral.yml +++ b/Resources/Prototypes/Traits/neutral.yml @@ -42,6 +42,20 @@ components: - type: SouthernAccent +- type: trait + id: SkeletonAccent + category: TraitsSpeechAccents + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsAccents + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + functions: + - !type:TraitAddComponent + components: + - type: SkeletonAccent + - type: trait id: NormalVision category: Visual diff --git a/Resources/Prototypes/Traits/physical.yml b/Resources/Prototypes/Traits/physical.yml index 812765702e18..a324af4d74fc 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -307,6 +307,7 @@ Blunt: 1.2 Slash: 1.2 Piercing: 1.2 + Heat: 1.2 Poison: 1.2 Asphyxiation: 1.2 # An attack rate of 1.25 hits per second (1 / 0.8 = 1.25) multiplied by 20% extra damage @@ -377,6 +378,13 @@ types: Piercing: 5 # No, this isn't "OP", this is literally the worst brute damage type in the game. # Same deal as Slash, except that a majority of all armor provides Piercing resistance. + - !type:TraitRemoveComponent # Plasmamen have self-damage on melee attacks + components: + - type: DamageOnHit + damage: + types: + Blunt: 0 + - type: trait id: Claws @@ -403,6 +411,12 @@ types: Slash: 5 # Trade stamina damage on hit for a very minor amount of extra bleed. # Blunt also deals bleed damage, so this is more of a sidegrade. + - !type:TraitRemoveComponent + components: + - type: DamageOnHit + damage: + types: + Blunt: 0 - type: trait id: NaturalWeaponRemoval @@ -433,6 +447,12 @@ damage: types: Blunt: 5 + - !type:TraitRemoveComponent + components: + - type: DamageOnHit + damage: + types: + Blunt: 0 - type: trait id: StrikingCalluses diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index 04845764adac..3402b0b72482 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -770,3 +770,13 @@ path: /Audio/Animals/parrot_raught.ogg params: variation: 0.125 + +- type: emoteSounds + id: UnisexPlasmaman + params: + variation: 0.125 + sounds: + Scream: + collection: PlasmamanUnisexScreams + sound: + path: /Audio/Voice/Skeleton/skeleton_scream.ogg diff --git a/Resources/Prototypes/Voice/speech_verbs.yml b/Resources/Prototypes/Voice/speech_verbs.yml index 3f0a4c10fce1..6f9db71a5f12 100644 --- a/Resources/Prototypes/Voice/speech_verbs.yml +++ b/Resources/Prototypes/Voice/speech_verbs.yml @@ -77,6 +77,8 @@ - chat-speech-verb-skeleton-1 - chat-speech-verb-skeleton-2 - chat-speech-verb-skeleton-3 + - chat-speech-verb-skeleton-4 + - chat-speech-verb-skeleton-5 - type: speechVerb id: Slime diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml index cfd728a2a11f..9c1a50f9e4c7 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml @@ -39,9 +39,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: BlueshieldOfficerGear + subGear: + - BlueshieldPlasmamanGear equipment: back: ClothingBackpackBlueshield jumpsuit: ClothingUniformJumpsuitBlueshieldOfficer @@ -57,3 +64,11 @@ #belt: ClothingBeltSecurityFilled #pocket1: WeaponPistolMk58 #pocket2: DeathAcidifierImplanter + +- type: startingGear + id: BlueshieldPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitBlueshield + head: ClothingHeadEnvirohelmBlueshield + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml index 1e97aee0d324..13f74d3dfd5a 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml @@ -34,9 +34,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: MagistrateGear + subGear: + - MagistratePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMagistrate shoes: ClothingShoesLeather @@ -44,3 +51,11 @@ id: CentcomPDA ears: ClothingHeadsetMagistrate pocket1: UniqueMagistrateLockerTeleporter + +- type: startingGear + id: MagistratePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMagistrate + head: ClothingHeadEnvirohelmMagistrate + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml index 290a73e392c7..515828560866 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml @@ -33,12 +33,27 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: NanotrasenRepresentativeGear + subGear: + - NanotrasenRepresentativePlasmamanGear equipment: shoes: ClothingShoesColorBlack id: CentcomPDA jumpsuit: ClothingUniformJumpsuitNanotrasenRepresentative ears: ClothingHeadsetCentCom pocket1: UniqueNanorepLockerTeleporter + +- type: startingGear + id: NanotrasenRepresentativePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitNanotrasenRepresentative + head: ClothingHeadEnvirohelmNanotrasenRepresentative + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/fonts.yml b/Resources/Prototypes/fonts.yml index a881cde95533..231c551e4dcd 100644 --- a/Resources/Prototypes/fonts.yml +++ b/Resources/Prototypes/fonts.yml @@ -70,6 +70,11 @@ id: Cambria path: /Fonts/Cambria.ttf +- type: font + id: LDFComicSans + path: /Fonts/LDFComicSans/LDFComicSans-Medium.ttf + - type: font id: OnlyYou - path: /Fonts/Only_You.otf \ No newline at end of file + path: /Fonts/Only_You.otf + diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 759c6eefe5df..83fc9bd23112 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -600,6 +600,9 @@ - type: Tag id: EmitterBolt +- type: Tag + id: Envirohelm + - type: Tag id: Enzyme @@ -1073,6 +1076,9 @@ - type: Tag id: PlasmaGlassShard +- type: Tag + id: PlasmamanSafe + - type: Tag id: Plastic diff --git a/Resources/Prototypes/typing_indicator.yml b/Resources/Prototypes/typing_indicator.yml index 7e8c92787feb..11f339454f2a 100644 --- a/Resources/Prototypes/typing_indicator.yml +++ b/Resources/Prototypes/typing_indicator.yml @@ -53,3 +53,11 @@ id: oni typingState: oni0 offset: 0, 0.0625 + +- type: typingIndicator + id: plasmaman + typingState: plasmaman0 + +- type: typingIndicator + id: skeleton + typingState: skeleton0 diff --git a/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml b/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml new file mode 100644 index 000000000000..d0c41a3100ca --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml @@ -0,0 +1,73 @@ + + # Plasmamen + + + + + + They breathe plasma, and oxygen is highly toxic to them when inhaled. + Being exposed to oxygen sets them on fire. + + To prevent ignition, they wear sealed suits made up of an envirosuit (in the jumpsuit slot) and a [bold]spaceworthy[/bold] envirosuit helmet. + Other suits like EVA suits, vacsuits, tacsuits and hardsuits will also seal them from oxygen exposure. + + They don't experience hunger nor thirst. + They don't have blood and cannot bleed out. + + Due to their skeleton body, they can consume Milk to gain a positive moodlet and slowly heal Brute, Heat, Shock, and Caustic damage. + They can also consume Plasma to gain a bigger positive moodlet and heal every damage type faster, except for Cellular damage. + + + + + + + They infuse their fists with plasma dust that combusts when they punch, dealing [color=orange]5 Heat[/color] and [color=red]2.25 Blunt[/color] damage. However, each successful punch deals [color=orange]1 Heat[/color] damage to their hands. + + Plasmamen with the traits [bold]Claws[/bold], [bold]Talons[/bold] or [bold]Natural Weapons Removal[/bold] have less unarmed damage but don't take self-damage from unarmed attacks. + + They take [color=#1e90ff]25% less Piercing, 20% less Poison, and 15% less Slash damage[/color], + and are [color=#8658fc]immune to Radiation and Cold damage[/color], + but take [color=#ffa500]50% more Blunt and 50% more Heat damage[/color]. + + Due to their [color=#8658fc]Cold immunity[/color], they can live in cold environments such as Glacier Station without the need of a winter coat. + + ## Equipment + + + + + + + All Plasmamen start with an envirosuit, an envirosuit helmet, and a plasma internals tank. + + Their envirosuits contain a [color=#1e90ff]self-extinguisher[/color] with limited charges, which they can activate when they are on fire + and wearing their envirosuit helmet. The self-extinguisher needs to recharge between uses. + + + Cartridge refills of the envirosuit's self-extinguisher can be bought in [bold]Loadouts[/bold], or printed at the medical techfab after research. + A refill makes a recharging self-extinguisher immediately usable again. + + + + Their envirosuit helmets are [bold]spaceworthy[/bold] and provide welding protection. The helmet's visor can be lit up like a flashlight, using the inserted power cell as a battery. + They cannot eat nor drink without taking off their envirosuit helmet. + + The plasma internals tank lasts roughly an hour before needing to be replaced or refilled. + + ## Medical Treatment + + + + + Before performing surgery on a Plasmaman, their envirosuit needs to be unequipped first, which is disastrous in an oxygenated environment. + + To get around this, the Plasmaman can be buckled to a [bold]stasis bed[/bold] before removing their envirosuit + to prevent them from self-igniting throughout the surgical procedure. + + + Their envirosuit helmets prevents them from eating pills, but their envirosuits allow chemicals to be injected through them. + + + + diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/equipped-HAND.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/equipped-HAND.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc8e63a73715b1209e6b2b6d485cc4caaee26b9 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV07_xaSW-r_4d|YKc+x|wukxV zCQ{P96OVc9J+jq+&1?JB6lv?7%qx9&u;=JEIb7kee1?$))-==w?IV z&i}vU5Bk<{#knuL6BM#WyX5i23X3;O%YGkw%6B&+aHC#u-pW^{&pz{r<^DTY53)ez YJ8R43d3INVG(yQCDO0u)117cxXs(X3)v5d9h2k z$U_kYg=^R$QKO;`MkpPUE(T&ZsqnORtQdnOD03zcwqQGM`$qybruTlczggWsx*8G4 zK3JCh&3o_r`Mvjhzu7YUXDb1e0QMJvrfD{R>$>jwCji?C@UxMDGAu=YBNp@9JvSGN zf+!kb^q$|Ys`8-TcK}!VHG4CJ6i@xCz}+WtsA>bPRolf>q9_0sn3z_PNF*@aSAmg% zRTqMv4fj=&IPmmE4FZ807=}R*s)*YOVn+Z@!pT@X5D1V6aIqUM#HI5q_-3wPV!8od zuM?xMD}ZI=psxdHQEY@~3qouU(9&Vgdo`pYI{i=(NG}gRwh_EsLDc|)L(Up83Y+@; z1MoEg^+%9;|C%5u9w-P=7=Xk@FpIZ#0!#Chd;wj@YQ^K=P#j!(N8C~8(laQFgTxsm zReuPI(uHIJi2MK~t{kNxb(MZJIms9zvf%cYKk=UlH-uXxO7ClO#RUj~Cn=8eHJ2xI z&O{CX_xx)kiGP{OBwX9KKwGQu(aMw1vjM~+3$=A(Y{I0K z4N-|l&k}fe=N(?Xt)sOu^gQ>Yka3QlnKKUL%sjN{9NK#oxMxGQW|QSk0Xd02QBZp? z(;D#K?siYKRzBy_XPa{~!dBM|x|F;yqM4j*=ae|iXcBo3p}bZb$?0VTTWGt~1fq11 z#Hj6XwaPrwcXLkDG_ma%rXSjTnPk!K>NT6~XIYlh;ym#=Es)ff<=L`^J=&gLMt>u? lTiaiM$w~kvfD*u7><<}vlPz-sqjCTM002ovPDHLkV1oTiefIzW literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-left.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2016841f044da529ca9eca00c8afdfa9701981ac GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=%RF5iLn>~)y|t0I)quw}u-ny$ zQFrU_00X8}wZzsbC6SG@Bqds#F4c3)(bu_a-0<|t&Kf14J`niewECpd+0xRvlTYrN z`Q*{=96hzyY1b`x)*pH>^TG~&rSrPEb~Tsh^G|#}tuWrMj&oXRW?OFcukhE4vT zS{WSr{rLZ6Gl*G0vf(}VMd=qu7xx>u`0WdqSM2kvZ83Pk1GMK9KjRH=qocnfctMIi MUHx3vIVCg!0IG3S7XSbN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-right.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf0e1e75a6eb11f9c15b22a7a80ee51cf4b8b52 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydu{YLn>~)y|t0I*+8K6p>THv zQ`D>1bDIP;Y&o@eEcwiJ<;(#Mktx%aa+gft(4O;SKjWI^>E(4wK)oRF!R_S1ce9Pv zCMRwweW@3FXjh5a;S8b659gd+7$(2@#6C~!uhVNeRoSzb$EDnlt31DCRanuFRX6u{ zob=*bw(9xwkgHbg_jQyZh5^Y36Q`ebko7ZTo^N7*e_!)ihtNDT=B?fj?By63w$IzP V!`nz@T23=axu>h2%Q~loCIIZFSg-&9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json new file mode 100644 index 000000000000..e28954bcefa1 --- /dev/null +++ b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Inhand and equipped taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e and modified by Flareguy for Space Station 14 and modified by Skubman | Icon taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c77c50ae3d19e763c60c44e75c7bf9d61e333875", + "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/Envirohelms/ancientvoid.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..873fa47b2be3b519b92c62d2f0ac2df5b4931787 GIT binary patch literal 506 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU_9vQ;uunK>+LN=|3eNEY!9|K zEjuC-6WhaiMnFw1O~^;a$I81P!T2M;#SeC$8xlD;W?Rg#2niQcW7@2jm*DjlE9T~@tSEf z=gyeJaz|d}uEN{I&(U?OZ#l;@UHXcVi)Vnk>Y-5klZKq^|uAB{Z(~cBnuVjfjYV=J$ zpSgbdg})4!O)lz8Fo--IwO(`Y>tba_?Gq`X=kM?u*N=FkE~j zy@PGf+&PaNFEcRgtP$IKy1P|YL96|g`m^$;>#MU%toLT#&yhCZvHZ_$efBfU;N z6Da(e>zaLbmf9VrKP!KD&-mMSeMd6`L&689L+s-Aa_&jhK${pmUHx3vIVCg!03h8t A%m4rY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..982f4081023c07a04222308890f1c4ddfbcb48cd GIT binary patch literal 384 zcmV-`0e}99P)1RCt{2mOl=HFcik0#+ftd!U~6QmqomR7!G9A8;A?;9zs?Z zy@1AW0i=~;QG~AoF(iBouTA^DU;n)@pg*ev=m6RYFei%g`Zq+qMgfGenY49H%MJ*` zNEHMIVCLpq-zf|;5VnY85EKFe$TOEAgaix+0U=5Oip;;kFc1`?5I{CR((CNY=Y;Exf7l`_0mum!t`iZU)pA|`4~c5xMgW>n e2haih9pC{sV{ryj=>D$&0000 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json new file mode 100644 index 000000000000..21fd8d52aae6 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "visor-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/visor-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/visor-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..6c86bc9ecb993b520676de32fd1829bf063cd7ca GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=F`h1tAr-gY-a5#8K!Jn7p_C)+ z<-ham4vEAru*RF?LMV_{nU+!8*fCl=W%exyuBIKd0cR#;k0AV zxR}|FbcEkg>WDacD&*gaMX`Il9FwN6zV`QA+NNs8Zb@VAPtTYizV$h@Z)W~I9q#+( zY==HFIaq`-@$B+=_4sg2jh<62yXcf7MxUj*4?LOu^~j*E02&51tm9{d_F(`g&v3)pcBJv=-P`F)o??@5|@K zU0E?o@%9WS-*QYn-mbNY>B`0}2O=8M-zSx_TzM8;^5oBR#yOv!N^ht$?4CXO&BNo# z0dvfcdN9m=@#?HZ{=Da(Wj5>NiX|L+#~h+J$9<9V>A9)#bIkWHpUAM8<>Xeks=a0W zbKg5kwOj0vc^sPmZ*TAy$^X$NM}Kf+2yU2me(Kgr@d#U%&1aYW-zW9*NByJtRz(?o zhL*>y4F!7`1p34ozyTJ=z;T?L;b8@%0!(rZYk=F6k{SKkja}<>i=Ks6iWN;y>v`e2 z!7=d?M?snD?8SkWnJ#|6S+-d3xwKew7N=kSgvXBNTFdPn^5-2}V&>bk~4&UXek z*FKwPLmHXX6sGEB^)}nb#uP6XOt{D7pvlPrj9YJsm|hDkZhHih)`0CzTpOV}4H4~Ta;e5tzSj`Z*Q9N|o&He`j!|Nl{AI8ni WHh(tPb2bALK7*&LpUXO@geCxARBo97 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k%3ZY&IUw^VMi^9be?m=Hn)K!Y`V9KUw+b=IU1 z;ttR>3>-K(L703gj@>f{M~z6j-0uO>-PfuPDoYitFK^mR)we&GhIWP&MFZA+shrMU6@qwy{G0(9?rP|aN+h-1b1^9g66C}v>}oRfQRs7 zIEMHs=2+vLLOQ@xo!$iQGO8b-`RS>eUv4G2C^IkY9pJ*vW5oN1Nzk#dw=>H7_m(oh zK2OG{1-^vJY-A8)C7;(Z*8<2Ofi&jL?-ng97eU;qq&0hp)0 Y0Fowo_spjN_5c6?07*qoM6N<$f@0~pI{*Lx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..2988ab5d966a73855f969a4fadf3bdf605746701 GIT binary patch literal 748 zcmV5Ggn^8~*VyoGyry$C+6LVq#|wSEHtm=i@9j(>Yq z!lz|6Qv5NVBqBu}^9yIVBS$g6aE3@xcl5SB()a#47gm5kGR@*0H}1zC;PtbdZH#x^ z2qe=?^woEH6ac`hw?*6N@+e&KWu8P{XwQL_b(GsBU}b$Uci8f79IJ@}mUrU-3}@~D z0H_29H7mDEw$WS{$!Imu?-|y(xaGFZjaEbKL(ph7pp1u5@B`>*h+T_8JJe9{p8!2@ zC2$_yh9&`E{}{#cg<@=CW{zzxg_$oDW1CB1HZe2De4!Y_e@N!N3P}7~`~KxK9H~Ab zgb+dqA%qY@2qA=zL1PqEZ` z2E%nit=g;fE4o%k_*}Qf*h~o_hais5AIq;rPbA1bR8=BN@XfS&M%sW9%)dnpq z2Vyo~3CdVa6p+nF;p#N4hKx~;=11yl847GYo$I-6VZQ_FxoruFFuRD26G8|fgb+dq eA%qY@E~g(R#!_elGH;y#0000r$#-Cy@QIBzU}L%54r)k+!PNp^8~`e<@|>;GDnpOyNV=17 zAK_Qg-@;V^OZ7lI^jkaaP*hV|cmV)FHKi>L!WaKM6)SInBr6!Uo6{^G=t5w_b`z4U zU_2VEz5;dAAim?CYom~lz*0R}s)s^8GRvH20=O$sHx076tFxVxa{vu|d`b+Gte{(a zLf@ez)G2ruV8|ZK?FSJLJcfOTl48kY-P-g=ES5aZKp^;!ya8Jgl7L@fJhK1* N002ovPDHLkV1f!>v#J09 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/meta.json new file mode 100644 index 000000000000..efe0ef824eaf --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..b337689898182b36e19abde2f091b27f9cdab337 GIT binary patch literal 845 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V24 zPZ!6KiaBp*8D<1K${gF@P&m=VBOoTJP)ky(iEUwkle28enMF-}b2pa?OkZ`eOmJde z{<(yMS2jA!@_4;a$@F}!kS|oaB4VBZYkNt@_qlu3bS>`8tPXfrH{oBkc*XzS`v0xv zYW@co$mlc39QSB&=g;~Z^Zx9^ACF&VSL})KR#0=B86VA{c3xb~@Y~kb-W4q`eYk(V zSu&^JndO=0`Ev>TFFS4e5O73YLp<$>dD_ojtp#=K_5RHhobQ`+GUE7C>u>?_{MqkY zJ~)WDN?1$GUZl!!^?uaNBWF9KcSNs#uO|*|n1;7|`+ACGl;_*mI{rK+v~R8cgQku(3|z@g+Zc+^KYJoLVYc{+ z6F=vkW51E2|4XmF)@_=-{{AH$hd=Mi;9MY-x;|ZSA0Pj7OS9MpK1TtSh-W>|jh?6O zT)nYt*ZC_#4V56um2VDf+|@+kXOd5<>|S^ZWIvphwDEXm!?U0RKbG#FXEXQF!#c*>VLvCvX!E}G zx;(>`yZT8tn-(}8u~u0u_))7rr3Ie?@fN3 zqo5YI=*~jc_e|@2uP-+#YIl9HdZQKB!+wFn1)qGDE>FqpI&dl9Z1#qG@(ThwGbS5b z{$`Efd{q<^9n;L)R=nX$=4t-*$6Nka2}+4IO`N{?>~{vc-%tN$YFgPZe&H!`a`u9# zj(4mnhu$ui?hO2<{3ATkqEDQm?=fq`;|j(H7I6$1+|NvZ7r$#-Cy@QIBzU}L%54r)kVQ!Pj5=V{0c1I#zP91N=C3^{V%OPR7#f=! z7-{YRkmZif4h+999Afw+n++D@dpwoF(ZB)7YWPp8BS>-p$Z|acT{!>Jh09>tMi{~e z$$`|6;s}yM0A%U8rDuUGZXiAj7CQ%K_c9no8IeBxw!+CBnCF-@+Y%3_xNaIglEfga9a2!*T-1 zm(ii`84i8c1IyX*UIL53ET>sH05Ui$E9<|rvoo;tJH%k3ZUPn;{&a&uPga*<@7}!( z)22ww4fH}gh+~)t8TW7$0F5X{cSx&YCKp>*?2++bK5C<`k m4~AxYVAKJl4j6R+H30xx&6VH7r(;$C0000_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..baf8c4a5ed0520aef977e0e30be6d174c9be0ee7 GIT binary patch literal 787 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1h zPZ!6KiaBp*ZOj&N6gjrv)zO;2X~X}9=}tb9-38&1ODv@w1&a!{u3XE)*%*>uZI;Qz z=5p|uD@RhPqN`PJL`+j_tOJkd@&#)?pS}0w8gsW~KHHPM@^ALewcKI;`R?r0hqdC0 zGNKHJIE4~+v~HSv{n&Ab-R(S`Gg9mF8E4ci%+0Ht`P+7K1!qJ?pZHVrF&CKsN z6!D$#$_&96O#^1MUBp#mk%YN*zhh@R3zhC*@ox6Yd z)Gg+m^|rSCe@pA)UDh&%*WRz6aWK8uboGrroH6@E!dM+eKNNjoGMN4E!`HpNWpgGR zu6^*r>Vkzy;X0|?$&wA*8P4Am{l;+q?3&9Js&n&%F!_y?!RJK`Kt?0p{`mTLk&K6n>EsL2P@KOhv zZn!-O%H0!w^oDNHv#piOiqx}vcDPl3>jlET6Gvo6k?(uys6L4*x!IyQJNkeBkV5`G8rII4sNWG4Yh0-I?uoOvjn) z;}Yxskbsu6=B;;kG@oZ$cXqqKfPmln^%6$}D>TnyN$4)F)(N**$CQNL=9fT^6p)78&qol`;+04=m)7ytkO literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k-$sVjp zA;cY^Y19c3>O9J|umi9u7gw=#x!(hr-8X{})vYS_cJ^21L>lC77>l|f>VPq4yiQ&g zAUI~N8OS=Z)-|N*x*-B!d$~i?h22dP;KDbTNKVcG^{H@tn(6JbLTwkg z@9Df-;FmBp%M22<7IhnQD*yxG1zz%yzXF|WO^MB|0T}8?mD*;|Rkq8({g5~S2jBp{ Y0Mcc8)cZ<5`v3p{07*qoM6N<$f{-A(d;kCd literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..43ced855d8887542bb5f42356775a448d33177d7 GIT binary patch literal 877 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|T?X zr;B4q#hkaZ4rU8GiX5{Kyu7MKg8w4RY^51)RUbDjc(m|~z=o++SH1n^sy?XwWB$v2 zr1?c6|GX-Ly;8HZY+K}xaBx2pnzc6Kme&=LEu~ktF~)vBYjrz9!)WrGrZaz>W}MM^ zQ~mz-_Q{Rk`y2|lFa*dXGX7H6m$m(0yu8-5PBo(X<(@;g5C8o*cjoo`0*uVb&F?C{ zMH%R?w>|#r&nv~5)tuZD?*6&;?zBpR1lv3N>V|6bcZW7*oiN)jBR!$WiG|B%7{`|wVe`0FO-zTK~Dl|BEt@{8=%+-7((9VQU~gCBt|NE&)YH%fTu=O;Ui@+A!}Gp+Tc3N;uczF5XYZ!i!t$Wa zPg-&bcc#tOt{rg_-{oq!=dV#qkr8OUZIL13`a|@A(t#ZkYg|QZBs_APMAl@^d}A*E zKm1FeMAu^0hDRBU3oN1-H2TCCaB(j&1uUH6^;kx0s&Jy1`_5RY@3*II)mCM&G@K=Q z@bD?+{aU||E3UeJdFuw31=YumIj;#jY~xrZGFgAq)XYT2iVsttC2c5MXLaHi>k5B{ zd)JQ%9cu9Uyh3?{tLe#Ym)(v=P7!nbCAvUK)A3;WH|~~Lt^cRPw!RQg+wBm+5L8v~ zJMTN^hoH(CGAZ3PO7~qh`$sfbo?d@4_*I~oN!#>|Lf_{dGE!=8nty)phuRNzCPw$) zZ2GWw$?C($FRL>NW+*SQYt(p9_T$;<=H+Ug7k)Ea+_?~$d|>G^j#uXv_;8pVFXw3W zlQvX8*7WX+d)qobC)u`}^_#bwwpZ~jsP6acHMsclcK5uNd2?8HDhGbynz8I=aN}3P eA-9KNKjXqZE#k@=OPqoEhr!d;&t;ucLK6V^){Bn- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kRO}M_u3o5;!Mhq@jdz!D<#nhTp{{(mQ_exz* z>Hy8{Asd%ZbuphEo)cd=XAU(eb)u(hD2;oO5aG~)#&W_uvv+_C zPb^HvG~!FhFD1v#hbC^TH`%>}6b%URGp=K<1t1}O-;ZfZwZ~fK+5nX6x{0A%b#<44 g`5`d?2EYJ(0!@ULHCEe7XaE2J07*qoM6N<$f-9}M1poj5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..1786d88729fc5ec31cab7d35ff707797267e9bde GIT binary patch literal 929 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Rrg zr;B4q#hkaZ{5?V(WsdL9&pv9}6tmdq&02wtDV`jPN7za^_^z^db zG^|pm#r`ek;OCm9(CC?}x9E-CVWrFA(Q8h3{r+_}XLC+cyJRi5;b+FbZ}Zuneg9p1 zf6v2%`DISUJq#CQG8s?JmTr#JpT70@KG9=yZp2NAY`i=3U1z)ozIZz0 z-HzUOeeJB>ALDo~)V#YXeZP#c`~19rt0uQuTOB+ebG=nG+vUW%gx$eb`!4ZSNWN!X z@nYrD?RSdyA6c^NTvGjOgY62AArr+C-Z+ZZvsQd;*^nb+JO812$%RkL=T{nX#$+}~ zb1vF*BK@=ENzjI9rr*kFPCi`Ek&tPjjS=sVdy5N1kqbg&hOHX}dp;6 z$f2``51cZRx4yp9OZe-b^1l`r*y|J4RP}v`dAiGrM@lP{bQ^9ot*L0-p{@}1v~E-6ni{=go9!)6sxC39C_A#u z%9--_BYX5E2`=l5+NMbdyWVFNzBsvDvtK|ydA;MismzhAQ+6G;G`hKL&-p9q?25b9 z1Grq~OqhGWG3oc_N45Lq6&~DuI59FJy{|&j;!l~|{huOPzbDtUC&=wP@J`ufQnp7- zkHV9dPv*`Ix?7)ZFX8Aq@TRP7YvLLHAGfw{o%c0QQ1aL9zKGkOR5gS=57Y~Fwrri- wcxJhQ$#D*bvxZC#;KZ!VfX;QVW~^ggw!7!KkBYq-FwZe~y85}Sb4q9e04;^6x&QzG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k%(?K#gw9XEl6GFVI;@=MJ6Q4i2G%skjtr3PDW4A-;FbRSO+*X@dy&ElJ)x?)$yRy(8=RV`%^l zpaC>MHh{}oY(EX=LjFk!xNWWF4?yO|{w}uKAqLkK5h`8vFr-*SIaLTXfW%xXXueDV zl5ZmegmMR>=OIpAlin;?u8f+nZX!G$hpO8t08nMcqcRTbBb+(si`TdhXg9VI0I9p6 z)B!ekiVk}3UGZJnsm^j7;~eT9bt3(qOO2rfSw>0#++MCwRJuT3;7!*w)1L(;06z8Y zMtLEGG?$Z+3xF82*Uwoeev4zA6KiNvRu4d@I!f*VuJUa&MA!TfscKlDSomX}+dV)V zPilLyadAK;huGjJ>#i@%C-)to)z9%JB*kPf;W_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..ff26b7a61c9b9cf2e28779ae4cf16cbe0d3a629c GIT binary patch literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|PUw zr;B4q#hkaZ3^RfQMcV!+6>Jd5)H%B9L(>9Hj#dTMxiT_LZy$uU&kEge;pkFX>uWm& z4sO-c)#DPhvapCOsF)>`q2tB0?PA6ysS^t%=6#>@ZJE@{FZaIKPAIn5SibY{-}683 z@9k%QendegouMT;=RoJh&&%ENc(y*PGqcL(-pFDWckSFZ?&$e~jNxgQ9JkjMUVOj# z=II*@T6Xg~9*5mJd_q}Xy8QBqpVnEj^SfGgSF89ec(k?7?d7^<>=E;?<@#*c#nkLw z=%c%}P;~K(UH6YEJj(Dh5fnYkmdRW4ciZ6;3`IYa{xPWqZ!b)*lj?t7Ja@;Wc(ycw z8*)b%zq)*RdDHxLzYYWx>95jucx|@)z$=zDQ$jYbda*tJUcr<5f|G-f`d>dKBY2fl zVPD$p8rB^Zt$kbi*qld%D z&fDj;YbD%2oX_Z($QX4(+B?Z8IKY2F1AFo-3$;lr_UIi}V+`JMEb*eqW9<$4A_uG^ zx>x-$*igk8wDIQO|C@j8FPwi!pwF1$P$8Rx#W@C!B&V>i3z+MBSm@^#=#@CB-e*er*-{b^c4S-Zr%_fB0U^6X)0+`fs<` zwP`n5o^82XcZ_YqZ{oH zW7l85(%j>m67bPq&;GGY0Q>P(RSKJTKdX)`Z9m^z&DdGQ)b-H&u*TZAvaa()BV05- z+^Z}x$qaFO{vr9hwbOk53llDwX(=ebFrUjJHS2-6pb&@fEbj%=r$#-Cy@QIBzU}L%54r)kVQ!Pj5=V{0c1HqAxiCkGyhK%vD%O93=fvw zVx+kPK$de0b2IomYcW{veFzpi?kvyH0c3;ZNOc5B4uDw>17F{MMUe-|k?IJNLjYu{ z?g@2<=&gSlbQ#paV$mo5GAJ>~FkH5{Nvd(gI{@Z;rL8gyVd~-76`fegaL@Y*NufYe z2!JeC7gA@q`1%5vuPAgh6QbrV zjT`_c5r&&1wGFaF};=hEZB$yAQL4X{~Np=7TyxsExWWj$1VDXC#UR-|;lOqX`l?_1_ zZB#w~|HW-cg|zX{JF+Y%+W{aDJN+Tt!q`0wWP_pE9vF4Nr~^hFKurJuriqcPj^fU1 P00000NkvXXu0mjf1<{~3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..51e2292e5fcfbe99d08269aa93bd624d1a22c898 GIT binary patch literal 800 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V0~ zPZ!6KiaBp*ZR`?ulsNwXV(bx)$dr#cPO};sP0CyIC#dgGGqY=4us-3<;?^ergyP$8 zgkvV(I%L8w$fOvfC}(+7n@>f%@PBd5bkhXGu{H;+IH6<+(>5Pn zc2+6nvuROnZSTpyoNTVizlwblV>XCAu(2{<@9>i)MJ{}W$TA!M`L_Qrt-g}8$0omf zDuYnQEdR#SZ*7hT%310jXnR_8Ghx{7D2A&HqOUwdA7M8DXe^TA_ z@Ss5VeD0J;w&|=ll-~ciUlqM3o>7pI{r1jXX7Q|k@{W0Bdt_$+U;01(V|b#*ac+jE z6^sjH^cki+W^E|i!w}FX4hg(C2DoH8~io)bzD3qHKN z9o>?c@yue~EAu3TX_dYbCUbGEI$UuYb3ik);ml5;4eztHe Q2PSz2Pgg&ebxsLQ08xcuH~;_u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kNX{Ve~VpZu(x(?3fCXaEhM0h9o2 z+b*Y9(}TIi+k)aa?z9d7bJH|wWRB_a`9aLx_3vqYwnn$)La+c}ZWu;0&hxzP^y?2| zSi^x}X8@*7>5#XZlT$Uwi{^A&wXhR%xBESSJpCXW(6BqC(ard14L~-R8&(!r8Ia~s z@ai8xU@T&LVrAl_GKA@=VgVq%IHAnKPeuEvUX!;3fD5?2-V*JOAz+SJo-*9I0Jwxj zQ8WO}Z2EUOW+-^=1^NVPoFfJAjQX%c@_(ssfhpOEHiB z>SHCqk|b&GC4{~VO8NRpshBGPNQj{4msysHad6=)nJWW8?vvXXx{0g04e1{e4WI!u Zz$degoS80O1}*>q002ovPDHLkV1kUxxZD5$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..3c845ae012f793e5e7ce36173b6a45f159c85b48 GIT binary patch literal 797 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1} zPZ!6KiaBp*ZR{3y6gjrPq5hDWc1-TpX<>&ZsAsylo5~XmlhYjU{ce4dy6nX4pP$ksf81l{aA$2O zXkwAzYfm*hzy0x}lLD3V%majfpLws#Fxh;z?-K8X5(Ag&naYOA=dLRw0`yCmBmsWM!Z-!J|6 z>EiH;+NvJ^<>I$b{JatRU{(I!xWzM=J7;Q#IegP`o}}XVvsvrG=|{#1W`7@FFPDD1 z!>wzP!|y#V7fqk$D`__zYI&f0;OTbnYL++8c=d|v%w{X9=~Vvv-Ba`V;q;t+yDQ`O zuoQIi_460j7Ve$<+@gfh?n~8Pw$pPAeS@Rl<-J+-KEI0d088`11vy)zGIXnF$noU3 ztnPnV(lvqg$D?yU?l026=boVLl)7%++2aZ?6nEUt;V*yuzdf#1QAU*EP#~iMK59+^ z;~L++cPhVZIpvwtJ*QIg{quEaB?`L}nh(8t!j?Jf*3LDz9g>b2%060aUGq)AV!Ks@ zwVv_g3ws=Sh3?q&dgh!7hocxWN5Nn5zsnx;{rep=d%eHp6TaC2yEa;Lb>HW{(s=stoHM?HJ1WCczWifo z_jZ{*=j2WO1ntDn1#_MVA6YP~d8vQ&zFqSK{=HNR5pA02-!kJn!@qCmw`;_9pRubF z`c@>oX0zp^kL)JjZuTz-PXwo?5C$C79)@~`kDr<(UoZuLG6I9AtDnm{r-UW|bpT|* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kj4cp)U?t8>}qoou*%2Y3#DhF&Uv}inlW$f9>Bz580wp_lf&85y7NkO zT!Bd`+q(%7l|ga0rPnd91z;e&TPo5tT?(qyMtt+y0Emkbm4=d<#{c{uumBdo0_-z> Y00MoFjGNZ8vj6}907*qoM6N<$g6g@s%m4rY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe11f6c75d0ed7efbae376677c04f2d4b534bab GIT binary patch literal 1068 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|WCt zPZ!6KiaBp*`Fn^2${gRnxm253^p3sHQ&$oGtpVb>3x&Q3DX*AoRnm1JNnp~su6fEC zkvcC#E*V;zRB`$wy7KF;VO_}Led*b*ro1hs99i-2_uh;QyXkxXosY!(TAM#Ln~mT9 zt-F8!_D#vU{f{TiapwGxYvVBIzrSxzX79Z6DHZ_@rxs`(pUU{o{JYV=zM-b(xUU(HQ|EpS)4m&xw@}m&DAg8XnW((@mBMLtFFtd9ExX65Z~+> z@qkC{&#$Kvbz(XayDOIjt>&;lb$F9b&7$KQEt<|<+Umox{XO$jmM7m|8aZ#+6dBLN zcZX4@gLiZ1hE~b9Z{Hg9)P4DqoBZsje%|!ww^wkiU%{}=4x5)TAxt`e<`j^hL{7 zmIS^HIx}L`ra4J91+!#k`DWeRw&m(~G4&HsVImJ@A9NgG&tBT|fANF83)Yo47Hu$; z|90cQz*i%dlYvYQMN=3i$fz=?xN|aK=YEYTnIfeq_0=_^A?j<@HRS^zcG*3+qH^bz zyMWMwu)TF39|gborFH0Z;=2XmN*^BVHd#^?bRuQmqffVQht`S+E?ijM5WN06d&!T# zbr1T|rk_myz@lw++WYgrHG6M|%`?3>MN!3JYt`T1^VoMdHuJMN?+JhK@v!~}uGs6R z|8g8qd-n2H#J>9h!EGP-682gyKdTmU?RD`^ner1aMHO~9n5e}5mD*srIV2;Ux7t^F zx%z@l`7btba9_w4Sy-BFaky$pMEWtQ#;G%(&fhq%@j;6H9lm)7pQ$XYbMpGjG1G@_ zvGn(beSy0@ylX9U1F}1>YPPaI*jjO;Jc;+)p=0UHVt+sL^EZ6Y_Emexn({{Mz55B3 z$u+(ujqLuHt}NrUdCy-^AeQ9InUnZdN_64L4b^NB*V*13;@-0Uut$51f!G^)Wh3`* zKZ5yr|8h-fO|VW{_hd=?dB&V~EWNXBGHeRi!{u7<7ChPDa>M+5(Rz8uz1)PNV~O|! Z{=560v8o51l?P^j22WQ%mvv4FO#o91;UEA2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..a59d97aca614f43bf46f329ac87f8d0674070729 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzHBT4Ekch)?k1ph8FyLS?ICtpN tfA#952$Q}gro9Xd>rPeG^D%6=x??KK(fPLXrvh~_c)I$ztaD0e0swfd9Mb>* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f5ad4ede171a2df76b0c4a2be69946fd24e0a393 GIT binary patch literal 472 zcmV;}0Vn>6P)^8x|*i~4|0uSPWgeh;%6_3Y}$!y{5@DBU=d0~$(lMLdD z0enI7NsR0faxLqQC`NN1v=XbL)oQY)nroB7#$pyy+B=j&h~+xySAqWl(=?Gzr=eaH z(a391kBhK&ED=v(Eoiym0Az|lH+3v#_pr|Vc6J+Pxh&#rM&kwGtRtau21xrPW z2D5}&)TlfDF#`A@gi~`*JYe&I06Yk>D1`9M{uRI|B>^OW1dsp|2lxcRi=gor6KU-L O0000^ zr;B4q#hkaZ3^RfqC651R+}IScFwKA~lFKS}VpD>as`rbKt}RhQ)5|$Bm zBqr)b(!v=5TW@$wzo06T>!=ZQa>_z)2V)7YTn-JT^WW|FxzwaPte-bH8i3p1jO9k&3usD^eUk>%PG2Zbccs z?5EeQ7}u}TXDq)wf8V=Kjbn^KD?>Ke&U58C$TuG*`&uh#9~l<37Ce}2ZETfIodK}~9g)PZY{rkS7L_>L*$MA~LWx#D9UDoTC3 zWlpcC@>ON@nQ;2)oD`!@bKC2C>zz;T`+VchotAS&C(V-L;}^4S1yL;0nhMkpVsZ&my8Xmv&gVj7O?V*Q|>!&>Z5OUjQhQxzTK%YFEmpuZDaL|wZ5#W zj5=+nX4$AtNdC)YSG-BRarX4TOdnIviA-I$T<5{HgY4h;z5aU4rcGp{(Z;3)3tDzQ znsZ}E%Xy}CzFYlPhRT*TDzopr0JSEL0ssI2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kVekkt1`Cvu|ncV;8=1Y zSO5_BeP8>plebD9In;0<*b~UIjQZz&c@A~-f`U_`=4F%H?(YEV>s$LRYIqIW-q@L| z0a)*@$C?6b0!keAG<~coJlP73?aIxu>dgM*(vuVCd7f*CSwjpt)L5ASZnb&|_{!(AlgcJUOo?0D185w_vD}2+;aG1% zD!!)!h$xEeZ9>?OKuO+SC2k^a1fU>xJJ+RJ#h))zBXMH@*nRu3wywQf(>COONF0Cz aZ~$K`aF%wsm`4i$0000_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed81414a2596b7d8a6b2224118cc76b9e84e878 GIT binary patch literal 821 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1@ zPZ!6KiaBp*ZOjf16gjqEY@yR7Ki(NUW=b=36-qwv3%Im*HLuNZQ&%^4Tu~yhQR9~5 z9GT`TRvx=M9>^<%TuAd44{mqqD9MQ0(*3c{-1cSm)ra?<*-a>}7x23$d(ZNF^>bUj zn&%QzgjpMk_OQ&*nD^3dM*M;0{PKn0?x?)Gx3jnR*e`*gqzOOgvL<}mcrh?${=N)h z`zoXE_V4L$tE7|+{1xYK|2bdx%28e$ZB~~S-OReV zWAEPD2e;VO8CTeu+s4jvOnoP|s`&hG!LQ+Nk}PkTUfO*sdYNl~YL>rvRp|jC^K7%d z*Z$=!-s?AUt>5u&e_KCK&waAB<3ZPEhF+h``Q%oUTPWlpwDw;Fv)T9Sm2*!&*~3-vF#7fD3nxx|T<5aQ`nKK9cUAuCjNgPxiXU69 zxe_)(-)F(qI}ST-I=_84tKlkez4x)+HGEDyqoCqXL9gu3iXVP)6m2$7)4Ta!=zsX5 zK#5bGOb(WT3>xZO3{PDc7tGOM0EgQmh5$bi2AJgWXa*~zUVU5l8TT00775)_N{@3p z$9_Rc{b=ygFFk^qO|zFPPdS_R_SRKx(LL4sWlH=U?j#zz{#@*SBC3buYP278etCxD>*tiJotjM1`*Z6KK4)g}EK#c8 zbo$5}jr$#-Cy@QIBzU}L%54r)kP_uTuuJm1gz zHi9E)ceKj)rY9S0zDpQ2!UH;(I@OVK7{%5foB z0MeXva(0DMxzvhDl;c9MXW+v$(OdQ6bma)cJrU7HvD>WU-CO0Bvko9f?=IF6RijY4 z6+{9<&<0d^{2rt;X=Dpodre?gcv6RF!2j5k9p0n82o&<6Ac6&OXM1wo>b zOLOYO5eq=Rf@DMx?GhvZ>BE7r3_!bDz6oTIINZnT^1R3;w!UMT>)1IkJ2Q>s&H)1c z0466!u(=Tz?J}l=Nnf0UuIrX-vH+Te<;WU;b7WpDytp{#Yyc@TT3T3d$hB_9qRmb% r+n?j)-kPf|wp#|y4~YZd05||&)rGRqPRHLt00000NkvXXu0mjfWHi-| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..f89fa545ab984c9d01c490b8fae15102a4bf2f87 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=6FglULn>~)y}6tBu!0Edh4kw@ zhyMi|FeG2F4pmuH^3#FixycSkamHmk1vhMce6@4wl-K{}7TdY$*Ob+5xwfwEj&A)f z|J(yRU$I?@l0T;V^*w{nuDaFnhc5>*0ZnH(V0Q1-)!%7mOHH;coq@qvXH4v5dIoml=+iJ8IJs$EEX SuTRP@u#BgxpUXO@geCwo{Ujy; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..c480d547c138f073c5fa312334c47097a2805e9f GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=uAVNAAr-gY-dxDYV93L4_})IY zjr09wz7GpBRg13N;RGrH>X@`Ds(SwIyLYqSiv*W5gT)xwXa17-f9x|C!<|RWU!}D7 To@-l|2$J!1^>bP0l+XkK%1bEJ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9f53385108baebc9d96f04f40668c3baf93562 GIT binary patch literal 535 zcmV+y0_gpTP)=-at41_Spg$U4DaGDbJ6K^y6+#4MPsn~&a{-WcowAWGsdvinq!Qt zwPs^Xb{7818OY-#yqc6!=6R;B>*#vDQrC4f&vW)?y*&ZrIKFlMJ2~fQSr&56Q3!#o zwG=|woGY-t$`NK7mvnevGNLuGb%+l;XB+ z$y!U+S|Xz2HNnI=x9Lq-_awA!OG+s&o(WRQO-=rjH9;xmre7duELr^lsV4ubQe5li ziT+llQ@=o!M}UYZgs@4&{eEA4_4~fxG)An)RQy{Y&3?N1-EOyeHcM5C*O@ks<9+qh zJ18e^RtBU%Qc8BtQQ!9@grM|tEM*;ISr)onE?=JT=DSy>be}-YSO5S300000008j+ Z`2+R7m;0SCZ@B;f002ovPDHLkV1n)q{51do literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k~)y}6OM*+8V_Veu4M zol2>wX9;@e9e+PdVE8_-A!LDvr{jjyluz}dPMb~)!N z|9_BpJgYdaUN-G?r{TNT=bp$s%*uE0dil7P!|}1ju4|U=Hvj&L*Iwh3X>**ElJ@)a zCY|X|O>7x8RcFrJ^PNlaM76&0|tOyU|V`qYdTN# zEw|nG%ol8NT_*dkw&9Z4&ey^Li(U7*KKAP7VK|_v?{TjGX~D)u5s)@dS3j3^P6~)y?L6qMM0$X;p3Dl zg@sbvuO-G_Ir!~bBIBEt4Uw5@lCp~n8GqGl&wt{im(#}r)CU5Sl6szQ{M=zUZB8+# zqK^IZIo@x(jjr3?Zx=WfclYi!2hFAPpWmzIJ$&Kn9tQW979np1+^}V4=+Juv@#X?qY=4#<1dK ztkC1jlk*J??_HLSY!DNEY`f&JyIr2C;l3rzQNBI;*34-t>lqmC9Ao!V>VMj+t_$)f NgQu&X%Q~loCIE-BaQXlM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json new file mode 100644 index 000000000000..4d255a09c225 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json @@ -0,0 +1,101 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "accent-icon" + }, + { + "name": "accent-equipped-HELMET", + "directions": 4 + }, + { + "name": "accent-inhand-left", + "directions": 4 + }, + { + "name": "accent-inhand-right", + "directions": 4 + }, + { + "name": "midaccent-icon" + }, + { + "name": "midaccent-equipped-HELMET", + "directions": 4 + }, + { + "name": "midaccent-inhand-left", + "directions": 4 + }, + { + "name": "midaccent-inhand-right", + "directions": 4 + }, + { + "name": "sideaccent-icon" + }, + { + "name": "sideaccent-equipped-HELMET", + "directions": 4 + }, + { + "name": "sideaccent-inhand-left", + "directions": 4 + }, + { + "name": "sideaccent-inhand-right", + "directions": 4 + }, + { + "name": "visor-icon" + }, + { + "name": "visor-equipped-HELMET", + "directions": 4 + }, + { + "name": "visor-inhand-left", + "directions": 4 + }, + { + "name": "visor-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/Envirohelms/custom.rsi/midaccent-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..b771b180ec0a2fae11441ce1959de314672536a0 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=6`n4RAr-gY-g4w>P!M1Zc=@mW zGlN|6w{86bT}H|GtQ+Flt{mMi@?c$5_W3#SN{iCZ{l6p3d}EXR<9PlBTc0VZeKnr) zmk($V5InOm+bno7{mRvJ%gfoH0w2uIy_oSf(>da2@S(YTW7i!ETesxuQ;1S#YtiH0 T{1WF9WI%jRS3j3^P6bP0l+XkKktrg{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..6b115e076180d5f09b063fec5484d4edecbeec07 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=PM$7~Ar-gY-ZT_sP~c%X_#<50 z@Z~~BCRe82TzUKcasZVuFf=F|U%!4g)U>E!_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8eb60ec93bd5ef0048e12fc4bc678d911986d6 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=`JOJ0Ar-gY-rURC;K0Lnfx~># zj^^JMZNKmEJ@UKNIoG~oj?DW~O(Bn_-c M)78&qol`;+0FrDxYybcN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..873df838b63b8efdf7b85d9f60d5be846bf1d110 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=xt=bLAr-gY-rUI9U?9MHfknpi zj^b|%w{Iu;4$j>oprga|(x!5~cj0mSpnp?<>KPbzynS8w&$eEUcluhJ_t&CVxt|s6 zn|E?=&$O-goc`5ZxdT?j@Im#W^yBR|)ipTXH4#mAT^$@ KelF{r5}E)n&^^%r literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..82667eae9583683bffef155f7dced9b1961b2efc GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=-JULvAr-gY-ZJECRp4Q`@aoLp z^G6vi+IFw2SNb_o;nw$Ud`o;eW4%~DtdDwqvwQzM`@Y8()gP~aw$Dpp{$_5rVC%Ks z;Ij)~zOR3pI47Npe~Ww3OKG6FK=5SaUCTear|B)tG3Kr}DtB44m48og_thJ>^Xsd8 qwbvgCuAk;{_3y-;JdPmM3RAhKr^RhGleDb^aXnrAT-G@yGywqC?oQ4C literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-icon.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd507ef72844805b6e263ad4af25361efb269a5 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzJ5LwKkch)?uWaOGFyLW!ocy=_ zGlP`#-px%MOE`XN?>CYNVP(*N_0IE_={EJu&ZG8>Z7+T+T3I;+U14D8$11J|Iyf(=Tnbdiz@Q@{n45mTaOO?7ukS1iemo2R+pxdRX{!-fvcWrc ow$}McN{^q}FFkQ7k>Nq4?5-!~=0~7ZkLIVPR-xl$9MXXsXh}>9fN|B(dPAa?xA0=?^zZ5J?-c1o2tV9-r3fef+QIZ qbO%d4&YTsV;xK<2=dDDB2T}afADWxXH18DvNqf5bxvX~)y=BPPWFXS;usyNt z0f(M#w{!RozU2>?W=Y6CW$DW^DEr8y60?xcP5B6CoacuB+b2viSzr5M*>@KPg`|^H ze9O}R{)qj%VzP!&TKP5kZ|?8k-#+*`Jm{Lj+)XbZol{Cx&Ar|+_fdEW{~vzPyuST#+QIi1LGQ&2oUJ^=)F{Cub8 zsd&)I^Upz@rP)#r{H!SstKMsRwY=z4I9{|#wn0~YLh?@yxCI&v4Eq*pc`{A|u0&d}iZd`DsEc_HcmI NdAj-WZJ`bm6a;)?Z3O82%h)UGPxhz}>jo4Ink1 Lu6{1-oD!Ml$BwO5T3O_35pcv?IDk*cBXi3(Ar+Q2Nvj2O zS(qIU9t$;85c5=B_QC)0%+)zMOp{)3v3h=c@AO!H(X=x>E#K<|;?myTF#mjacIty_ z_XRS-45v7S5%vaiRAP$!ykf7JG1bYqW%waoaqXY1XIrS-t=5qtEz@vubnkfiHe-=E*$= zIL+&JZTnvt@}%d#?ypC+EG{iCPsOY{dtBj#YDI+kZ}m4?JWppZ1oUw-;H6l&9o*Zl z?QmE<=g77bGp83Clp7_xh#h2Wy`^PPvuDQZEe$KL?xVPbtl z&b(twW-Q!t=H%bD8g0Mz4Np!M`%bat-08V%-U+$oj8@_8lFZ~_sm6evS{&C9ZxW}Ha9!!@24D(j@O1TaS?83{1ORWMTgm_c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kT$izFb%tdBNKZdK3AYYR{&S$GqBg(32I?0% zPC_a*NOq?3F6K@E7DDYJ8Qz(=7`vG}15iO*8@7>I|MP#q19$)rFi(90aYuEq&CGA} P00000NkvXXu0mjfu`{s~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..10a0987784c4f4273972a8cec0704fb775b3ac60 GIT binary patch literal 811 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1t zPZ!6KiaBp*8D<0rinRS_ciPUQ>fIHf!Lq!E^`O&NNzmy>lo99ilsq}_v)Rk%lj&#Sc>1_ACt?yq@2_Hh6xfVC!T)}`?}WZ!P^(S3;6y% zJ)SOGI#2QNLxGcdycZ9$i@txscVYWd)?-XEb7fyfJIKc=PJI2hPF^qZ^ymBOPp0$l z|5)+()GkdoCXa=m{3M$XAFP?X^DUcChKZEm?Kv9*G+vZVk6HB6w3j8JF>LkJkkz3k zVR?(ceqP*nwuoKwp#dxFe={fD6v;1FVA zd|>IwP~j)QfQx&LDMPs^D(1<~V%gZ}Cu>%}j#)i-rlHd82Mve5|27ZQ5cv{SVi5eZ zEx0}6&cm&f*L#$if0cT>W9#IZrLn6SIpyXZOW9w)@Onn?YsJ!uL2~INhc5Yz-Ezfo@v)gf?K7RMrw(FaU+Cx25rbj21SUQP$ z$X-jy?K*IHv+~^Y>>NQIW|rN>aSd}7_>W)yA)@DTJ>m7`Y5wnzx7Ak(dT}olzjFBE z)9QwO-%f9KaZ8zIIC;Yq^MgL^%JcGEPtS4ZSbyll90dj&bqP%}QYEXYh3Ob6Mw<&;$T8@M@a? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k* z02aUkSO6n{AP7=1*(%4HuOx(M)D8f1&+|xJKhpd0riyLcyb)rVQZ57w0OpS46z_2y z=c66w0m1G7Or!INj*SXm@>Yp$1_6QJ>WX zRtK~>^!)Kug1|d+sNr;?(lLZ-Rj~lj-uW*4)Oa#hHQ$?a$pDym@G>BG+g*TwIdWkb za;D?~U=t=uQb5cLG2~EFO9!y4^+~`gZ%@z2|9nt6xw@}n+Pt=V02BMZuWmxhZokf9 zXO_61k_MAf)^`&^xj{;62c@`)xe-7CaWzVZ!@F4^`vfND#sEqu?S`c4`k(&;7Qg~n bfMx0n-YAggC324200000NkvXXu0mjf>vF$N literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed1e3eb7993d89f3ee11a403ea6384b1e51a4d8 GIT binary patch literal 787 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1h zPZ!6KiaBp*8FmN<3bg$fnBC0sM8Q=>A)`>{NYKS+T-rM)9CLEC*&lU;?;W~pzlZB9=yzTG{&D{0hhJ_nYBPGI zdi^?gD)!F(x(@N%{=wbvz;RS89gt}U+kY# zIam4UWX7gr%3G}bZv?R(>15E0;1*bS_rav+PlS7x{;l--7~j!u-*Cxb>%mvL>)KY< zdaq$I=sR?)a>0G?@0GQ$#2Q4|-!fe@bF1Gv?M7%rVaVEtUf*@+J7{lAEETqRcUYAn zyQkki()-PRMzo3oVA0#Y_%(sdG#L%9ElVvt>;c z-WUDk$@Djo_jjIUpP`W9(D>`~okek4{nAs-&G(+;{IJ>kbjIFlv&Yry>whv#w((7! zk@n)(apxM%cz5HCE*$m&*>VNy?zxI~F#{&$ADvZY3|o*y~CX~ygaDgw9pCvZE8h>BVE oF9=WMaA$1*r5^0m9tL|xm8oT$)NXEE0Zio#p00i_>zopr0FC`u&j0`b literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)krVkJT>0FW_fwZJsnhtq^5W05gllTGr zA}ur>jo+X{>TKx{h=)KRTLU4`F(CI&l8fz9=*bnOpnvg6C-i?hq{Aoh$8rD;zyUY_ zGk~j`)L+jEQ$hP0AP#Hx0ni+}12~UExV!b`)Wb9Y7!N2+xez=6H22PWAoNgdmW8y= zu^`wLAk)d4fXCKEen~QZeu3!J<8H?Q(4{A%PNM_;=H=Hl$rD7QAw@r~0;>XW;M41KpTGtVPeh)=*qYL36Yn+d}@uA3aDGH z`T#z~i}zS{KNNMvXyrkcv)2c3W7%lvlxRwZQq-1lPSDA%c0vsS1W}fOxfy_l*w*W5 z){3{sqmj8e0P6m5sG+Hf!Ce3Jf4~7a00;1k`T%dWg~kA#B60u#002ovPDHLkV1o5e BuxtPT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..1d55bd52700cb5a02eed7ad36940ae63877af870 GIT binary patch literal 856 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|PUc zr;B4q#hkaZ{4<0dMUL$+*_sxexvT2qf@QHwlqw7!#4d5V(7nZ}HL5?ZO3;SO$??NI z@1hS;EZlB;wmcD7a$&K6sH0Nq><)IvthHBEF8wLIm!f``#pcY6*avf$76V|~g~=Q(@~lw5gS*kX5N*tzvr7~J=K3yL=QK;d{{bbkkbNBbQE_Gd_le(*L>z6ryFC)4I^ojUl5?kYQFbOT#k>#sxUIi**69BpU_f2wC#kZ{?UJTCQ2$l5-?ft;n70&>rzb?0&5S?5f*s&VXeB}d|rhUO3x1q zWec8V?|77{#k^wCfx5}5eD!_{k|lB#c{Kdj^_|OMI;U{)OS;gF$Pm{FVhfTRqGoK# zeRpzlu*@8Bj@w%A&%3TOIm^w!{&4qUmYEBCds((+hczo<|6?6nk+2ARXHwXMylqASjb}q82!-2ThI$4r);`a$a;~|+tis^w L>gTe~DWM4f!5D!g literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kVQ!Pj5=V{0c1HKMqcH=yVq|Nv7Osk8J0Y} z!$@-nfGkht<6$s#S72CMbq_2S+@{1JcjN&B15l1sN08(Ikmb(YTyXy0uiqdJfbzj| zBszlR5CB=aj#-m|q3ACI1BeEKXb_u0mVy88byAHZ-T^S*ulpg-pf04&pf75Gp=Q<1 zl?*`~4@n9Il0pDxIS5>QeF4Q0AU;TL-8%*beg@)0f}(5)vXoLlk^?}&3-Tc>6wtxV zcQ?Um_I{<213(F|gzqs!4;Dv&EHB}H%rN`YH&Tow%>kf9c<=8&utgw8AOnyXNDib1 zmOZKJ0C1{?=7iawzA!AE$jlI)aRw~6a)t>*R{j^bUg literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..350de2ebc73bc63f99644a670236777913fc61ed GIT binary patch literal 860 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|PUk zr;B4q#hkaZ{4<0dMUL%HD9~oS*ul29LeTu9P?Z*|V$+4HjUp`nMUHy=@2yzHt{LH2 zwc-1`s?}RI1_}tEDM90SF?!ub{?sn?DJ2==FE)P3FiAxC#&V& zJ2Tz<@PY4-68Z!g&Ri5qcye*(vDA`Gm&rQnDYG45l@ljmv@-YKX$1^(uD8Asr8|Z_a5u4du;cBr}KqnDOHE#IECJED89x{>kJ?7EDQ>8I3Oe znJ(Mn_4fGtXY2h9HR^Z$sYzdu9w(~Gn6l{A*7Ab;CC@T*DyLmz3enK1=?FfUzIcx&5-toM>_=VRRp^M#YYg@)XbDiK@IW%IbcdzFSfqo&jM zn2_20%xh;a-g%Q}mcO9nfB!SV5@!sV8Z6xy432X!JdFjkTlG|>${di~Kn6~1}6II*4Op3)j z)E#$ReOuS)J0Wy=($jqjMEX0P&J`IL{{ z@y?OZlD?+bJ3E+Ws^5IYp(wcGi@j)V%RPC8iJd3Z)?e7UdG=HVefKkpBD;!z#KqkB zboceehx6r}?mC^=X>gzM%U$>57Z=3OX?gGN?-U=`G`Dp{tb>)zo-;>&-Rw`8cL+Ji gFvF9tn(-gQ>bfa9yz*0j0<#N)r>mdKI;Vst0AZbe-2eap literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k#pqPOpb=6Y7ALT-Je=j@ay zdsr8mg3tsabEw|EjX@wrjg`YdU=m{;Lzs>$ApndQZx~G>Db{1Wr_)Rc02?rWc}L6{ zg@E~DSZlij5|I!9HetW^&W!-^Q^=u)p5*cT69DY$=p?k=H>#{1Q*mLF*SzOzvR!Lv zp4vTtg{{5WV7WL=TFs!GuJOEfZ*cPmuTRyJ*Ys{e=*u8T=4H&K03wLV?N-obK97B^ vC1oxR0DWATneXqRDZ31*9})$i02II{yvCB4&Hvmq00000NkvXXu0mjf&cnl+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..4a05589b5f2a9b5595564adb72c51a7d924c4ea8 GIT binary patch literal 860 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|PUk zr;B4q#hkaZ3^RfqC651REG+O;*`l{LNT;JI_rmiF2NPCwbUQhmS>SwOp@cx;i=ZjX zG$LJGT3Fhh*o>E0NNVsM^OEhIC9#2pYtfDw0*2n~(|`OE*IUBaZv9#A#9jVb{ksqR zepk1bn}1(EKhJTlhKCuP5&LGpGn@ba*w^KfYxHyy|6Gb&bH|(gf$-up>vbAVrYju} zjQ-zuA~PZ9KI0h|wIh4vg=VOm)w8X?p8faF#-EYjrT6}cQdihNL)@_LN7L`0T=L?L z!r^|0^vzD?-#P!+IoWm!%Y}dKhpJ=jCLOq1!gc=A&AJ$E5nFrKPhU!{WcS>@DOS98 zuDpe*X>WqTimCChS=N|#z3V)^=-R3-jbnD7zMeK$DSBS;S;FNB=K=}YDXc2;Dn~^H zW|vQ#_<8=S(hASjcSZi!9xL0eTlYtT{ds7hkb|R7v$aD6UDTH!%S_?Ui-!Z3!P^cX-hlq zSE@FiPxEJ39oTti&5Y#S2|KlCORn8>is{L-$Qe_P224BSxjw#O$^%wy&!2y+ z!^5_mclNvykBEKX)P5WB+S;(v7erI>D_YSpnzFYlPhRT*X zhxa`V&G?gZfIns4&IfZ&_;SAS)|h_!!ybDFCE<-e=bpR~f8aS`ZT3r$#-Cy@QIBzU}L%54r)k7Y1wYE*EpO>~g%E?Uyj!6o{~zS7vmdnLHMo8G-U?*DS!J2FTAYzjaD zC;$Z@1#n!qqW7Cm+CR5r|KgxVE4%Y_a%yE#2Y`54-=^DkK-%WdU3PJm%6jShWJO#E z768PHT4C(_56L)U$l*Y+JMiQ`(_^a}pL@p6=(a<>N{80>Hn`>f4j{h1dDNu*Ql3g# zZ7S!wbw$RR!Ri95140}Y4EzKHe8iB$>BLOW5Tdgh3jpn%?80yB5BqTr<|GvW6s}%Y zsZnW6K|ma_JMW%Tk_Uhx48w2?F=@C%3^}QE08=eq0=_c0P)KY-+zIj2_5cc-rWxtF zPC@%Mu?dS>jy%sJ$8plzgs_o7v`onvkP(*x5D_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..f826d404a9bd95b927ccc8e80ff9852016bbc38f GIT binary patch literal 802 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V0) zPZ!6KiaBp*8D<0rinRT2sGb&3(Y?AUi>IkfmTiii9jf86eTSP-iKb_V zU+XNkrllftTsfN}ciUW8P$Fn`^!xpaN1GoMtl!E1+lXF2|V#muKT znH((rm`ZlvjZ{CU|0$}ZGi&QCXE&YA`?fOZ#A!`6u=v$-_K!G^Uig7IuOmASSWWd} zZJwTgv36Hume5Rfi>u|Y8h%CHJ+kkKZ^G-JVw)CSf2~>{E^xe1tNgGR!>arB*N!ia z?hm|u+cACp){dC(cUdphUVbSu_hM`0?|+ZEj&4=rYHbRxUCviwTgj@@{_n@v=1#Tq z6Fye-OuozYZoh;|;pGyB*205P4c~Tet7JLzP*|nt@0&L~c8RAyzcc-SRr*vOL`nz3>(o(%{eYxi(TqkChpH#gSciD?UEW>Q}=AxZF!FP_u)|hRK z+1Gh7gJnAJ4W;ux?l024*5A<4@Z^D0So`czxmWHAx zh5$bS25@jWGH9rCFg#^pTmX}t!@5A&IXh-Ss9#O=lQpL+_Lij`>&R(h=3<{}-LdGz znu{xJR;;Ni?KmoX@7>o>LG3k%<*!xU z$kI;}$~tNLV4l&&bNGkJONoO$9Oa;GlO4iwmR$s|oM{zrK`=h=XdPc)f+ zCdVBxzMd{r@#Fqyrf=6bi#7BW$gI~Z+NRiQQB%~hW&y`<_utPRFuk|?p7uJ}YUg3k z8J>Fmho0PKiBu?!n7mb!iT`}x7dv?c55-$gbk0>WmNo5>>0f>PgX1o?==s}fs_gat zTy77D>iFq(?{zuD`r7qB)6|j;PtWj-I5jr$#-Cy@QIBzU}L%54r)kJsU_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..06e5cb09fbb3a48e5518051a0197ef68e07d4c9c GIT binary patch literal 772 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1G zPZ!6KiaBp*+4drrL8(T{SW0+v`mmSNvjn$ik=~qt3YP_FL8YK3x0v-c2%^ zc_l#bd{4eELv#P}IO z%_Z5g_cfV!-PN<2E4JxPnx;eOoA1>}wEhZD{kP>z!)vn*$D$f6`o4;t*yN+TZ?SHz zUA>Cv`_}yX5ps2@_gS+UB{aGgIk80jS|_}r@#WlQFH_BC*Jk7%-y+l?{J`$bYTNdo zGN-Fzqn9@Loz|*jJ)>m5XImAR|nAUt;S@2X%WSY?5&<>_J4hI*PC*4X-i_Mo^lvZw<8tI;D$uQ@-ZFOY0 z^Bz8jN$>3RCzPr-ggQ-#(K9l>{fnJ}qaoT)UrFgxH2<`xE?$*s(cgd;GI+ZBxvXe z$FF$~ec$^ow;lj@Ulav&T}MXZ`wrm#gL2K&7R>D@*9__cAq3>*7mVZXJAc8kpyTnC7Xa_DX&P%d{>FLC6>=}<$pBDj-nK0nrMCT0 zvu#HP^Q}VA5io>OioV%AM5_VtR&ytygf*|1We1QXVD^_2%YU|az=d$j?Q8B0@E5|3 zhnNQeFod#CF5h;ng9 zrb*jso~N;UJhXI$oYa1278I>z9cytD`U9z0RHbUvPT7)g=E(@BBjN ke%rCitK40OAFQywhLK+(?B^P##BLDZ)78&qol`;+0CYgOk3%xsA12i5zSdemRg@Pnc-le4i_jmrXjXTQs-Ryg3&G+zA*Q?v-RQvB2 zmz$H%c8ZhD!P1Xy%k8%(7pG}Q=7)s`tPCkS(UJKoTH4`b(#DRNZ}sM_(@V5n7gKD{ zExaOFZ+h>$=i6grc5P)@mptdoT&slKGT!jVyFOPO4_P;TzK*iC)!e?7i!Z*oa*I`) z`GuW+?ekNycW$qEbkxmw<(=<$SufQ-{wSe-e7{`dDi~rON#d2e}7m#r}E$T$e*Y6 z?SDpp%iUFz1b}=_Qq87x`&KRo`wFTO=k2&-u*srseDX$;s7IZGR}NJ$Nl$XTDuO_wy=2FKNYUyZg*P zZi?sY`K9QjNf~nnR|=mgvUqg*U|!y=&m0d!CGZDMVEzGr{p5+udvjO(048+?Pgg&e IbxsLQ0J|Y(6aWAK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k>?b@-(T|YdDm^9Dr9l#D@gjcT^zJ$82 zi}=msm?RiiEC9>0uT`~Xp`b=e>8UT754GY$2NLjU> h{{sp@0Vse~>KBIPmU)0I`C0$~002ovPDHLkV1m}vx)uNc literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..59f1e4f8ea892fac760dbc92dd07de0fe22dd777 GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1T zPZ!6KiaBp*9n2PX6gjp(Xz2o57JjddUV`5GVph@BT*Aqd$7ugn1|K_n#yxlEJ67-S3Z5#pF8s^l zH9Ued>K_Vy_;j1+U2k~knw2l+-CxNhw{L!M{p(kYlUDb&b(x=2(dd3YJKzxWZT7tz zwZoVK{(ikC^Umk4Yw1h7EN}f?8z+9Me6*Fz=WFeM&ONv8UYPp5GM{<-Ii_UwFZ&~& zm#=DYTUA%PHB+tqUX5((r-$qxz7+Kw^`F?chJovG(^dxU>q50GU!FDQJ^Axmw<7hm z!vC+5k^gFb8j3y7-6(WGWmkofGke*k2@WK%dBVp^O^F*KL?!WBS;Mer# z8|%D-nty(ZCReBgr5hZK+Wh;D_OqV<+P9KwS$a4QEAQR8$?QGz^63ftZtgJd`e-k_ z?hrVXIGG$Q92q#&IT#+YFe=PZU}zC$X((u7fJ>fZy0Bu2Y2JcRznbVLXHHjGlxH66 zh-8r#d8QpYNB-<{vF}PYGp@)rnz!HBad>sSvQE$QrpwYXp*yFiKQ8*keCAoEkCgG0 zX_gbpezA4Tk7IlmneX^~*Ux3wCm+~a;H#$;!R^32W!sIbmv^e4_Z9!mS`+>B@6Mv| zS;yX-%j0}!uuw9~rn1Z7*DqF^;vMRZv-Q7m--s%`#&kjOo}R{8qa^|*-KU$BY-aj> zImR0!d_Apuvvtm~XBtc1iliod>hXQHQece&8q&q-y<2sIgGPU=Zf84z|HKwGF?c!vE39}RO75`PUKI;GIz{(e% jh$onUVd%bxp`Ou<$%pyYeB~Zs4q)(f^>bP0l+XkKoV#g; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kDK_pU_3_{T^MGyy*Y(F1t4E7LQc!?(>2U%jz@YLa+c}ey~0n zUw8DoRMhX0#)4pX0H!xRM}9Tr<20NRTR<1YM;@FP@n;?4Qz09g2H&!^h$ zGz83{oj(&RSOD0BuU`|0WFQ9(b8_jxXjiL~fGW{}@4ir4!SZCzADicP4|HUOb!qNa zar@b{v8?ki1Kf&Q;|2@hv^}mY+A60tm?!jn0Foe{6-1AHJuX;5CiBby2=O2ih9c`S gWPV5tfB`T7Ke_CApnT_yVE_OC07*qoM6N<$f)_8q0RR91 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..d5202b80682161a57eedabb00db2ad2e3da31e6b GIT binary patch literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R4` zr;B4q#hkY{H+mfokU08LnQPsnM+=&FS#Tabd-td!AD`I5^9wj)YucNB@bCq(vcG?& z_vpowpv@L96!>Cgo@7a_^4s?EZ_*yy=lqS!Cft7FF3faaF@A<+YnP2c0*Y|9-oBRC>VDJ51@{-_~zEmp_wPW}Q`xjoHV4*A6`?5x)Id z_l{lo_Hzq-7%%1RTdRBJ!zZpY=dKjoTbVaE(TLSz*J=3x_KYv@Zg08$b(zcaT z(i^UxoK||#{&KefZXbX>CvDxZDER3LMxA9B1DR7={T44~KfyIq$(>)o%C%4GKvI{C wX~R(w%dCbv#o#9!88|!{6#N+!`sE%lpH1$rR;lja3XBp4Pgg&ebxsLQ0OV1+761SM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7446843492a08c0ce6d8ed46cfdd471bf2aefe79 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R5R zr;B4q#hkY@^}SgfCEDc!H*_6c;HaziaKlaAHd6_ahjz_MF(0jEI_4i#Se{U@I`&A$ zra9p}Qb!UDPt1G0Am&DWaptpo_nDckcc1w*yZvG6gSiJSgc=G}7#@2t9Gl3{qs%Db z&ScQXk|4u*04%ZK&EcDBH!sQtyZGI;<6?c%T{i9EH`9}s>VED1@w4Gg8iS(u&(nL0 z9vZ2wK6&2eth~4Clz9z@f4A)2`nM(}?_P4YqH4*fJI`g7fbz zW%9cgye{6VroMFMytf;6-+214_rb@ru^I^CB2on{xFtVE%EZ=7jT0mnRZQ?@Wi1%(iRve44$rjF6*2U FngEN&!wdib literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/meta.json new file mode 100644 index 000000000000..62bc618b9f3d --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "on-inhand-left", + "directions": 4 + }, + { + "name": "on-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8eb60ec93bd5ef0048e12fc4bc678d911986d6 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=`JOJ0Ar-gY-rURC;K0Lnfx~># zj^^JMZNKmEJ@UKNIoG~oj?DW~O(Bn_-c M)78&qol`;+0FrDxYybcN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..873df838b63b8efdf7b85d9f60d5be846bf1d110 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=xt=bLAr-gY-rUI9U?9MHfknpi zj^b|%w{Iu;4$j>oprga|(x!5~cj0mSpnp?<>KPbzynS8w&$eEUcluhJ_t&CVxt|s6 zn|E?=&$O-goc`5ZxdT?j@Im#W^yBR|)ipTXH4#mAT^$@ KelF{r5}E)n&^^%r literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..5af3beb5a409d8d946de409bb8f929e22433c078 GIT binary patch literal 865 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|T?L zr;B4q#hkaZ>@$J`MUL%vIGAR1qv6`hu;!L+&KDJ5D(vX!3d`!#LmvTwEM!slL9L)O_Pf1oNQ*&E6UX?;BmkFaj)lrOTQ<5cX;>L@!rEb z59bx{uYP~Jxj1Tpr5i&=pDtrk@N{o~<)dBo#j9AGCtjD^;bQz)oBP0nhXDe`HxABR znLneuL_y|LSE0GfioSaFhesEG@N@o{JGbHYb@2wj1hX{Dx$!#k7Unm&wtJ|AuSsX$ zww*h4pY0Tu1*bM|WLh_8PnY!L?H_CY6dpZyPj&3hyO1o5eAnMEWUjIW}_g#y2#?SEklAy3hL&u+ibwl$ehGhM!qoM-c+b2wW z+$(eR?}mxD#diDe-t{eZ&!3Fd$3p{!8W@Xq>VApSPI?%+%gAs3<1(RuhX;>TpWi!? zd+FXaujY6$O<`VmMVu=k^$|mpviG#NZt*Y7pG{u9VRD0((Xst&v`&RPbWL#7Zkl#} z`h}WJ4^BOrd*GUPfS#FY;J2lJU~-&;;jAH(LvarSF78HM2JVSEz1|U8 z>VDHtNKW5ow=MfGqY29NFU&I6r`lX4V%_Mg4TW%&HtZ+@j)`#WE@g!gPTlX$DY z>$<#x`1wOBtGE2wm~!tP=N_5Uhdd?NHI64WhJ8~p5P$Z>tI}rn*+_r+9l|=E?)hu4 zeBri;)mq;v+MWEuGa#g`@vQyMl?!zaw0p)cRnuSjQoLZsuX!wb`*y`Uh^8{08tfol{sVEPh@zw(6PmrBZYU_scz-zsFBH zH~qJe-&%RGjXQta{Q6^Pe)VV0U+xnQiw~!J^W3>w8Z(FGXHkuGqjJb`h0~|wvp;Qg zc9wUlZ=Ili==qCshUa#@-Amod_RL#W!)c~G@$aNV(*3V&?{k0Fr$#-Cy@QIBzU}L%54r)k&<^e{f+9Ku)FG7M&q*v6QE+gJytAi95qy^h5$?O>?!Du_pL^Up zGKfEx2G9T+Km#ZN_|4^Hzh_W<(rf!l#KYGJZG z^=-|zzlD{?7^@1b3P^L(+5Kq>g65P9+?Z8~Ol?S}S;YcyH>c59J$bLfSH%ypSo3i? z`wT!E{{*38&IX`MNbM#eK8s?q6>|ZgTP-_*PFcK~faQcD7kjpdQI6U)w|9Uxt~-lK zr7|w&@*Cr=I#G0qb#E`fmykpTbq5Jxr{XH+N&phVhLJ?kqnKaAKuf_~8GsaGrx1F` ktpE8xpaC?12I!|=0irCCZXhA9jsO4v07*qoM6N<$f>0~75&!@I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..8ed2259d5f781574ee069d4df90d09f9144ecf63 GIT binary patch literal 832 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V11 zPZ!6KiaBp*Ic5txO0?advZj6On{8_pT4y*bb1?G96}^);nBElkg}>sH`WN{llil^d zE_$%^Ue%{Zs^YV~6))&2idAjMoUP#D{3C6m`M@*Ag#r95l=^w#H8o$>p+-8_5Z zCHo$;HawQ#3|M_t?dMpu%n)g9{@gFzQ0Lico{amjeRsBzo?P)xGNwF)*K!QR0K!we` ze%^~h4X>`Nm)cZ*5IJ8K_u%ch*O4{%Yt{cThOKr8jh~iku}?&J^?{H43NhS)deeJX zU0A{NB<<)j>-&5uQyw!(_PYJpbMe5n%;;kiS1@oTH*I53|JYf>`s5j_R*_uz1}^V; z{_`i+|M}r+emyHrT$eFqk>54ObI(7^9FNS|!XW$WZ(V2VISH0VopRH#!0+>-m<$}Z zM$J7^*zsmj)VBuzW=(f7X9VY5d2i^ntPAUP2MqYo9W)B zuK(KqGe^o>4dD9V_oM{ro6b;ca`F<3qDPGyy?tY(}K@$gg4!jUl7olG5NAo`hEuO z#BYULT^3!mf|jX1>vapz^F9) jCVQ^K1Ojf3_yhCJc5}}gi*r$#-Cy@QIBzU}L%54r)kUb%H-lEB6Q)>MhMCO68rAt|MSVVvW-8M2G9T+Km*hQ z5JJey&!7@}+z|+Zz-SzR%x&97_dURE>nx95&z@oL+ccD12o?aDo2FULlO$1tE%l)s z)o>u#9UxOzy6EEq?lRV2xHy^sp5bwq`#nIh`%c_J@1Td1_UTH^y?=+1HDYyv)q%pC z^!oNvfuMPwoANrb)-@#4b;Sap_R78~--YXgvOhR6&_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..a826d42142de2f5d93a722037ce96f46b8c647f1 GIT binary patch literal 849 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|PU& zr;B4q#hkaZ{4<0dMUL%HYHcVHcJd5LI;gO2jpY>){hdo61@8GaA=y7}kEG2rjf&HE zlUde33cS^@V1eo^XU=6OwjH^$%;SVSQ>(`7eK*g{60tcmD{{ijc#g?4TmC+)t=!GC zXFJc)i);>sOp+TW-Y(d5agn{fM99S-S0bD|bb{h=geHJFd(a+`)sh}+kGEAeRT#yjQgi5qu^m-n*o zlP%pS_VJmcpi#q}7ydf><%xZGBi-lrqvn%PM|1DWQ08N& zxc<6C*axs}sK3iQ>&V^*+8mQF%RAq>m9;2Zf5R918`4G0ErMnbPE}35%k)N`;m^ct ziOyPw?^(93RyGUzwVkchr|(kn>qQ)r2U?@j*C(pJ`~BLtJnxuLqnSce?Vr?>9quxA zewXjgj1}LzYyx92<8c$=4&O-?`S$L1o0(^Ak4op*#2EO)_TTnEk%!R@vnQPY6UnVz zA<0t35wzi3Vdk%$E&nBJMcN)^FfXvU#h}q=#?ZBxw*d#&FM)YQfalUezNx1;Z>knu zTKaKOSw^eiKF+Lw9~J)u!q=JX{bP0l+XkK`5by@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..698c4ff6e4b1228fc1ee82913603c68bb7131a3d GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJZci7-kch*{2@Q&@*9q2jeg83tp_$Sr}lu9NJ<=%?2!~$_~9+D3YVTu^ht-y8V8cQ22WQ%mvv4FO#oQpL?ZwI literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4c2d0022c8a720f151dafd6dd7b99aa476bacb GIT binary patch literal 461 zcmV;;0W$uHP)e%_jB*=9ZBGy zO#lc00U!V(0p!+m_S(!|Aa?tHjOI;qDs})8FBS7xcvf*aJYcax@(@z~jy`Q(2rd8; zUy(Du-!d%+AnW*Ujthdj10*`=W?`U$Ok$VC^mYYkr(u28dCP?d@ODq)vndJ6qB^!l zZv&|%zN6skfG1AYc+vt8_7bD}XM(MgR9fZ9tt^t$ld`hyqe2+WuO=mM6C z5{&b42ohi2>7iN+-+pcYx`dApBm@TW(@30hw8k6HKLv1aHJgNLtqyt#FU%vB+miRc zV`sj2Z0`US{^$+u&5dO!NfmF?r!20_s~DwqTwUM8>=^OAgk-LOUDyuBqliZW@E{tp zX1B~&=Fg3^NaB$J$WHXKFKBkkQOiL5kO%+)AOOAqLo%7eU&8!W00000NkvXXu0mjf D!+gd~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..b28f42716d2bb1cc5301c7a8589eb4887d79b121 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W}maSW-r_4bxx-ysK)V;|Sg z)-n*CJwd@ubU&w~S>#z(3kJSM#RATzsNTCR+yx91vIABJa0m&x_-;IUVVTD%o`o;} zr_Y-CWT|n!(fKoz85SJdW90bvo(k`*wKX#8>TCat#fb_(n11t5dHNa+lUwije})G| z9aZ^}+EjLY>XJs4%-!~Pj$QroF~gzk)ZGIbT)n#*cg|k#%Byj$QR{v^(47#lz-`T* zm!iK}WA=&e`q7`C9C);jak~Fg$IVOEe>;%n-;|%6c(krDe8bEa%Y`S*Jy2lcD?R_x zyBB4j12al2y*J;V`CW|jgwFrxKkt^P`uY93d1mDusL2hJ)-BJB7d-ZRfhkDD)78&q Iol`;+0RNze7XSbN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..63154766a73a5e558f5cd4a2de3c1a256021a88f GIT binary patch literal 819 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1j zPZ!6KiaBp*ZOjf16gjrPy=lkt!`f$qnEfJOPYND4y|3y7qNN`|Nl^1i&Hs3$} z;`{Fhf^ON?JuC};tvxFycPIAX;kBiEZrqY}e->Nb_-^0Bf)4W^b5gq`Qa;x0>~UI{ z5PE+VbKJMShBp`Hv&n~syq0-cw)=*M@*5WUO*R zwiM?9rd~JYwO6x#gvKA~J!UPMz4dm+_S+k7Hfa8m`yXv`^oQ65C5G&qXjaR2X z__3jM?t%L5dXYA8Xo)i%`pD#95y!xBoSWfc1*3wDK10i6)&`j5MzIDzp0$O%Yl|M; zQc90K_IhivvD+6liv=HEy!LNNTv24rcs=hq%NFYzi{Gr$FMCd1?6aPu8+m=J)Px5Q zGkwaeo@=>h&-u)hE^5(Q`eSj{-JNqhXLvKb(-g0+NoklC@bB@-%bN4%h!^Be^}n`A zp=4?1nYahLtIKCx;JG@_##JHw8LLcjty*LI{yE|X`{!+BC~0|lGW$lG$fE}*89y~C z&W&YQ40}Ex1?4y^db^eQmqVh0=)0TQ!;Z&-azs$uGFrnlX8^#dFph zoWD+gw6JUAR?FV-HS@IpyW?&3RRXg_lBQ@{*77~rI{$I)D)*FShLa7ZsvopzSDyDM q&fsh%%YO|XEP;a*avkCi%ymSYU!C6jy8xIA7(8A5T-G@yGywntYr$#-Cy@QIBzU}L%54r)k{Lc7skfuK2a z!{Jb}qzr(YFbu;5#IhJ;jy0upfV(>V68My@*Gp`;cPjVk7%G;Umv#_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..bb70ade7054e43c207ef3d11df2cf5eb6a73eb04 GIT binary patch literal 814 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V0o zPZ!6KiaBp*Id)%mkZ8N_u&G@~?esDY4_zJBR=L0G)i=IAx;S}%Qhlp>f83h(zv8xC zdv!_-BVJW)ik#JDo5Ngq@1@o(X1;s>W;~wSarlAXx$TNfpHm{+f+v3ewBXpw zScSz0H1-FwmYmjeQ{wv|uz0CN_v_UUxN-wUSQS_z)?ZI5*&r#sNR{EL{1xUo_SKEk z#n*p)_vow{pZfcw{0UpRLcWHEw(?&-f56lK*pHLREr}T+t!|{c= zn$`LyQ~qjcU%-)|5QbJm$LNOHU)=1Nias-mTK221IW+0{-Sj8rnsId}|8AXi-PN06 zYDP?NU;%O*#+uU9@Z*|}tz z{lu>H4LaU4bR5LL_Waj3p5q^x4ixTT zD3H--00$cmZZhMGBNwE?FKDT6(=B?IdgtujS%!=kw9Ms_i-jw`b8j?@oqy?steE4z&ZkW8~C#h7afSIr%DH znRB+7;s5WSfnlHf-mg|q)K_=hDsWeP0;jyV>xT1nEcGI7k1H4-Si~_{^ocX{J!Wk{ e=UV6=(AQ5|z{2_I_61-DVDNPHb6Mw<&;$T%Fl$!; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kkpdTD5E4 zuBT|%6Xd!U?Smi&21}6qJ5D2+U^?A%XB|0(ro-=)hWIC%@0MuSOq3Xh@x*|t4@cnQA ze6g{e+CZl2jzN&Qol3xOHaT1J0O%6-dOc}G5W}K1%2ACUMhECtt2yAdJe)_qa2c%1 z+?DZ(hngqnfZuM5iRgqg2gvB6(M57IiKiDa{SJ@ix{B*!FkQ#`$TRk20pyEib+TYI zN9L9HlEE=&11OPE?jRl9iguG|6jzER_K#?40Mbx5z&-U`0OlnPpaC?%!U28&*v6Yk T{>sP$00000NkvXXu0mjfbBNCT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/meta.json new file mode 100644 index 000000000000..86ae56f226a4 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..db8cc9f8351468ebd4b4d1209d3dbd961b020d99 GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1B zPZ!6KiaBp*8D<0rinRTAa6hiIUSWsj(UYzMUehdY271raurRq0$W$iCC6u93eRi$3yR)PD1JY`SYG_!X2z#8 z7y|qzF#N5nudJB1?%40^zdbH*X=#c`ughngu_tQnB4eg`v9A|@)@D6EN8gF%*~;s$ zUz7yb+=_ivwwug$Q>bV&zo!aG+-e3Ou>NCz*a5qmsd#hC3-@HdB z-EJQZTig1vqGtl@52f@!`4`3CD=R2HdERxahNmg6Y17TLZ%-co?}%+(C?m{p%8+pZ zK59+^#`PnG$Z0rm}rS630L+!`!Pf+Qcy*Th>p-+3norl$Xebc*y zZWYS3KjY1s@ZeddPnV=u_8+$2EW3D*v{e2uxL#IXeRcAItp&cVHy$T7glUP-vzhy- zX1_zuYMc4pO&6vvGwe1#Qr^yaHsIqEO{Se!^aWz!k)>pHVPf7NWh^H68aokUBn&GN<~jZYH&o-O0JW20?URo|e{nK9Ye z@;7S)=cgi>rOHPX<~J|(kG9)CPvGB6r77Z0&ywyj|F}KXS!bzknyf8n_D)W*n=*!X u-81L@tlh*oWax8&t;ucLK6Ut31EN# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)k1SPnVT(37Qt0<>QE>Y%pmv&NFnCCdZlR>U(z7LeOYqvJ>K`rddkPxEPH~`FD*QL9AL9zX=Vs_ji#0uqH2o?a$Ez4T3(=;vR zkwXm!f;|D4M%NK_$fl@xAiO)b4h?Pw+;+bQ&|g2i7*hAJOJ_&Dof?3RpT?{yuqL3* zq1TU>5(L)Bp@uVwTE`Hkb;Sa}csHl8t?B1f)ogFhy#b){WHuq^#Myy>IdWkba$52L zunDs)TSIILG2~Fw$ON#f^+~{2&aYy+Z2Kzru#_sM%^SN1(Af9=)lC=^_0Rh%{`kC_ z4j`nI&E161k3mic<#-kIN&p(-bVPZQBx?P&EMgwtyfOgv=21(Mq`LZ_{{sfV02qLM Z>Ki$blTX7m=I;Oi002ovPDHLkV1iNcyjB1J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..c18f183d46da91a8db794d93d8478507975d18a6 GIT binary patch literal 847 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|PUo zr;B4q#hkaZ>@$KLWsdL9T=Fe+qi?LplnDwQZy!Cl5;~nP*6Kx&fQnP)6(zl*8x?NC>K z|NHLa2fuG;KlG8w!NQNp=UKn&;_&rbj%OEhN8E}!ub{eX=KUxJHT%8mdez$ z_$5WKQOf!3az&=k@irUeC!U(WvqbXZ-P;m@$=Cn*iEh|5nO*M;^G)Fy=`M2270p{J z{(P18(z+()D-x9)zJ_JNulOs=&db@ipS&sHz4`m?!kxcD{`R@7J`fVWR&rs`N`-*p zo>m2ijp~m>Sp7r~oOR0mb+vuE)vLm;oGY&_K0gqQ^Y>45IcjRE_esJkLHB^m{b_bg zRiC+pE%*PD?cDUYnBDa2meQOrucyo3xBplfy@ti0v+i$2V^+?*$5Hv`G8xUL+~0pz z=FV;LnJZ4mPOYuE_sxDSONMHPAMdk*iZq_{d3TQd_?lf&o-TaezP{-+Q;uQ!pZtqr zuay&AB>K-T-TG6dpo+6-^HYO6fA4ku*Z!x)^RR+ZK}MgUlb1F7zH_VOPAz}7Nc(JE8A4Fe3=`y95vzvx!WvuA5Obt$0fhoqd80a zyi2@WxPoiKOa0aUkNz^UP0o08VWP+U-3RBaYx!~7kn@pc)>((!pFV!w@xfnwVZ@^{ zSCvZs2lf4{Vnk|hf9x#3Gr$#-Cy@QIBzU}L%54r)kVQ!Pj5=V{0c1HKMqcH=Re2GL*s;z&h9wX0 zFw)!sAj?zvco_a`X))Z-$^(ljPMgG_4HRPl%8}{_k{kfC+?ksT&foj>8< zI)da709m?@S(AYwsh5EPL<2!Dh|M6&!2kC;sm2lS0GRLB{g7u+7gA@?7d608v+Cwb zh9HiIB!vP=Apo-+1TMb5fZ_-cA0)T#9RmYD1Mwk2Q8olwN+}@80ifUo`4AQg=-}qN zn_xA2ztYG7pafXL_n4sviz7gmmvBF3nEmM+DMpg!08k>l_xB&zB9J4H0Z0ra2T}ve zo>X-JI8{S)!t7697(B~888$byf#rPbsu*SiOG23CG%E){2EUb%`5z`E#GnW)37-oH zg2lCfY)+u%tKPk1*#6=P?MgxrfLids98H`Y%gJ&8%n`oVuKhpr;XRlydF>immXqxO v5Xj2Pf?K#fD~nuX7)Bc;qYfB#z^DTN;M$ZKJ|_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..e73142d46f82fe57f46ff40b8fc37d0baa7a7e10 GIT binary patch literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V1u zPZ!6KiaBp*ZOo1e6gg(^{hy_M&rWCcc8A@pO}Z8(1v##&&eI*Xu^F>5sRpauWr}n? znxe&9QZUhBJI6MQpW+f7U;I~m-Tkt14~x~E==aS<=ll?}r=J?tl}@j?q_gA1oY$2d2dutU-MyMy zm%HHiGWKWMO|RHX54^kf?(g)&zYBJjHr_fe^=Z-l_q#3TpO=54Si$M=mA##LPwhXx zvx{v@`p;cD@%2Wm!rko=Iu~}neqb8+@c7;GH&e<2bi|rL20eYl6d^n7sATLs<;yQc z)Xmi`Dk>i+SvMSNd7yjX=l0_796JuLpK#*q#f+928=n5WpZ-KXzV1`(wc3wD4qUnK zb07bDV-=e&w~J9eYHe6!?ztH%o!R9lRe$|kHl0D|Lf-c2Q@vQXH%I4OF^fsDli?HG z#2EiX@_+P~qrU|O1UF?@%G$9x>L2{F;juk;@}KQDLM1>!BO}a!m*Ny_@Z-_VY7DdN z%$>Md@A2bXJ0+Djaq?-rslVwyNhPn>P4)8(zKuH$FTWa`-X(Oa@Qm|oHeQbpA57Ga z@+>v=yR@^>V*{W4l3#0Pol_~$zZ0zYZHL5yr9mevKiQO&#VKqHowwH2@rBpr8FSaz zUA&vO&-qo_44$rjF6*2UngD)~XwCot literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..3580b91f5999c4dc21d7e490c2f471b6da35b8dc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ0#6smkch*{2@r$#-Cy@QIBzU}L%54r)kjhFn#HkD>(;?JCk6im&wfuYHtpg|8brA7_I~ibpFHl4?9w000XP5$-~cKC z#Br>r*V9t2d)cKZigp?YfO!~(^l_`{?B>+u#utx-+)|ng!2*D}@B2lZWm&0?8hSVo z>;Gc}bele6ZHy#p95r7T{;&iSFq&&Drg!GsXay@b%Wfj%Iw zl&@l53BW>#W1-(3l!?_skra|`UKs$AlcnK=YU_Xg4>$k^-~hI%Px?fb2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/meta.json new file mode 100644 index 000000000000..83a0683d0e81 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..adfa03a3d104cddab293dba58150358e400e90c6 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W%gaSW-r_4bxwUz3B#v5)<{ zQ_FE+K-H0xbK^G0A9xXIH zp4!zn;uBP&qx5&Dwz*wiKlAdumJ3IZ%=*jp|6r>Bq0^ijmh$FgZjFAw>fm#SpV#s? zyUcOfHE(^?($f!gg$ky>yZkHXS5ORB?lx&HbEpLimfDvVrA|;;vpoVN;_2$=vd$@? F2>@%Vh?oEX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..16d3ec02c5f7b9e6d70464a18a0de91322aee0ff GIT binary patch literal 1996 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 BLofgU literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..08a25d0bce619e7d7c03a2aec2a32624f1d64b1c GIT binary patch literal 508 zcmVUK_2$T}g1cx3s+PmwTUl zFS+Z+KT88>01coFV6Vd+8)^5ebs)QeNT>iJoWg#Ke5$KLNCVK~vkSnD!^8X#Vj@&$ zQi6~Mppb)IU}>#kR9dykY5sd&X~6^wkSn=yBi(#z3KF5D$l)dM`~YVtiMYZ0kxNTW zK@K1~jK2L6Y^3r2#;xs5-!xb_1_r&q)JOfYk^`t+0R6EaRx_N*T~2yn^nReLhxZ2x zuw_QDV!7xAK0e#a6yEe-A9;VE01b#NgUFU+-d>BX5Q>(MmBZBld@`;q;Pe(q+1$84 zL8p=iaQ5I<>n3JW>}hwbw(zG^5_h!qtk0Ma;T#}czbpd90-S`2YK_5Un3>?Uqav?o zCJHJ`ssZFz3n-siph<{Op|7Zge8%Kc2m^o)q0w<*Zi7frQVl#Zh@LPXZo)$Bo@pQSi|q=`mpS$$!U z=Qlsk_q{jo_vX#-J?No_9(w4ZhaP(PKSkdkQD`BA^X!wUf(KnUTKN+kdc!{~dS zKwbrDl|K@R5DJAD92_LQQX}<2Kb1;_a=DCUS#9(8w>)$DzEdidFqAKtoSZ}m;kZX4 zkw8CuUC#4G`|116=;$bxWs%F}NUzjDnIpYYBbUozSr((CqiyrIX07C+qiy}2lP6Es zE&rdt9+;9ExlN@~A(zXc2j}6(3!U?X9s+7`Xa&X^CRr<_3pL;nA`0o^JOtN)3$JYemtSmsLL?G->D+R;T=&4(t(N)w zTXDTJzkQ0adm1h9fHTLRKH?E|>?%QQ11-%+Vl?J4DQ`GD(Ddn(UWejpWH=t%s_<#LGVhCGi%BKyiV%xPR6BD!&4 zPDklKhRWz!t`yQDXee-ReJJ z_jB;k1R}bD8vmNR=4Gj@UK|Hyj%#UIPE7#bS#KL!+wMFs{2o-4q> zzyQT!(O2ag@88H@tyY_UeR&J0s_FnJibAzomBJK@MXJ>*ilQ{l>ogkq8;$Kg6tDb& zR>@rgfPsMlc6N4}&Rya5;N(UV2P+syq{Y;Lhq6-+Y8x#r!fA#|; z(byeXjC30kQX{v!?*1-kB9V{<(*u1B9o-QsEMX`&FtR{6f#4HarA_}^0ltSLUDDqC zp0ueTj;u==mMd4`@jApl+Ap1V+ye?rq{i+rGkC4ugy24nKNleWVfP+?{KGou9`x8P zW(Kd-J)jNc+ctm}ctCokR*$r$by+4)uf5C6@K;^ae`feA(rfPmd!_l(I?IngCcRQa z3q0^?3Ap5^s=zlqeE1NKAOBtC0czn2r%s)Mw_$C~rx+lj8yr5Y)D@?`|F*fgNi-S- zd+R{cgr6vv%V2N8Td=vgiK6VwH8L_n_~}N=^@)Bj0=#I0((nF&mvOYRY5H0oP%4!q z`S$iUM~@zr;~M|OFuLdRhGC##&}fV8?QNN>_?8L_A)H_^C`qExD5|Ogkk9A4mJ$mg zoJL-^MxZE)ESmcA7SMIQ&$ew8MPX-WM>a*6rrGttXPPGYd>&O*+1c6gq`c=C0QEY3 zCX+!`RZqmP1NT9ws!Ar4@!T8W9mz#U(=>3tit65JEV5a2^UvB$b~%FGJ5UAe+r{ zR#X_yUVdX4;BfXbXGO(xgOq0jxFu;_*JWk+O`uT*ue}MLJwQVT_Oc!AL&QV$!G81Yxn}|drv?eH?$8FLRggn63 zxs#qdh1EB!)oMeCSS&_skvDi9?vJD)qyhBLJSr95=H)Z&MK8v3@pv3p^+UiqfsQ;F zKa)1h%liBlt%p*UiwtKLm9+Hy(3&f^;29z5~q}Pk+cbt@t7GXRkp$Bg~nR^3psnh8o6bg+! zPb&G}P}iNo0Q${T)G@}Ua0FcDQjR_{+g1<`hlg>SAHMcc09(k>yznAV0Ah2tT7dSv z4|g{Rj>mOAroBoUKp66ih)mQ(0+wY_OpIkQd=x7~UEvqfbO8D{og>y_A_@s}0Wo-< sV?XdlYckSgdyK|u^Og>^$~ zSVe@0R3xOmbq}kiRYE*a+D%mLq^X96kc1)HKyUyjj9 z`TOGB-|yc0J?H$+@BGg1cTb>#3M#0ef(k0A;Qthw|3#sF+g}vdwgoT$O{2O2JX?3j z#4}_6)I6@e)bMQGA?i#P40aa)zkB8@jt&0^fOIUvVk%KIzpl_5>$`t0R@Vk*JFt{|_z@+|Nby%&8sWlR=4TX%@X z7@?|=n@;WZi5pxl`8pX1VRd@}u)4h@BO$qOgUiLKy*{y&%AeZn6YClp<&oE!ECARV zEvv2#b{BOGjYaWS6+)h=axpxpBN4ibR&PYBH!?h^!|L`jJg7r!w4l`+Nrdh)Jg6g6 zRXQWA<(H5f{gq!p5&vTiaB`%b!-qPFPv+bXpj98Ed7nT`5NX~gKsF1&z^)+i$pnWF zb#ii~y(FW*9>3%X5~OP-{EwU~E!%gBOLh;M>>|H??rR>*2^=`w!%J_^@aYF0;*$vg z&Rw_)z=Jt~4K;dx^YwFxS{+rf8E#$vTyZ>D%inv^hig+C0KeYyciw#KC;aK`KluGO zKLa2#af5+f!J_yd83aX3&ay@X_6!6xo~=8?!F>W%F@ffN0!x{kmkA4-0puuL-@Qew zwmIeJmEvK3pBS5-lt)||fOK-6bSwhEo`HbohdVpO6uN@=A87zhA_5i{=|miWqdyLC z;BYf9y{+fd5A?(*Gs_{O+%~tsj#zU+hdoO=&e!JJRqOn ziqW-F;!q-cJf5q7CvtcZrhO%#n%EjwgCgRWUao z>bQ>oot4O%oDIu=``?LhsN=e-N+0UD&d`zcx_v`O(u(*MdBE}KhjIb$k3r3;y*_b6 z%?$8t*+&1p9b;?w^@{n6@_>^g?R1}BKe^~W?J8ON`zZdd6NYvBx=t7r@hkFxzAIe_ zsd*sC$&q&SCM!mJ`R4z6{5pLZV!-ziMR`CnJWVn@y>8MG`qyREg_Zc%wv}ZSkdly^ zhF0e8jmyNz@HBJx#$}@vk}N$*5>(UBirHQJ(2}T>Usou3{-~SXwXy;7g~_`|EM-Qx zmj6FN34cKb7gNBlm>Q&he_`cb#I`%FFQ`0T3osi8}n z?@ICfYlF?f`Th6V_PSqFas!Nh)GfYowvN!mP4vz>3^oVp_^kX}PD4nFua!ZFPT}43 z1OEKhRKZ3l>OdqkaT9A}8-~1-SV;hb%|SV)MO{~qDDmZcqQU0C+So>D;-)(10TPUM zCnJ3#+GG@?^C`J~q_2D-A)m|WdHq9z7*1t0Q&N6A*QWw2%YPBCkC zGC!I7G;OMDAvJXiy|WIpR%FTUArZQ(YJC8#u2D#4H3-ouSr!0mV;kCJwBXX5qC6lg zWMt*@(d^Kd-2<8(tG|RuGD$L)d=<#Y;zAOg(VQd9EO2cKS`W+vJ|Lia4CuWWT3063 zQ{lDKpk_lY`r2j|Vo}oZ*|KJW2Acz;-H9-Lo4E(mirl|w54d&tb4|l^kAjAF;dj`@x*h8p4ygrpZ4f-&-T6F^L_90{sj*nJp5-!q7PQHL)OB_ zk>BiZo^CLc|0%gD;L>?>e+Pg-UyM%u0031VypssW*U9G*<99b+i}eh?g2*v>hE4y*U##MILVyE>#r%2Iq6pZ z-{5mX3MW+7Uo|O~wwRtBU~F!K@`}dMcDD@0Qq|^8PDBVN)PLIptJxuIa^f+M<`3zO zYBcwEQ1wBqQxgEQ-Qet`1G3Ebr3l4R)p0XQA`<{GJ^O^QIfHWH&lv!OCP8Rq;;D@F zYX(X{1PLihp-0PUJVr+z@7FGet` zb=PyJh1qIgeEZ_g6lkOA8yn8AgfLr;8ypem9z1yP-~r$qFB7@ht@w#h00000NkvXX Hu0mjf)57*r literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/meta.json new file mode 100644 index 000000000000..e669a6403e68 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..d31317d5e5ed921a13226ef27f28401023ccf5da GIT binary patch literal 1858 zcmV-I2fg@-P)z$lXlQ6aAP_+R z>HXOL;Yp-YDfIO8q{nWKI~KyW0MhyG?c4Nqc>1;U-P(8b|5Dc9JD}_NAp$$UsX2m? zSUgj3D~hI2gBAg6I&=~5vz`+XYzc7WqevR6^CTcfe?F*xrQ-rIkoAxL823yBwrAzy z|NW<<2&}FK62`R>pQA$8yJeq0uK*-(eIK#HPknPJPzv>}*TR zbA^DjN;W@ZjEIoBGn4t{=re+&)Z=q}J|7kpfDN$m`C#=u{r0oK=j<4e4-9VBb~p{1 zGl2nKvz*hQ*v;qcU{L`$ovFW^a#4Q1jxY9{Q_MG=vXkuWaHxyKwH@Ia8F&moGbR(~$s`m6f=5 z?HVFAPZ54`IfjRa&3hbnyzeL2zHqj*w3xpvbIb4O30VpD_huGF?M69$P!=P8B4{ke z7~uHkMGTGvYanz2XOgKYW;S+78L@9p;Gt2ov196f623z5*9R^kg?(smZ->kX?0o&i z53cxKjoI1XPpBp6B*xH@5oP8#fXmV%f&7d?obP4vE8Tvax zp{n^SH9ZW#lht1l`CW~Gs@D$y+TY@aQ4tgq(;N2!)#E1rv~oqaa1{g4xG(2cv0{Mc zuixz%zbhA*{pFC30j5zZ22{QMbx~YkqJAxE|L&Q?Upv!)366?2KVbLa zo}3|g?4xb)8=616Y#?rw4Y_L5wg5ZULkF8xbrm>!d~c3XEWh_Ct?TvOgy%a#R{klq z5`Q%FY+JCdx&kZIB;bbMmH=#yHvfd31m&W`nIPesV)UkGmaZ3(d9%})@CM9|#a zj94tD%i{4k`ntOje&b_(kC6Lv&nu8$AY8&Bwn-Vm-3q(>wgl+z?yhii&nx)J|6HC6 zc!{zAC~=epK#8L)07@KX0o*(!$Ki#X`gn;#>~SQ(PhYgAxfvq+flDof@XOw0G#X8F zyX=E+hrB-*VCP4xcOu!_t9NIaq!6CIILDA;2_by46HQx)UTxb>Wh>HlMQ}6%xcAQ8 zSZ+&OkIX1U(|g~k{|Y+{wF7qEnvfx28Ev8nO)Fs=j$?qNrf?%-Ppm&CtF5?uo1>iRH*3bw>&;Oxw1BR|fmExJt(Cl1+Vt|Js?6@9@s`HXWv32FL z%$B)LI2r+Lcy0m$a&iTh1ePQUC!Hsp#ekYNATfw_Z3h4qb$L2mkA-su{DSy8T|iE# zmu>zOqk|{3jlsu*unWgAKvHC^u;vOB3vx6j;7mZ7Cz^G4qjDK^m+ zox+s>%n%6}hmrsMo0}`(H-w8~$g7a76{oN*0Mkx%s;UZr3^q(qWb_Rg=Ym1ykHuIC ziXD^4;mxpcR{hiI3T$RI%hzQ0KOQf$(aRx4)en! z^zbRhZasmQsj>MWFCtX4T-i`qZh~V0GI@B)6?jN_rw9KBOw{kjSZZ9^=JV%pHu!0r zFy~?)Ple~fRNyTnYU&VXEGS?Kb|-*Zdp8Dxc+il^6PSAZ2uq2^2WOQVy30*)B>>f* zsDBx?Mhr+ieu83SMe0{b3}9}+RNybT8HKK0z%!ol>k>1 zv7E`v_2!q5{_{49G82%CoN^q_e1R*b7|!6yu5iW>|B@rDuqH})0apT8&*TZ_1)Mo^ wMwj*N-w!|W{%0q39>AVGd(2z~!fj5%fAVUiUxZuxjl#K4(U9$@= z(iXo%S3iWVL5FU3(01tPpT*J=B}h@E5PP0HOlyRfn&6VNB)RwS?(f}4?wiFwD+Y)G zVt~K^rfItArOc0b-|nGaug^pZAd9ouq!?#DD1hv6_wqF@QLYQXBmEYWDA#3~k5I|E;Lbh5;?tU6615{3`uKf4yr;lF?(^osK zhJOUqa5zM>*~D(@>#TE|-#NyaUtQLMEEx=-SS(^N7~tjp8Y_!)qNtRv>qsV(c({9v z27v9)t*=4TMmyAw#Yo0mPfR`zABsofcTa=@!1>Pmz#Efyf}D`j7YV>Li-!&ng<^mh dAO?s5J^|g2tIRae$~OQ2002ovPDHLkV1jm_(?b9N literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..d71154821f09c39d28b585b9fa3546fc99d6e03e GIT binary patch literal 1819 zcmV+$2juvPP)vpu%xe z3Xs~5Y++u!5h0zrlmyuGCbC8y@ZRSpY}?Kenx>h3?O7XLy};(T^$hU>YIyylz`Wal za0Cbq0of=poB;-ZLAK|6bs;WP1JQsurRBtQ}bf!c) zzKH!<%0&2q2{S12s9crbn*hD6@o7Oon3$Nr6KnIuU;Q+}dm|IiKaV;eMR543*9p`K zU=2qt`}K)*`!P{YoutBlV*#kL1x)b`tbyl5*67Fxo`1>2(GTrhnj3RYJcmEwp9nMX zb1W^mLQDl!{u>IAN;{RF1tLuCOg%6@KAvklfzo7Lq=zLY!No|OWbdJL6!NEvJgdWB zQ~+9ZXxO*z2G-S!xpsLmaCLHW%5#*y{GTW%($*7fx;!J^*Ik{j$1kTL4ShKU5Ec2U zlsbP=0WSU{=G6cVsjUdbPqJZE1AKJl3ZDY@Q85ZAy@+a}h3RR82G~MG@6r3EU`BrG zWjXB6iVLkjTnG*Rq5=>xEiQ$iMNl>#Ux+j}zy*4b8(sotdfW z3U2=N8OC!)+$$#0T4l}@4w z7J@<${8}Tx?zH(FBr-B8HfHeSXu04gzp?;BLqkgWe#38mB>|Q%wAlGl+{YSh=W1Zi zfa#PYP`LTmuzBCauNE#2$a3{MJqytKzW5GjJkAar-y+v&d6oI}+`6s)e-U!?Um6Df z_*vxBKRow70Mvx__&o_gl@hT85lRDOS{f&x_fv#I{_8=9-;)5xyI;nIkb#DV26S|E z@Vu^WI(9bmG9x4oBC=eT`32%Q-YxFw2!1_&aTJ#D#_vgh=H}**PMKc_lK-ak3;2nu z0H|G{IWaDRB4oG> z+17~Z&eI}L8v(N7S`oN_`suL(<%HzsaS2aBxXTq9Pf&{zYiA>XT?em%yXhl;7sLuI zL*R%L2ley;#(nh)w}GNY$XmVWykp}^@AWCK0Td$R#*|ora$*DH-aC;?(oR6O9d1{v z#(S7tyV(9BGDwHwc33Zrxnc!+&iE4-R17J`QNKXkQ=9@hNaKzzyu2xX zvFjiN7vsjAPJt6I)Yfk)+2L6L%d$e--?Fmy0vl%91lTUna;*hnBh1UWt7?Z8_(@RO zAzk7v!!6i&U?aaL+d3!J>`-%$?{GwD$S-=s!@~%N!y##HE6F#2v^lgnf=}iqP5xiuvhh z1Es_!l=MX?IgsRTY3ZvkCwN={n*z~)OAAaWNq}<21l-7mXjESWEdj_+pXmhV*` z2Bd2~GoT-vpgjVlE1G=rB*^}q$Tn^(&le%$irj8ZvqJ~k0#J|w1tqu*2r4+j4R@e~ z+ZJ7D3E=k06DTg=c=yMS?|ut{#D&mq9tRLz{$egxfuI|c@IRb!ArmC1-rN8H002ov JPDHLkV1jF7PFnx~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..759670ef07ddeb395fcaa73567e5ba0faf5066a1 GIT binary patch literal 516 zcmV+f0{i`mP)9x-H_Pbt-<-Y30a!+!}z3=nhJ->Uu>&8FJ z1#kge0AYaWDhz4lcVE2)BHQS46rd4KVLwHE@JY=nF!Aqd+5 z6mk#;mREp_Y#I^*miIZB#*`dD=C}#dS%4E5@@Vs`bzR5wT+=?g)~$PalFwt--WKcu z%mAKKb`0$H?G-2%3J5I*akQ7L+f-AZ?M*(P^ zv{t6~51?ABeY2^ieqHzGd`AIHhzNs-uqXB_mHH9Hclj17toG5Hd}85Z04<`QFu9XN za){S4T}QjJ4Y0nZ7`OtK1{5SpC1BVz?tl`j^Hm_12U2WqV^eY92$&w99uPZJ(9;V9 zLqSBh_z@)7MSb%7`yeDCfN(erRaNowtYLgiVxf}h6fOTem39t*BuP9}(==pnRLBz& zyk0Nbm2Ciiu8Psxqi}-wi-a~H@^d)?;DlTN7r+H@0lom)5}*UCB%~1l0000L8B3a ziLKJu7auC3HEA$WAL@%HY63Cwhu}W=LQ+af0uiFo2Pvdg2$=vDV!K3CWJ^)QQZ_A= zw661=?U@eS-FEKXoe{G8HJh2a_s*PizWaCXy{7@na})@mJV${5%5xM5pgc!`0LpXR zl>{s|?n|VmT{8cirSmN%0w8$!-(kLwow{lZEM2#d6$;)H)K5yi#FXW`CP0iYuUyUwT%hxIEv#I>ibmr%DB5?4%XvY97!M;Y`so?tX)+9h zEC%Qs^II;1d<#nQT@kQt+qT5spE@RuKY5;wb^__h2MH*@YuB!vk$~@=7&9lHVpL`< z(Ygx%Awln_SDEkpKv9XlS77>T3F|>kB)5XXD4Tz5VSeXWxFRU;hHVv-@4{4i*y5!BQ0!&sHWv%jVO|+neaI zRU4@Le2?^VZu-&%0Hk+EdZ?|fjmx21lq?MIalpG=S@2-Jkd>?*mH#P6rIwe1RDokDh;}8bn zE9M|Suc&*FE_VIK&maMVaM)CnuS9?_9YXTNkEanAzR*mR-zr2Mhq7_U2Y z^t;6UZqEsq!;HN4_fpp0C?XRaI5AcI{d^efl&}Em3c8FNGsv zI}ecj-cT|xSAYxw%gP`hX^c8@E#DOZnD2G+as@Bt-*vM@*D*MD9=$Kfbtv# z0(4%wf8zt}m;Z6>ch8+5H^@dGB?7Sfg0*)%dYy{r&9MU&yo?E$4k91Aj9$MJO;pcgrdPs>4_a!4uEKvd|1xou^H*-fyi`#F3Cs{HRAy#0)9Ail%A-5oOT}igrDVb0$m_otbkWQt)s7_ z3)nhXI<1>qW$Wk`%45K}K)*c$2>di&ka{Ezoz79e@^@SlaP(|9Gw$4##jN101;5~w zCptLwg060%2`QZtQ9^wqa2N)R~;d_}HQO51}lv==qflPt` z3cwfl8}Wf5c7M47DwAnCm7v@OHmt0n`Bch|2OJ+GEMVtqX?MsQ5c&WDEJY#|jPu>o*^pquJ>oUS>c^*Qy>fi?jcbV`;6Z&Sbz5+qPUjTY@3*8*|Nd=KP_N(dnJ5p1Sf-;6lG7Y^r-41hz0Lx}s~(`&>5);;ug zH>6k&ArBFD0Nn$O<&lJ>2T^urf||RBz5{&sKans1-ULgxXnZ~!aDeZg<%zxlQUFYb zrqgNj#CL!d$6#8ktkPNMTxvfl08G4kwMOe(8|+h;()-#=fwi>-RAByjjF%*Ly`a_013dq1Na0O W*|?6wayGPC~`kPz4F z_dB!u?_3eJ1=56@bZ&VRsoax5sCg2XLx(5dBB{aq8STymn`}@P15-2qahG3i-Ut z?ED~phB?8|*Ha)MZ5{qH>PGx)MgT*7K@1S^L012-AED;M-FeQd(O-s7Rs$>Nb48($ zpHAvTJU>65fr@_OGkfDQy~{MbN7(DI4e=OEEb7EeqXrWUTt#v*k(Uh z2vh!t3ZTMg1bJixBOs5c5L^aFV<;A@@zY5O?ZwqASJ2$DybqX}p2pT~+i>yXMR<);^Sk;oL~@emzLpcEh}z?5+N;4Zx2=ruXOmtEZ9e|I@zj+c--8i;!3Rjs)OCNubfS9+><) zzpahPprj&r$?r&j);)*dmz@@q50{`W>ANGlF$@io)tb$Gk>wrJPn0M{en2HJ6559Ij-R)^-# z-o&EV82SR1QxS|JApOm6u-@uMBa0)Mijc0$tM?*=*CNpQET3>|s51j%Q~LAEFmcOO zWvKK0%UB54WJlmpLfg<8y9IpEjd{b*I~IUtXmuz-<`_x3V~rTk6fRdgFHkOU)VIf$ zRHc~nzfN4DtxjPS0a+0Q(Yo8&epZWlUSJpA#iIai>C6nhiSvY!0KT3e;?cNW9hQWn zQFvaU94IWCGeL78XrmQPI)09E4j=)uZf>Sq?Yuy_p==V{OyO7nbrdZr>;B?D@G;ZY zKV!dcX;Trf+Cd7hpw0zm4rJunLdbjCDyxyBXSv%63P~AwcU0tf3NF*>ZF=4z1AlxKDpAcCT zfMsg#z}yfQi?2_fR0F}ol1)ub+6HgG4r|CXKp+sn?CdNa2egO)w29GailTlH;h_Z1 z#mwA8IYEcpgTd?+bPHDk+`E4tj~m?DF?eEV!zn!@Onv(C@;cOW0<_o|69n| ziZ4X~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7e1f31bd7c2ce1bc60f070b1c1a97d097ae20e GIT binary patch literal 533 zcmV+w0_y#VP){iTybx~AJuf-WJvaA8 z@y`kX0)PO(Ge9W6ZWyU~gp>hjbmu9S9z!z)aEc?l1S4z4XAdy;HdxL;7a^E=j}Y7d ztT+|B?y`qg%;pKg?nE@bh;Ng{3j{yFvH;_}g~Y)Yi`81o%_Vl$*!X&SXZgS{E`U@j zWwbK_AnPpF8qaP~M{1{!FoBvr@+*qM)dem9K@hNd(uR_bp*mMYp;SP%UdQfxWx`87 z^7D!dK+`nD<8kwCh{F9bB1hX}#cB19$VYx(0jQnSRv^aWVd)CED2{m|>Id6z%(EC9bgs;00MvjAOQFQ XS}C#vp?#CV00000NkvXXu0mjf-M;2g literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..2b169155c9012a5834bbfd71c8e0346b355e23fe GIT binary patch literal 1798 zcmV+h2l@DkP)NMTvK*u82m+9jwZaUfbGmLe>uAy^O+y4hOVK(}mvw9=7q9Pwuzn`#_u zI?wrhXFtbLzjNkCmzf8KneUu$&hwtDcsCh`^N(&Ije^?cxx%xtv6U!*p)RCf`B6fD*qY0p2@N z9k~>FSXPn&GAPbQ0i1vK#GXj^C(}t2;Yz0?f=Z(0!6kV_>lfA(M0p{;%&!R2`<=E( zyW4Ate_H`i`IX#Kns~E;%Fhf@-LZN}_+8thbhw{r^yDFG_WU8=9lLgy<}S9-#Y;EE z|0pRUpz_my71G4%hA0mpTYv4lZ+J19K5_a<$&de85n)>a(DJDK@>Gz{JW@_ykx|iR z@eRezMj>CmC*H4p_XZ^cXn9l~5I0#(kQ?q`XMm48YcIbzmhw=BE4j}HIUGFu>a+{b^Iuo0nS%md)nY$8wh2- zBEO|EV0kt`J)$58G9X%fY)N>4r#_nR6RlKGRzNd;jKZTiEL^g{{15~@aJl?h*Z6grR@Yc4`YT06P~lfv2*Cq7 zoF#N}^ceL!|1}cDv+Rd49*`=?N|qVFF(Y9>4uqCBcz{(X2>=f`-)pE|+e>K&cL{vg zHP*@B_#PV>(=Jm<0A7Z|?ahM>KL-{9a6d{Fc+mwev^)czzyqNwzt(1mM`9j)gAKrDMQbVja@vbkNZOALZ>eOkW9x zDE!YVeJ||t3{FzJVwqYV07K?-!i1$RmdfRFN^(%TfQ`^x;7{uQbdA3_PrEE70X{0V z(|}lapNf;`66pbvPc%)b!aHJ5(zg}A$S3kDm8s|f?P2-Q~Hoh{s%H5 zluRfIu=v}8{FEFh-H_+KF-fTg^8@+&Y;n_7VOfCc;|>`CLgme5EB8Y3!|8Z$`l>hS z5g{`_W*=}eKg7UvsKakb02FF&br7-v{LIEl9H*p;5X-+Aboea^a6!y)ZDO892+AA- zXy-iFA(_Vc9x+X-&d1yF)2iWh90`iY&v6ON$X59+2_QpDZm)7)val|+6~mP%e|8q2 z3`bS~%5Y=_pbSS=0LpM^3GnzEPPs1s<%8jr9fhkP5qp#b`1$fvk!OeQ$=}#`?6eTf z&pT9{9DUugkB)Twklf7>fXcr#5|*1F?7VmbgeY;kg{fNyNTuvCix4(2mQf!QXxRd2LgE>C$3K=>IE;HI^T!w7tEPvCI>ElLNBy9ovt zivgQlq#l^DEWpT*ej0op%Kj}rB{B?sbl{e8CV1ON&7Sl{1#u^VZ>QjV;-?pl?eK>+ z!nPW_wACtPKr2O)d>+N3UfmM(gwFTwcB9^rlNDA^?3=p(=e9gdQ)&h5uw`N>txHf zQD{YP1Wp8)4QyV&;GWtrEvrCF08D+T_-+9PM4dGNpd|oTem97as4d!EfTti#fgmrb z&xie+=DGNx1C)}>5oVY#N|gMsQ>@~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f010a368b6d77f20935bfa76142c05438f80e1 GIT binary patch literal 563 zcmV-30?hr1P)K@i42!x4pOz(nH%F@i6|Dy>=yf=w(ewXn1h ztju2^Xdwu~Sy;x>B58y`I<-!th%fL&y>LM#KEQBO?vrNP*LX6AX+F3O^NTMlzK_bRvR@%!3tg zAL?+jq#VFwVv13bEcEjD{*f2u4&Sj_DQ=pdt3>(!sf3gYQUFceKBV|JY1CsT+J))m zSM1C+;OXi`#7POVMU<7Hd|8tM*xuR~QZJqrpeC}B}iXFS~NJ`&b}(3pV6+%3S^IU+@-U%d4^=R z3RGT$slaR+j!YV$b27~A?f@y^3kHNw3Q*qdu2!2qV5fj}{$xCE*QTomu%hst@*BRF zFQIMeb8M|&DaUbN8vwKaQ@iaA0T&17V0Ssx1zXWO+6R?_yg`|HRR=KAH*~Hn2g8~R zjSVArYzUYydDRE7Tbz&aQ~P^ABrbpp-~#+RfOqO&*Nod7rtAO!002ovPDHLkV1lS0 B_Ot*1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..6cae82165fa389a8d13600c85ebcc912688bf3d3 GIT binary patch literal 1632 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 T=MZa&00000NkvXXu0mjfKd96F literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c4c0327e540ee6114156543e049242f82245cb GIT binary patch literal 1686 zcmV;H25I?;P)E<@ zvNTHR;$VTq7VU<&*gH|Xf&9glJ`i8z;@s|?$Z&$mjI1t z;L{Yc#aMV6ci);UUwe{6aE_o;Bi-Lm+9fBl6+~h(~%0Rkjjg4 zT*ug~e^aIngYh_tzd^nC;{7}fyPxRVw|bxbsOsAv+}Z;$uIA_G3EiohqyF@B@RsOD zQSo8mzDi}@#dARcVfj7G4>T+%Jl7s$-!N_z0Mpu}mpuM<@Eff^&Uic@ z6mV{;4VVT|*^F`z{-YezAamn6Ke$l7rCBjdWjB5|yosVadoV zm7nz7BxnUfXJ==!RkPyv+kZqaP>e$PBtgQ$(a{lYZf^D~yS=?lJ3BjlQFeECwcn{F z0DQsa<)w5yi%Ft-y*_e1N-Qlc^*QtTeE%C|==Qj-3oQXS(5ThY(h)6t{(0e&gCP(? z^cN?;Q4c^&ZezS1^rEw6FEEJ>KefogOyKb+#ZWYbkq@A!&gjLMe1PPC(h7~=Xb5yf z7wohKMoAy=I-Vh5qqYB7kv@p|N$}fBuh4;(00?&W_Vy?%$WkC{47wo7qXzh!%_h-u zh2+kZHv~=)a--Y;T027cUSD6Q!^6W7qqsb(9U+w;5ogn@u#8NzS-DMS!tYA}ycEO? z5H=OX@t=+J5UL2n{F7k9?@NH=<72wIx}w$9Rrwp>c$}{Rd|h3bgaN#hc`eW5kK;Gt z^(Dam{(i#bT3CpZ|BE~q2oo~_Xv#4YfTkQX0cgrG6TsvlJ`N9Z>Juh{*rO#t>p8jD z4B`F2yB31^d2iBj92eVVE5B0s=K`oa&fG4VBZ@12{DW8xb3#()c|oS0GB@ zTwricQBxa13%&)wHgxu5k?gIaJRV1eM%&vA9nKYq12_!fgHu^~FNq>cgClc4(CPtr zv6_H@lcC{UfxCd3MDgHjy=S!qIQgMM-+w5|ZE4|l<<=C=BPQhvLQh!1Bw{EpathATIFH7y~mwO4xQ1l@ombU76Bi`eQHK-yFRqS0DXPp1>%N2aS(7rSjY=F5B4r?0c0K?79*n7t-n_2bAbJ% zMJAczK%gFgR2Ae2^t`{nX(uemX<5tyDfof_Q?QW$h`lW@SLbs8dScfwH^E2%sGrQ| z$?|+aMq}|279RdxqU3qc2Ve-ims6vDFEkPWb1$aC=KTuMeUiC@cQFK{9rz<`G0jml z_5mCXVh#p*xm4_AV+n0BQ5JOBUy07*qoM6N<$f-H#`m;e9( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0dad6a3b9063d7d1697de45bf5faa14fc994db GIT binary patch literal 490 zcmVrpXJ4 z;`zdPnal^jIVGtsNC7;wSkadoqI>VS{;MsE=R6|*%6#z4N(x}UB5Gd$j19Zzz3{R`XC)NYgZ) zPm-h>0JOi;=}^DlCw8MKiV)<-G7cXIOOl@1n56*VPlrEYK8E5bC{9S>s|4VZkCzTm gg%p4SPyh=A8Q2U2*!4z%Q5cBm@H>`&=5RD*_!HR4wUK@J=TREkTL7N_qQmwzKlrgc zg7;PVr37H)<41UAsvc=Q%&U{ws)q>vhOyr4M4d6{q6i{CVfgVI#y2#Cf+T#|YjD6{ zRsbR=ms|Kb06q82vdwEP`4u0SKU9zElS{fGLNWgK$L6cp-i}^5)Z&=GtN^C+0CN*{ z*|OkwI{@86rA7MB9D&_bD*Frw&p1Uf{xzX*%pQmQB?Tb$Nl|K))HJO3e&L%7Y!c$2 zNeF&2}{AR7g&e-bY!#y@vcV-s$Fe+FK@^uZxsL)_UPE;{ieR zfK_V*2(R(zz~^@1ULVN@W zVe7e|?KxExifKIy4ydVQ!f%pmJfeU^=gwCFY=j^MLY&_}nL!(T;Kz=x;^7DKKIi-;1t3y> zezma?g1Qb6&94{9s&4KSCxu<&NyL!lKZZJgQ2~g27+s5ReHpm~sNPla8EnUi2$kY5 z`wCDaOZdBOE2pi8xF0-^#~L1&=|a+28FJj?Q;o-?A(l-#T=q_j zUrGSBCSRei5i#};ZamAc6zhZGD|B)L;KeOhMeveeN`RTsQP4vN(A#?#=I7@D?q7%G zXc9?d=DqtNRI^74MgHTcaWFMAMy*_ziiOG*8JW^go|+>OHi2A zb!Nz5g@oV<8Se)I+0GNTbse@f(^gp#lsuq|LQWrQW>g5}?}|`FW)~ux=AY!ovSF~O zjE6ABj|^r5A`z@-NfE#!RTQOOCR^mgaY_PAPt-x5^~w1esvZ8yEZ_XLC0ph-L>qWc z!1PTm*RFf=?MVwj(VxipLDmCUz|vAW_-KczA6_MO1qgl^(EVjGUGSQ1V2_!vJg`|4LkKVNz z|7pS@kP+(>D2gxx_f*;gkaHT>ySC;4+G2`N_Apx|R|07PreaOm2u+)i8<4aFp;x1l z9-!H{+AMy`A6m1;4@yDl6`+P&Py{092@-tLp?rZJI`Mcb6lPnFR5mA}$=U>QK~y?V zkp3(##^?TKHl$cYHf$L%C)D*KF2LKK(@Z;fP6F|A&m()zTXxFYQC0xn`3`I8<3t2n z{3vwYWnEJp3Qc<m^>MRhvBscaEJp?C|^JYC;KWa#N?-5-12l2#F0&u zD3>oF2}c5mF?qNS(A(P$GY>~06vDExG4K-l?c0z{CgFoGx?z4E$?5MNAzwfh{{xJO V%3=EST7>`r002ovPDHLkV1fleQQ-gp literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f28976a3dafd20aa4d7f9ce0f7941c9a3864beb2 GIT binary patch literal 509 zcmVAPsN@;H9VdU$N`}D02m9HdQZex-1x30m}ogr+L3=x>69r0Bu}(*>IuD+j<0I zz}wVMx=o3lkWRr}Q-!U)r4POwmYc>Kl)#mpP7J`Sjl6C>6}I!o1HZCHM1gmKJ$0^E z>M5aJ5CZ66@N#X0H6P;XK%W#f{8tHeod|3!04(Tv4)UjBIvEoJppU9;+g_fxze<5+ z+c1}pkS6soy;Q&5&%$zQyv@B4rsr&|0|}e?CVa+~hL*|9I*k~>kyd0YZ?*2BSY3qm zlNY}unu2N;S};WI3ez4sRy?PGg0I3Ot2-4HtcxL7m~X@2XMUT&RF(qj541E+1matO zV8UI;@g3%*#t1JU|9z=x;kX|IM1yxe`J=Z1or^w}4X!7MSO6-HqkyKdycRe}pZE2r z=&yNTHZBeTnaP+1sS>om_d}8ZBmfD(zXNy&AwGmgQ5>yA00000NkvXXu0mjfp8wjD literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8be768c7d973417a46ac4cc40e073fcfcf770b GIT binary patch literal 1854 zcmV-E2f_G>P)d4+8QZH6VMP?Q#66ttZis8kV>-qk_6H; zQVY7h-)zo$vugIv?Cw?B{b0F!=iWQtIp55^b7tl&MV2Ec0J0o80g&a$34km|P5@*% zo=5>spFSN;ENf_J@R-!4CBU&`$D+l>#rF}4K{GQmXliOQGQ_oJt$N1Y$Ny#nP$ z%ajNox zd~a*>YXw51qoXR=;gHzf-Hn=>8dXkmmOtqGkWTdW_G0hey)mH?`v3<5SJXL0IdbHP zcAZ)R@LO=})-ClTC_>`(Oro-~GR`UD^T;y3@4T)HEdeCZV9+67V}iktlxGs;CohkT zLqrS?$rM1ML>(ASh9u%+w`2FSi;-!_*WEtKB%bR)O8_gx#7yNFYAf>8xx9-+`@k3u z4V_b&*xiE z&H$*hvlE#H`GdjO^jlV@2q`mx)`}31wY9YioE4*_JX0$|c76&jPLrPv!eufOen$eZ zQW6VDXjff&gzcWRijc_vFqrT=65!gkYq)dg4%V$(r~VW2&dD`GuA9D(i}4FDgRh72 zoA5dk;P~<59+PY7LMHj2xKSY8$O(WfM@|4_IdTFZ%aIenS~O1T~`SR2RnX*-yiD*ZaYuVSvt;E zr}L6TF}}Q7+3FNpJ>d7gUci=s@TkDsWvtODC-1uS~T%LG_sw!99D)6$s67Nh-6e!#~f}!E58=$W#>i1Q&zA zJ8!MG{tsfu>Shc$tWUcKoC?>(7awQCo#5iMw2^!cwb+pN|v z_SNww$MqS7!d#Y?;6t2F%oWHago}9!l9OPXoZ(o2*49=JgAn_YI9ot^1H)rCB0;f3 zw&ckx?>%i}NX&bj)~D42=%9!|uouX@z-_R_B{xA@Kcl(A0+plt=WRS!vi>`^g5*s@I*+5+_Ldfmf`5&v_a-jq01up!P_Ge0(j-8S8Nj6Q;#6?)6P zO8LhD41z+T5u7!6Hl-CI<_WO-N2Vj_gS%jUU|Ak>6Z|Qq=NSngWAWnz(-_1^0FJ$> z?8&DKi~?l{G|f>oeg$OwrvW5yYio<@jK8UXT;j0Z4igv)Akm=R05?Ps=k56du73mU sd-80@?kEP)6Xzoy4Jt z9h7u(aBy%j!BILnB_KFElwt@(SCJrv4yEl93SElWMeyvqa%r*4r8KzYTXOf_Bj4}- zufRVm0*C-2fWQEnrV&vTXX2jcL8Vez3KgJUuajP{N6k>NSPX{4A#EcR=Cj#sAP8=N zYPCwz=`U3FjD2>&Ll(ho^5iQx)3(?0&(#;s!7bgW#y!sobb{ zFk{|MUBR;Cf*}DZ7K@8t0#vivq+e0G2L0KCTy6xD8s}=Y8qLeH9ORe50LtYu*!JWk zped6e2sH1yZa4sFn#p7!pU>02Wmz2YnF( oEx|m`?Lq;K84cn zv|R5u-tTsjZZdlW3gvN#K>lP^mAZeZ z?h)Bqw?lpZe&`!@otvAp<~I`HhqFI9hZ_$2_kT`Ks>ZU>yoV6@d~$rid2ss!k%`cM z>~p6((|J?*8YIj;}^%JW>bw{p7pK- zo})(~lwKYNc+Z|a`xQUt8Gs__K;!Y;mOrlmnB3UgeII||6VVD-nNz0*W!J9V>K?zt zWCW|g|Mkhz7P;N>BLjZMRxh;QQ0eU~`mCZGGNxHpTy54=Ytm&mUoP+iIR2hIq zqw)OhvAz@j?^@d$rIKJvVDy#Jw;ubPnxmPgR@Cj3jULHVr&xPEy;p4MkDJ$1Q zj`@|aFm+zmxcqlu{+a(vlGqM-*SSjSby1=O8;XYOjb}ad=Qc1FfG-AN@9}{}Yd(B~ zy-)64v@%2uUGR4@?=4#M;Tyc%_~MNYv4F7vtN>hLY>e2`Sc>3_qn!JLxPW(q2YUhv zP2T|JaK&w5EC9w8c7^Z);bEZ%TsKoWBt7=B{`FxlXWO~$?V)!tOGpGSw)rp1MW z$w?wcT>M4?aCb$V{OlxG0jYoH1;Hx7%6W)XggE()1jx?+A^rXRQd?Uq!^6XV8LvZU zzH>j~Kj*WkfcLeuw5ac?RBBoNk&zMWcN+=N)6-KHA2_Qv| zk^oZVCTQXJ;KR8WjDR zAQ~^%F3Z+!b^e(EL*j)Nf(>VM3g1yD)GhtiYpSl1g~xTYzVf=?Xc9wtkfSVYFw_JL zm;yKg<6$VvP{(v<#`t|!0^r36OyXDyF+q^(2cdDF2=)Dd=4AzBp z#6hVktOUS|8TW^&A$(211Wn@cVZodM3_$`Gz@h0Kiy6a80G`0=rrzSs3#d?BQ6U|O z33O+YDklM*fZoRkV5A7gWTr3{fT<@mFPy{STn-fia^>yB2_{AGOb~Se&_PV6F@co@ zu;+OQ3D6&iGc2Y<=g_}XgxEr3h|Lo)J(&Hc-=3E8_0=-(m8Uz~W1j=C6t{J}t-hD9 zU#IGT#&h}e>lt;1$c1yK%Mf}V82pb2%OYa+G=0PcITqstXME-+!t!+Ux6K>28UlDR z++GAD^)Zi1gh^PotphrO>3RTyvz&l!>kueMNR}iaVk{P-@dUVBD{z)hys?JHbm;CV z)@4R&3kgPr>5BxNfCCA@R2jtNQGr5bi0PnDg1I0_UI1Y&0L%~DO?qB>tiF)I`mg5& zU=^@A2Ot7j0D7H!fVi_lmIE!IJ5v?P2MIg`vhx1`8()w_NgaC963nr(dbQKk)Krj_ zpsTCPnVMKoRuCjHN=G08=zlY798ekEZpGpjfsMzml=%Rd1DG#hi(t#37Lx~%7l5*j riIl{RL?YpGjmhZfsGqCAIt9VMlRL-OJa|ZL00000NkvXXu0mjfVtG|c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dc5dc934c591ed3403e2e90aabc5684de53ba99b GIT binary patch literal 549 zcmV+=0^0qFP)aM~Xsx$gJ$9ZCf6z(>n{;dp<3kKgxm zzxUpq9{yPxfCiues0MJmJyNY!`!#Pg8X=Xs(QyT^+D3?Zxl;Z!UJ?qbAeaF#xxvs& z%q?b12Lv5sTrC7M045(WnLvbQxy5Q#iP15Qs}U2xT{ePUI$X~xCIF|?1v67V$Uo)5K58d( zwA|QIVf^9t9`=vUy92wSc)#hP!+poC zpoY{ON-70GoIbD3r}UPNf{JOj9|xW8q&)cEa3eF|A6PX7(uen#!d nODgubs{lNt0cZdkfClgb$~)LQ6L)lR00000NkvXXu0mjf(K_Ua literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..89e252f7d45d058df90819d6851df2b497cdfab2 GIT binary patch literal 352 zcmV-m0iXVfP)DH@pN%g0e-G=e8_p3MQ%hX$y{W4G z_4{r90b-2ymQ4@<000000002sc8)&vy;O}?Xnsqrw?7)&G=Ni%pLg0?(^u<_DW&Jq z$~lXwnscuEl;(5J&-zkI=d6H~lGIwIlp>$fyoiW%t}CTTt#wuNs|PU8bC+|LX_~rE ydj+Ox>T=F9&+|F8UFpk<+k7Pg00000*ytO)7SiGw(!2Wr0000lRkeKI11~9{sSKX3elF{r5}E)ZLM@p9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff08cc2378e1fe665b4a33187c6201e6ff1beb3 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=v7RoDAr-gY-aO68V93FGV8XxI z8-$}bPRiko^!O$`W2YAX$6ry*K!pqqw^wETsmx!to-O6sml><1X8!cNr>&H<=FI$a uV0i|HbDMYDzFThl;Ka8I^S6c!2iU~Lti3W-_cmSv>GyQ?b6Mw<&;$TWHZ}+V literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9e11e06718cc7a6b8de021927a60ffeec6e9ddbb GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=DV{ElAr-gY-aN?Lpuoc#aOj`+ z2G8)9Diz-sxfw2aFPrIHcj>V{D^MjvgZ$|;|DN1?Q~COzq7t9|*)wv2!7@1>_pU|l zH?F^(Rmlia#E=lS+VoiX6=QE8<(!eg$Y7VoysXbFv+a>;07%}`)z4*}Q$iB}%_BDZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..eb13f68b9ec0807668b43c9a5858164bdc999dec GIT binary patch literal 456 zcmV;(0XP1MP)S99(jo%HKUqr+?2UUf0 z4)y%?VhuhG@n?+b|0r%z6i`((9e?=(1OWT}e)2`oIfqde!6w`7_IsbdAq0dF@Cjq- zJOhr$qkL@vE|-g}Rx7@W5)ly*5fKp)5fOc~+kLpNyT+!#)>=&6C(ySD@em2$u?R0M zK(!&c+wCHe$Grk$>bgnVx&Yq$>z;hQ0U^)x$p>FGQ8?$|y>ET)&oha<_p(?lWVu|* zdcBTB-eZ^87!#=~&gZi{Gx(=(0b@*5mZc;~65Sp@91fEgAxV;`EK4!QM5Eqg0N!q^ ye3UMc%G`Se26+t5xmTcf0oW@*L_|bHG)upn>Kaj$rFaJb0000_ z-R4?C>t`tgjw>QL4_NP+1}=#yIwij|`(C)x>1{l2Egc>ErW7CRv6)`pRQ3MHk{@RO zp0kB~Rm{xJ-M(Yhxw#E9J9poodsJfnv0b}o-27u5Kkca*W6a*J-_i^onh&?|GBiZJ zE{xu=^*aN9wu8%(DMfM2$vm8jAI#O17HNj%o4a|qzhH0yI*q~8)z4*}Q$iB}5jRg` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..53e2eaa86709a84fc2d908150b5cd3c00770c2f2 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=yF6VSLn>~)z3Ir;tRT>u_&9K< zxXPTSw=pSVb5eFGtz?s4wdlsb`(dArlr~geW&!E|fg9>eQ_|AXpM9NIX(u(IIF3is zDWht=>G|q>_fNa@8#;8_3eSbMi%yLGq$ilXWm9T){TiG7+V3w}JA~$5*`w#aU|XyE zIcA7i3=BUwt8YE|nJK^XD%X1JBiFwDDCFLd*WdkJta8V0w3_kGE# kZ{p<#mM>;xVA%JGDcG`qZTe}qSs-IPUHx3vIVCg!09xN-4gdfE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..c3aadd5b864467c0da176f4c5980ba9227b6b139 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=n><|{Ln>~)y=lnTY{0`Ba3pZ2 zc+6q#c*D&#Q;NFx*LmK%{=(hm?yQF0vAw51xw*tn zTbfqI-1qG5cdloZeqRgHPjiEeWw;Zut@q=+f3p|mNI$;JuW~)z2zv_V!*?CL8mMr zsPKiRQx{W9ihg!NqxZ>bzF+Dm4G#AM75}?fecpUe^2$FyPBXf=$Q%!>{$p%>nr(vp z((r`a+caz$lY4dve^|y`QOWwPcD?k0%6S{ttzPd4)XBi0^>Xj?H~UXbU*4o4>5%&zX|9kLDUfEs*Wayx7Z-TFUxeIrP}r>mdK II;Vst0FD$=T>t<8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc3d21aaea5fe0acc3fd6562cf8d7f559dc995f GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJNKY5Xkch)?uLSZk7;-RQc=l#N zX_do?00YIl=QS0)e_d8jFlps6Fy6fI%#-eNyQd!t85myV<^EOCvKXxx53A>cRA5(ZCKKbLh*2~7ZLZZ^&U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..bd8a0e7cadf9bb25e919d5ca86b2861aa2dd4e50 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Rh}-6Ar-gY-aN>AL_vW0fX38| z8e0xdKUZTa!=$Nb%o>sK_WX5LphAWNbM947N=d!<&iwvr=ICti&sl4Keqmj6rur%C znsc|~95kO^th~)Fk!)kd4^qzXfWtWZQ|+ne@mrPNPf(e^ui>WX&lyZ<;ZKseHYhP4 ZxL>!b+TyLeuWtuPv8St_%Q~loCIGl4L`?ty literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b000ed7ec76c89089357151e26eae106552db05a GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=EuJopAr-gY-aN>8L_vh*!h};f zA-6wdrN2w$o}i<5vgP|ZuEQVli)DaH85nB5-b;_VXZd{Tndh$@*P5Oz{cZ iB=YqSFmW@i|G>B}$l~q9y9pCP8a!S7T-G@yGywqEj7rG> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..93bee36bd5e1ed84d8f187d7810684f88fcadedb GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU@Y=GKxFxmyau)viP{cI%Nk#%2JddWTM`^Kqd?Ed>Yra+va-N??+G$z&e-X*W%3FL z0zs{e;KuaqDf9RISe7}DZ()qmOUrj>W>n2SoA&dcQj(#Y@#a9+vuBce%&rSK*N5(1 zasB(=m8-ti))&TxroWvZYGS@7{nvf&2Z0g#wGYnh{VRV}R4_Pnce(BIyouH>vDZB` zAC_1>EU;i;2=ZcRSoiwD9PMc}9~d1jn{X)JsbM2psz9voH7db}mPkHM!9|@3~{-=ly%G zzC4hFarITM(%9s^apLcV8j9BignDZ#rhmK{&-gs%VyWz^Ray)Os`HhSe*e9f)bng_ zd`)=8d);Fh#~)vGd2(m-s#Qs+eseyZvSt1Hw`IGh-~aly%sR_V2@DoR@87H=_d4d( S)y=?2VDNPHb6Mw<&;$VS_P);m literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..384286f395c70204c846a203f3a8fbc6b42e8ec2 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJd`}n0kch)?FK*;KV8FxT@c3`| z2D1xxueLNF__~~1Q)rQd^@I=X?^^zC^iot>q+d|JX3l-50i?;o74ILdX!p$V5!@B+) SH{1!dn!(f6&t;ucLK6T@MM8)G literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0017dde5c0f6f33561873c99b33dee00654588 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>(`OLn>~)y=lnRY{1a^F#RLP zqX$|Q9QhC4y*p`?Qht8cNoNkeNSPzb94|v&2CP`ByY@r<;#1C#e|Q6RgMo~gQ^)^5 zcZ{c(v+w!NrRb7;=CF9txuXJ3U+(=+c|Y@su=2HAJ91}tExKTHKI?YbesiAYX{mwN zOHZ!Z(@g;%P{A}^4A}q=CBv6K7MXzyL?7Z1AWeeq)85*3|1-bO{+wr`c P1v1am)z4*}Q$iB}N6mEB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..c7b68db12c098154e05bd5a973e98cb47c35cf74 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=n><|{Ln>~)y}6gS*+8J};rTNU zy2LtT?`)PU-oU85WB)U)vVvV2T|%rZt+Mx)f0^%>zWbL7P#*{!=$#q4vnclM*RuD_ zmgzGiXFmV=xGgoZYv$BB#iHV6+wOhHoxFSX`|6#$mt|I+Tl-qe(@V28D(>yfs>AD> zj~9mY1m51}IjJp?V{6_0Yp+-#h63GJ8s**7|KgiYmad^)QhC9RsHB=o<~V6bCT<3X ae+QYBZ*|NTvN@&-Qt#>N=d#Wzp$P!-MP4HS literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..fff2774616a9c91419c3bde4e1eadec718e56d4a GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=2RvOILn>~)y|qxV#XzLxA*(;< ziWlL`QjW|k8^vBI%~eQR*!DsrEkk*^MX7qjZsYIuR>r&YKgB390yQ%<)CbSClyTBH zXZdu_*7v)YWlmCgI!D#>^rj4% nx>x1<`nux71{?N)G&OX~F-^4fD%_~04dQyb`njxgN@xNAzrhtY{cp$rTUyj6~trCHyeIA!n+a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..e1975815e251fc1bbb7d30dea839dc03447f900c GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=vpiiKLn>~)y{X96;vmuX@P2B4 z!X~bJN1e~{z9|+zn6;^*>86^rOhjVyq0a}VaK`_5EzJnj#=sCWHApM{zvc6y_Pw*N z+aE7Fr@A!cTdn=Qx!=y2{I@$`z;kh1Zq98nLBZPl=H)k;!Fm|xEf4F=4&C|e?-S*k z>yI*LEqc8x;`-N1#}<3P-lU_d)K_J5zPRV{3OQy5`=1O4i$m91hui@ywFFJekHLK$i z@3($he)r_;b#gZ6jf>7*tnTmV2=a=mWUzk93f9vQ`u3W{|3^Q*AIj_fIJG35K`Mgb Z0cV`2c(kkbJb6Bl8c$b0mvv4FO#sb!MRNcE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa4884328ab19043642ca1f0e503fdb1f1ef6ae GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU=;LpaSW-r_4bx+U$cQgTcY)? zW2WvN+`3!&pFBR(_{R8#?(-Q%+fI2!stVP2I_&Z9Jks;G(Km4pGtdY>cbA;(-rF

I+?MuDrf!!PS?Rxm;@2~xOO|0BEL_maR99Vg96L{{7U+! z$BcdI&PM3hn{3l+P@Z>So$Tc|3|VXI(?1y=b8b~o5=$=W|IeDWcJuqck(X9nd$ns_ z@%P_%zt+C*7jp1Axq6lFOKm2X#SkDnOpJ4V%O9qQJv?;LiSU ztvi^@7uG~Cjp_6dP)uFsR#$W9;cF%ah98SpZ7TkI@n`7Nd)1SCM13dSs}9S3bWT3m z=c;tF&e{5qFE3Nyo|?aRjc)FaU4Q*gvIC6=f*l5N{250L=vk8dF{F}#}vG(cI p1(&TJY;Cu!WH?yB0#xMllkq+Of|HDr?<_%jJYD@<);T3K0RV`YOoRXc literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a23ec3c930ae8813fd794d326df273eb40af63 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=)}AhoAr-gY-rC5?;K0MY@y-4% zn-7TJXJML{)hxb43#j7Wq?Drlf8~KJ5U|KdZcyj~v3^{c{6qZZmOX0hAfBhIpUXO@ GgeCwHydrl1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3249fe200ecac710326e347ab03309b1841a73 GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzB~KT}kch)?Pi^F7VBlb0@b7;~ o?ZKlv4)`!JaOYP4WMrr?En;K;`JFdL3#gjG)78&qol`;+0QVUg&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..987cbdb7334c39337a5cc5fb0557e80c00fa748f GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=CY~;iAr-gY-ZbQ8VBlae{4={w z$H2hh(z)jkRsp3M7!q_m^~%9428Nm^a?A_|y4a$-#9!*f9$f B8^-_u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..64b70260c7c87a60f58579efa3d62112267a6895 GIT binary patch literal 482 zcmV<80UiE{P)0-o)0<4*&oF008irejY@A)EKw$@MFfh`}9>kssKx!08cS?O#8kaz4zptQ)?|% zRrT_m?k~>fy7H!JN+O~~QIPk3{sOc`I3AA_MG?huyvkosT?KA0Q4D$b!3D^&%rLXY zactgg1q4B0m|5E~zRh>+-S>n2+%vJ(3c$Sp00013MV{xn)tqK*@}KAQYZM-L0{|xb Y0%PtOV07*qoM6N<$g7Hb>3;+NC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9a49ad2d09c9fe6fb2d29b970e65d387d35defdd GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ7*7|+kch)?FJ0t3V8Fo=z$|;R zcaHYDGV2`&zOKH%aY7K&_kH}LSAASu{1_VIpH27J6fMHwxs82?)xt9-<=ZWvZz>3l yOnYbVy!_|vJIQb4l$4GI@~`9V=;-+Kj?G6#PyCD5s$D>P7(8A5T-G@yGywo3KQ_St literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..afdd7622c7a4bb19912940211bca85fe23e21d3a GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC={hlt4Ar-gY-aO5D*g$~wfanhX z>CbLmIk|0-*OXv|=`P3SOFW*rxq{>EqSM_#-N9Fw&-j0qRrfbiyjGcP?rnJGVThlUS=dy$Kf2i1=9nqK9 vzkIjtfs1cH>ROw<{W$r5gK2caFNO`LxFc*5O8X)=fYo}s`njxgN@xNA194TR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..a390285775988e591ab3472320f1fddb4f8452d6 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=lRRA~)z3I)xtjNO<(7LnT z{d3MemGF-$mqQow{Eb)^ka{n=t8oU4xhE%3JwwCm6UUqH{f_fGxpwQ{(15k3_uv2h z&6xiAZXdhgL_6Dc-}kv65s|f-{r>WT@~bs#Ug;$7iP~5EpHVq9)EA_mp@Ee*w<7Ge yM18XK&Mmi&{dg`sVG{3~t^XS)YF?;ih&abPB_XDCX1uQpNU^7@pUXO@geCy2_EA0n literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/backaccent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/backaccent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..e6776137d5ea6f0b9da1fc4427e99bb506ef508c GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Rh}-6Ar-gY-ZbPpqQJxAFy;S_ zr%P)(rcGm4E!}lzqBUpbvW3pyvaF{wF)-ZDTswDly^OWKyx?g?8Ef+e*PhyJp>CrizTOJb(S?pIOBSG>W02 ZM6dUY^4Vp}Sn@z>Jzf1=);T3K0RZJ6K&t=% literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..7351de7e21683c66f6e9cb96bd2c668b46ca91dc GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=8$DedLn>~)y>+njuz>)>0pA^Z zIRUzQhqvDFH+|3*(|ur_1FMFK;P90N@lt2Els&<#u zzJJ^x6M&!~H*(rH`Q*Q!YaG^^7M**$O|*8)%Kn{=i4ym2t%|$8RdzFn;PLf;2_fU@bIP~(};Lyo4KQFh3NHx5UiR|CM dOpf`(IcEE#_QzjNc6S2Fc)I$ztaD0e0swc+ERFyG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..363fceada4ee1b0d82e6a2c0432d01b6ff19bac0 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=L7py-Ar-gY-rUH0z<`H&L(O~h zKb_}4y|{N_p~Iv}i`5vVwu%9j0fD`^;Age{oAT5ALVe5qLw(cEom)Kjnm9!A#+A(e fkLorX816h~e9&Zn+&`+l4J6~~>gTe~DWM4f$L%k^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..fc98cadb90830f47194cbf49acc3cfb80fafdafc GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyDKJY5_^DsH{KwNQ{jL4f(-`~8Qf ze0mjF!J<(neZuEUC?ik}gN%pKU0cs%(jYbvd}zPRz31LV6$XX_qTG?2C7(~bcUux9 N;pyt{ZVB*Fjy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f70ea45de95dc8f13ee30c417112445e584ef1cc GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz4Nn)xkch)?FBtMN81OJ}_>?Z8 vu{TIyx7tks8)k+B>nD|z&t782P*IpRnd|?;&$GLMdKf%i{an^LB{Ts5c_JK- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..a95ce7137409b5715cf8b6d5104350d338fb5ea1 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=CY~;iAr-gY-ZbQ8VBlae{3HEO y(8j>=5|;&YI4e*d2y#?kp0gTe~DWM4fmBbhc literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..83664d14867f16db2189b74a02cb3474616e61af GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=#-1*YAr-gY-gFdXVBk1x@MpH1 x+_$FPE)KjUAXPw+p?dPE9E8arzwgTe~DWM4f;0+o; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..8060fdd544b8d548f8505237e634f79d217bb13a GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=mYyz-Ar-gY-aN?5z`(&|_$^*4 z{6lt*yTVR!PM~ykZZ@k5gAkAf1P}Q21%)Pnc{`FBl0S*R3_osl2qfd_>gTe~DWM4f Dy(}CA literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f09673433cac6f78f366d922e53ced756d5ae2e1 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz6;Bt(kch)?FFFb`FmN;&{GNV{ q&u*_S(;0>Xfm6A}A{H<)=>v)9Yz2E literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9be9ecbf60b76eeccf740238ef89ece0884854ed GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Hl8kyAr-gY-gM+;VBlch_|x3B zu0ml8mspX#5Kx+dAtE<>J=2@ehP_}OgZ$5Z8V-zH1*{Af`3!X(%6AvcO}Gh?@^tlc JS?83{1OP?j9-06E literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..7b84f544dac539015812748cf57d59f8f9cbedc2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=rk*a2Ar-gY-ZErlFyJ}7;nQxV+7C6$_970tE-VLDYeB%!vp2L(^Qm7lOE+u6{1-oD!M<6#gFH literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb2a361c0117efbafb47b91e09d010ebfabf399 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzRZkbkkch)?FBtMNFmNy%{P{hn rFR`h8$Fu*d1f&&JXp%AHkW-hXQ#LlPy>UftDnm{r-UW|DSR3G literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..c8461c2d9259aeeb1829fc65e09c1a8d0c63b5ab GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=7M?DSAr-gY-gFdXFyJ}7;nQDqvvvuqJo%m+Nw1HUq=#9mg0L3Z61pJr?_4{660aB<$(x=d#Wz Gp$P!8vmze= literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..226a8167749e4de97c5ea98815c396d55a102a51 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=rk*a2Ar-gY-gFdXFyJ}7;nQ`((HN+N;lOm2+hzBoZu@T9{$E`dBmx0H`q^jY3Qd&ZT^k1y@O1Ta JS?83{1OVtbBy9iy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3624500d0220efb67cba542a452451989d5e45 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz9Zwg>kch)?Pa5(v81S%c{NVm^ yg_C+~fa}|g{_;?uyvoe!|6R+^FJnG%mNAi;=isL^dt89}7(8A5T-G@yGywn~PagUJ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6c4e7861067835264ff4c10e3ffcd1adfc41fa GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=mYyz-Ar-gY-aN<&lwfxJt#9yl zj%i1M!WotG-H*I-1POY&`njxgN@xNA DUcw)h literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..104a6b2a06415a570cbd4bd21e6aa84ccdb49a24 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=rk*a2Ar-gY-c)2{VBlbO{KXz4 zd!nJ$`e#;MC{P**K15HtS5gg>1%Y)R4los*X4sS{%HFARiUTC%>FVdQ&MBb@0IG5w ANdN!< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..12b2750942b2df7fc4a26c746da01ef9c63d0253 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=NuDl_Ar-gY-gFc^puod&U;%^R z3@4T%fksW21q(_qWd2UNbvIva`X7BJpyCJVm#!A{6h4`gyjFDUwG#6$Z|~)OX9P-s x582xzcv z31#71#m#EVE?%TRY4*>&TX~nR0aZ5af0_RqJumbPEa*Iz;k*Q3Ap-o3kfz4w3|IdbI4kt0Wr|0xQ8QE0<3=yF@V zUQb^aP1C4h7<5?x)~0D1O%c#|A z0DxYv$M1=4qtOW0*VlzKlvh<1mSq6|K0ZEhbaaH_aENlb3;+T-W{9j}QXabx|&t z;W!R@y&hCmMVv+HH-1%B0RY3{FmP2>mGhgX8JhoB50E4Yh|jxi>Pvcs%~5AVag+O%ODl>3(=>T|wOWO3+pz+o zt+>L70@$|A1xOog0K|oO-GGF_cGNj3x}#`>EFkh%t5tqAO*4_{7CIndK@t0i?P>F~ zV65Bi@{bsVMSW(hDZoNb*L7i87T=n(fFwyEgrM1MVt02J&1MsXkl4G<)+WMaHSbq} z?L4b?pv(-A$t&m&#;@1wg-r)xD=C52#S3YU{!ej8<_7qyNX!69guY?${{9}RJ<&M8 zbzR)w-+x>6UDw6q<6|bS&%)qRsT2r>Q}=+oyE_U1jYflSfuc~2MkCNKX^8x)ss{K~ zRgKNR9hRICh;e}Un+eDIUtV4ol2l&gUxzsSp$tGN#pmZI4i69U_V&ix*mXXi2kx_b zNr6&|hld9Mz{$zUT7LF=oFhk$96562$dMy0tV)spRe2)44nIFXQ_u7G+5CTP2*%Hj z#68cWQIoP;QIwxfr?|bn4ZM!lYPHM_!T4Cln#po|dyDCGnpkG~n*lUUlV zeiP+IKJlpB^E|3)S|l%sd?F-C5`5o>Wm&vtU|p?1nqZu@S`C(E!T0@Gr&6H}FdPnX ze0+?TmlrsWgKD+9wpJhuFit`Us?{nS$HB|X3yzPEdCEL-4;T)In9XLGOeUG9#eRZm znwU%`n9XL9l#gtH#bN=+aj>_y2jJi1XjUtb6$l}G3NRV=_V(a74i<|=dIkW1R;v{_ zkOYFY0$E|1vs5af)oMk4PUutNot+)*?(Xt!P?lvpJv~8|<&D!*Q6cg%8AQ3FWQt?u z1!P(NHU|M@lA>lD%WKfGOsN_`RCJv{X)k)~Pu%M4NIaDa%^&0tc}JrW z0N~={B668dq|8vgUN0DiK`$;Y_`*?d;U9s14*X1=Vfz38002ovPDHLkV1mEslxY9} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..4cec655e6476c73b5f8d665c4493ad6e5e230a13 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=lRRA~)y=BOESb>K%VDj&H z!FLSe1`y8^?-|*(O>AP>mc}LY!euqj4u8zH~77{v3((}@p6|4T)JEra0 lJ$I(vH+J{aj0^|D^CC{F%Dk8$dIV@TgQu&X%Q~loCIHe8G8g~= literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..a4fcf07fb91b3970e5bf5d0dc176108b5fcb7888 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=v7RoDAr-gY-rUH0KtX`T(dEBx z5X=1omRn_#QY16ge&#g$uQvs%V_--Kopk5@{VM<3@(rt^CWTzxc5hB`^n2mtofXCFL0us>`=c^?j7~+`8QD vd%*GxA42a+J+}UQHfZ~?3T|EgTe~DWM4fKb|zn literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a42baf390d4cd342d3cb08a455f58e70ddcaa4aa GIT binary patch literal 378 zcmV-=0fqjFP)vtNF_*yG*)k`31~!i#OxM3 zAB4c0mw7+`A7&ttNc=Ig*bl6=qLdod+qPx5+s!5wP?n`=t!dj9fWGfpE|&l(rD&Rl z{eB;{=U2?|JkN(=eculvf+KmJQo%;BvW)YTo;&^+_G5 zstWJ@VEwN-5HQBPbmij$oOALRMR;EIebj;L^-5jW0K+>_*EQ$!Iog4FO!IcT<#xMq zI-N!$*6THk#e$}3rimb&|5=t{j2Vt!r4+^(vMjsno8&UG*52i-lo}0u=SEB<5{duK YH!`ZEb#7Hy!T16(bDS#a4vHK_0Od%I0ua?HE@BKCh|Ch{MeC)D6?M$Xl6$; zPf#pCL_|bHL_|bHM02RBwr#7AKA)R+|5@9%Iydh#t6Ycw&HB=LUwO$9(sdo0rh&B< zs;b5qlQ!CQ-RwLO(cNxm#)qDhxA+7!O#|;e0N{8$Lf?$n=jJ^c`>A=0J^&HXx~@%n zzu)hNwcG6m0I2KQh=@KT?>i<(h=^zi0oGcC5a65})=sAr03eO>Gx8R{0^`kWw_5-} zj1e)$S)0wBxA+4X>-&D#Xy5mLE^o0buwJimKA%6VZ8jTRE|XhEF$O*V_hsW2!dq1f?UX}Rmr}j9t#lZU(c}jb1O1%R2li+Ma$zC#8AtQYdP z1fBYlXTiQM<7F+AMYsjy-z7e*&leO5?FkKiIi>bX?y|hPb2VJkO-uh}XKYxPZSh<|smemer+(tDb(44h zl~})3Y}Kk`GxVO7f8iuZ|YSs5a-AMSMz6yZ=*DShqzNOtehf6<|TiaY(5PxjRPTHHMy=4}o3ouxg? zZ|L0oGw0`<&JH^{{BEj@7Z%=^#~CjTP+vJxVW2=zL-SgKe{z&xt#tPpyG5#o+1c=d#Wzp$P!A C6Vjak literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..33ff060a92d5dd47d1eba259b065a315528cda4d GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydu{YLn>~)y|s~-*^s04q4M1F zRGG5EvodlmpO$tDo$M6R-lzSkUiawcg)NVP>LI{bP|^QqIt&hHdl8zozpm8Jixv@T%}gp^ltK&8^Gvjkg&X4$QK4S(P_? St4pK-$PiCgKbLh*2~7ZrMOgI! literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..d25487ab7cb4b302a7e2a5c7bb6f69659862a72d GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=cRgJkLn>~)y|uUSumMk7;-Tkl z+8OM*ZG{`Sv(GG;v^UJ5v&1gGPfN$WYtA13)7G_*eE^f(6N~^To{bE9wUb8y0VyoP| z{{0cmr|Q=;!VF_Lz-D~<+O4$ycjhiG+pd*;Wqbdg<@>$j*z22gye)T|=B8PmFP^#V z<=Xdq_As0me!DmRkx0&7$paIQzt1v#uw^^r{p;Jv+E%?6Ylqt)Hnfn+P{@KWo S{mtP5$O=zaKbLh*2~7ZV%5}g1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_bottom-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_bottom-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..c066a49092563d1ae2953b2e6b03679f1b89d1e0 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=1)eUBAr-gY-df0eIDp6X;+y`x z6P|xikl(jSBWQ7xm#4$Ig>2#yw{C;9073jJEzcq|?@6mpUH!ZDT4wUv(#rblcdOT| zx^#DEv7rBVMu@VC*7)*Y>UVxg7nm4Z-h1^v&Z#^-?GGD6{cnaanV_HL_e2hW6neV) KxvX~)y|uUZumMk7;>QVY z+7;~i#|n3JXPtczv^PBA=Thz<4aP@Db~3-Kjbi%s<@&^>Kz(3fASyU%Nu=*2C8zY~ z>Ca4*jrpJcm$~Wj{;!yr;H$l_XY+qN`DeP`fxBnV$Oa`wO_x~ zzzktv_+hW)w03KI?XUY2W@fFGoyEUnkFd?L3;W)u-rn}z`MT-G@yGywp-6S}>0K+g0!!QiPFbu;m4D-8~e5&DTnv(gv+wBJT}U+Hn9OGK2WX?GA&XNQw1AcTNY z3R-I@r67cG7WTgHqiGr>NrKsIh9pVQG!1;;cfSVYdH%NfueH88zhx1OqUdeANS^12 zqG3nIetcmx2fR;#=E=kuBW-ZBis zFbu;m48t%C!!XQ9Jdzs!L|c311*DYpQ$BF4YK^{~`$%`wMkl-(;tL5k=5t<;GH(bv zRb*Ct&R5zopr03&%wegFUf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..b654f960f47388ffee66493613dab2b945bae221 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=%ROBjLn>~)y}6P1umO+D#mUm| z4je14VEKOMKyfBt{{zcA1-#4snpg@J90~XkugS>nsIYo6P#**|1ZS;1KJ#<@^Swb) zEo)v^^*mmYdwbryWto@uy`S}bXUx>^=PoFz7^kLnaqQf!a`LXIppkLvv!#{s^Bay| zEcw3MUGH?zx^v7h;~1>2uCjf%DLMP59KUUy!|883{v77IAjkaU3h#zTF~$9dxfwx9 NJzf1=);T3K0RTA!TK@n5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..92749caa932df2e735b635a1e84df141a4dba394 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydl>XLn>~)y}42Fu!4ZgMORMS zm_=3^jdS=`bOR}?DHqygZih9v^Bwr7ZzJ(cqAx=gs0#xA>UZm~(Gq-O0>ZJFv_o|mpNlBZeVjS${d9V8Gz2#MZt^e+tIMHbH za_6FRdC&AWIPHg-$S~tpR_Di#hi7uO9;vuuwySXKksq&xKUlp|*}zbDkh!Zfrg)ES Q{wI)fPgg&ebxsLQ0HtYQDF6Tf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..693cfd5087cf62cab22bed2229a5b3b5d403934b GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=_MR?|Ar-gY-ZB(qFyLX{`004M zo?I~B&b+A#KWzS40#$hDs-LW}c9@iDy$;9&gYz#0zi@z9Yhuf{$<}^-;l~T&dAj?Mkch)?FFNuv81OJ}{B&Gg zud>WwnXg&X^W0#GM|r>mdKI;Vst01p`) ALjV8( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..72e6a885cb0279994935833cbf5ee879db81ed9a GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=W}YsNAr-gY-gM*zO0XFIk-n$? z{NW+yNnr;hW@rHwFfd3=Tw?wm%wk~JaX^=ip&_5&KaYE@>$GP+AYo5eKbLh*2~7a! Cb{)(B literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f8ae4f79a3acc29a42fb6254aa5b741bea732f GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=#-1*YAr-gY-ZT_sVBk1n@JITe zAWuSra^Qu%p+IQ{h7Deqsu;m62D_pJMurDV7!Ch$uQk5ZI{_r>>FVdQ&MBb@0B)@u Aw*UYD literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0ee90b946bb46b716addc5add6d78fe192477c GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU^Mr1aSW-r_4d}@-WCG^)(6|w zy%sQXvx_*gE|bVw$d>*@Z3!P!l9GBEb56>Z^6lG&(#6Co;*ZTgW-Ot1_$aWZI}E~>jGVa#~IfM><3S7l3>RJ`-11vzPc)y-u1ymMRb`MY}OcD@vS zey3#1oPF#5@kN9%tTo;9-G6=M`-NNW${AY(HeCCs)%0ENS`>#OUwFfl{rvx~a!#*c zkI0Ufi(katH>V_o{Y&ls7dC=$aM4pDdD-#%PuzRvAJKEtG(FE{!{@ul`lCSg^_eXj zm=B8G{a}1=o$Q3?mX}QK<}!CJ>iFk+oRL#Z;nL>DPTiJ;J^e2mbh|gCty#g861nZS zPr@6iu$K)Nx*l8XvwbL#yq2-|1^>czug&g%U6%Pn($575M4t2g-oESE+RF-ifFa4? M>FVdQ&MBb@0ODGh)c^nh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc2d4dc2cf982f5761ba5ff77882a7acbda10c2 GIT binary patch literal 295 zcmV+?0oeYDP)~)z3Ir+Y#`A3@Wz*A z^R&$i=I8R6D12mk?6q-{-m1xyPW*3NpeL7@7db?FY*R`k1u%1K`dlg5FVCm z^0r`oQqNH{tLJ|%i+`v)Re0lFzwXz^{SB_wcfK;{+jBUxh+HYw;ivSP5map bP;j1W@Ae0Wrv$!B1)1aN>gTe~DWM4fWd?lm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e5ec47d6c2cbd4957ed6e28c33bc79bd8f5048 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=KRjI=Ln>~)z3Ir;WFXM`aOKx! zb5@%t@Sm2;5OUHt$eYq}QHy2r%75{XoD80P-FoC`2T&6T2nZS)SMQk?v?=}i-Y34A zH`QP7C{J1)KjV4j*4t&KJk6Eoe$V(BdvCh>g7?3#9@?9KL-+l)GgreCW-Yt=J*exo z(6=XR#RQULgADX^^>bP0l+XkKfG&wN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoes-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoes-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..9e95afa55630eeaa8e77de2a547167194b05135a GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU{v&UaSW-r_4d}@wao?+tq&(_ zEK2FuacFM;z_!vzbgDXsbHGLh;T_40muj{fomwxVvtZ}@%MH0pKHpT3ie>_u0|6i8 zWv1E4I2m~EiqUIVP0sd|TyJ^*SAAiO)Vsam90!A}?^eIR-*q$T)4giT=U-;LpA($- z@8$ImA_|`8EK6g*U-3J-^!fEaLUEt>pFH_Llktp?q1)W^>AZ&xzAt@k;_Lr7GeCA?;uPvUoEnoX$Tdt_nhTnhJz5crE zw3CT%vTNX;s}mp3h(2P`SIl^?TGVynvdo}BKcn9+KOvtL-5?7+UHx3vIVCg!0F&pOPXGV_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoesdark-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoesdark-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..d24fb9e4e7d2581bd32be9a39b2c054bd003994b GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV3hE5aSW-r_4bzHx)uYG)`!NE z15GPpCQF$G9Ok>hlkK?p2A}kS1=$~NR6bg|#K+0Vz%G=?rpnsXJS>;YM#mT#{XhW>L~X6Y?Ghp{7=;imJS$)7w~U%PpQ23KTuXz0{snUl7LJ+{azzE|ye z>)G_woh9G97u~q`a7?JiD|dJ2y^~iL7_1Qq%u?k6WTG(Y$Q>u63q;i)SsnXyQ9* d%WnOGYy1bin{uiexvfE#c)I$ztaD0e0s!qjlb!$o literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/soles-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/soles-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..8e08e9402d3f16c06884d387ef16a96030060fd2 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jh-%!Ar-gY-a5$1tSG>G;bzgc z#%Hr%R?SMk|L)!1@U*bdy=OlB bX@4NhUlN#S`5aVSOYU=qcv*T@FzVV&A@6Rt_NnSZRlagtJ4C1bAuFly85}Sb4q9e0Fh)f)c^nh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..a60a89348c89abbdc10170fbe852178baf98f05d GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=iJmTwAr-gY-c;l}puoc#aOm&( zj@OE-X3U-uA-1V=)Ath3x|8L(yg-!<41O~$k4qREKhOUh7Fnm7UvDHLxHRf_)xEjW xU}**h^Hs4u_P<+Xzr9$^zdE+Zl!4*FBZkoJj#slcubm1~vd$@?2>_O@H9`OY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..cb628a3e595203f3966096a7bc8a4e66ddd86c94 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=R-P`7Ar-gY-g4w+FyLX{_$ghQ zMY1jPlHFFtJHOL_3K;aZSaIB=BdM;iNiyLZWFfEpM)UHx3vIVCg!07(fPNB{r; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..3c740668758b63d57d80438a5f90a1ccc6f2f56e GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=7M?DSAr-gY-gFdXFyJ}7;ZwRa zi)8!T&G$SRd=3}`6#xPMEi=#hw~P?ZhKbcY3y literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..88e26c3ac1de37217296879eddce3208a921858a GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=rk*a2Ar-gY-ZT_sFyLX{_#r); zG(!gg1HL_J;oT-G@yGywpv CWgQa$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8940060319e94063cb8322142bedd55ecc5521 GIT binary patch literal 1658 zcmV-=28H>FP)pd}qFU?##)|xd~N{ngFPB)C544qb2~V95n$@<+vdQ z7&(qyep$x>)VcI!CBV@)kV`fd5{g0T-+-6iaWfzv(~l1UB4?= z>+s7zdJlNe1!-gC}`Umo|uRW^R)z974s&=NES`1{eOa0?2pQw*X9E)#TUyDQw5Vvz+yG&Axgd z0*A&>cLc~~PioS0hk<=tbh}Gg z-x#(#nnI4x@%c(1{Dkn!~HTQOC{`}|4!8#IT5JH^l1s>b)m&y7ZHTVKNp`nAIzFvKAmfOHe0J_%j8U4Fq zy?zUEg8ahCw=P$fx!PhS!0oI3prhG{3HbJ@p7vrRTm?Gr! zmx2p_AOQw4&ttkSiI$cYOiWC8W$8>>{q6SZlB$l7dZ`Nw{|$LA5GHB@pvqAb09B5f0H|`*1aNssPKGNv^$8P|*kdI?|3k=e zFF^JK|8F6LU-l;Fr;y`r(VnvroC|R9iB912PgOkL<4l|MX>S!W`I2PtiLl$n7IO#9)<=1IXG})CgYdWhUR%K!bXe!tmgm@{^aBO*jmm4 zO63Yfh0U9RsVV(iY`Ag)=={dMufPI$2ap%xZ9g*s;rkPQ!bF^d7f=Lx06md|mn4df z7Yh$h%fZS6*fEc!ml6=J6D&)juoygHCBUkbA{Yi{pHw#&{QY^!706~0Ie0iCISO*m zonhLQ0`!kQl7#_zF35p#{yvhp(7u}z> zF(kH0(XsLX4p2lOBsHdzvpHArI8JgCgg??;VF4$d`tN{k>vZO(Bum8k50ShG@q+bV z0zb_u+a~S%vKBz{^|tK-{&-z~d$z$x7?5~?b5Y`MU}#d?X4{X`BeCJ3@E7t3qPs{u>q$X<|e%Fh4M{TG`N1JbgDPoCJ`}&A4&{%RvV3nwIPA0deOD z7K52D;0k8}P)7`s#YPZUXeAnzvl59r1=)ls zb(bh5VncBvQ5=n2bA`s`iW9}c5WxPikZu9H1jvR``*j^-@M&@ z(}{nU0WbgtKpWt22j0j~IDY>KZ0sTtD}XR3vsO`@^12Yp0JQkhDsWffW-^562<4fy zAd~^fV zDL@l~ec`oRpm#B7xlnCW-&_koR{a>bIsj6G{Q0SYwxtYEIfX}mfn~Furo-meKI=@C z)n(u%S7LYtr26X`kk4T(1C$xe0)w&qTp`c%_Eb)1Nj-qm(2sGX)5&H?;>kE zc&KXms{>H`hbMsLIc`oPnPN2gX!x+t@Apsm>zs%Lz@P7)91~}PY#Q5P)Xw6O1H>T% eU;qq&0r&y18HBtCvE%vx0000 z$r5OIun82ZnChltj0p*S(7KR-id_;-FomcOje;g%YQcm^n>H14y-c{7a$CI&cPQc}VVarf?BeqOKqB?&-fv9HC_?N7d^9Tz^JgoFh3 z9(sTl!^6Y;+|2xpAtm(4ANuk)+H_%)T8`G&rXnBD;d#CCmn2~8=UZvv8-;!x`GKxx zT_IXYx60DN~jIXTok+)S=| z7v)#w)7aP;-vbHK17JMLaUb7iQehGmNq^tEFTe-hFw zyp_lMfdci24lt5i`rlq4@GjTBvlRRifa%P0`n(6D@xA#n-rsvhV7J?Co>R@Eg~iZ} zwhZbW?d5W3rIVy*c-8@n-tz~;E5UpB?on!LDqj~j7Qaw#HKe6GIyyKXA0JO6BO{#m z)id1oaf3ostW3gM8AJj%_$5CL11EwnH0BdQsx<~)oS9E>Zct7BJa&~sP?t^B#U zIW9vQ5fNcpzNsFtW91GSPzHEz-t+bzC1qs_1rscPQX_w@dHIG2=(qLLnejS$-*b2a z<>R(-vJzIvH`N1f&)=pg+mx!*!}*64xx(BxXa?<1+iBW1t;)au^gho{X7I}G2>sVo zYjz4YM1YLI+EG`^km)vLht& zYiepZZ?oCd6olYBe*Cy$`ML;zaM=+;iuHe2R~Od&Y;;yu7XKV+u&gBblYjW|;eh1p zBA}J+*1AL2{C8M(R$@VC=ybQjhPtd#%C%>v7f zFaZ?e2opddjxYff;s_I9=A|1qZt%K%_wL=6FM{+S5Pb|00Ec7I#Ugs}-~lBjCjRe4 zhH(-2E#RJUQ(8srqWi(>0p37w?5%WjWQx&7FhoE} zT?skMogA5U^X5%1^A#{*CA@<&1gC#G&2dAbqh1&u17N%_NWesE;9haR@D-Gy)lC{k zFLV=-YtN-!yLQp}^XEB_y}4`GuJL}H009$3tz;!6C_{j~LFgiSA(RgTVQZN_J#-Ur z^5jYN+B;-UB1VEa26zW%NP~a~t*%SK&?it`T}?-h98nDhJgYzoCR)Z@s3qh1XIN2D z!Kn}e9gRRY0iJGUOHNK!z_56QaScZW09W4p%pV3>Np&kGO zAzTD$;{<{YIASC=LG(f1Xd@V&1>mFK81YXqBK-71LNHoiAPphC;ET78av-HkaakW9 zAU=5zP!L@}kN$eZu>w{GM)(360&xi&Uf;lZtPjlmhnU(AfJ^$Tho`7$Z4tc;fG*-L zH;RCEgqo+Cx%2qbfWh8Ac`QSr znAIeR@mTuGl3W`vU=*eZ(E8*7i3^aO8Y{7S^=eg?#0&stV-o%b#Y+ZrZRI+800000 LNkvXXu0mjfEG344 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4a2760e258c3f377cdeef33e364ab9efc894c7 GIT binary patch literal 532 zcmV+v0_**WP)2w3 zX9S_RBp@BdDT}LP7om1?a4NVciU=9}KrOdD2d-G#;YJd=+;_@7_tp0~CpSq5{#g=0 z0!RSQ0H$fOY&QF=KAld%FbpM7fL^c1X0sWEp<=NZtk-M0Mkw5`R4SezgaK^ZW`#ll z5CFqm*F8e0s!G?mkG@*1CJZ4AkVqt;-EM=f>$I-l)?w_9;aa_h=6jQBxQ{+B5&|&p z3|20eDS!(@5rT(vp%4A$n<+E}A%Nsn5*iN;$UJ4}{_{hK6X4?K0)6Ngl@LIG(x*|M z>#y4Ob4z|-0lFVurFv6kImp3cv7j1GflmOt=XI>1-&X(*QGycVYYf$lE;!E$+&@l! z_`riMdJ|%|sZLB9RCT1_M~F zR?z8msN;A%PW9bxN4`J+Mx&9E&*vF-di?QsI0o|X0`~<1aLJ$h4iJPSfCP{L65tDe WW69EMK5-iW0000mlji$9wODHmp}}$F22TK zVyO1mLqWJFi(VT;j`FF-riS(=68}uUpY*w1tojIypI^Y&NT9h#!C_nM_hF7NdAPPLT({koDj`RjXAhm&;bA zQc)Jdw*XxEOeVucZYywEu~?M%1t9_|pH8P~XJ<#A8~Y}KFQ22{(ac{+ zw7*w}zoP&=?()?lX(k7%|YTj{gy)BV>H@BhhEG_DvW9(kL-8iEcM0CPF;dDX?uHH3`>&3 zZEkK(a?=D!{^sX8K`9VAI5?24ig*A9fEWNd$}gH9`ib4$U0PaNvMVcqAPC+F=LnG2 z*4C8YsU!gAg45Ge`2!$A^YtK+NF-cN79U5Hq1)rSDwG7^Km+5;os9(${BU`Y06%zf zM9Z@naLEvWqeK;GeGG9(if)JQ=M^Jp@azu3VFS1uyoDl^1VH?4h_Kh3y(Z6jECMnd zMtmM1y!<@h;E0bSU4E?|F!|`v_4zX7JU(cO=Q|uycySMER~Ai!eW86J1=o6(R4us4N@B*OvgBo0}1xYyCoy{FlxP^czC~XuvTPfCd~x0cgN66hP-8-VX0&*QcN8 z#U3>QzAIVwT7bPC_@;$meqNh2P1BOAMPJVZurDAgUzj)&UtDGRDT=Qzz}Y4bRS2#) zuSByg_!=xsM9C1g`V~QWJpf-^-hH>GTmdU+5#)wv72i#nN;}0ol z7=puaa*~JypRl1YA#A$$F{K{;>DUH0z~Ty*~Q8RdMwPb(5^UZCV$0Y51z zy#gG(F4%07&eFV=0K6f|1_8~v0ztyd#W@MO$r-){K-vj{5bu&Wx*PWfgvVh-f@}wG z$%B_$9=2g}4lG3m6=V?r^aB1a2pec|&Q0Lf4>VVpA%hO2%3XPf%zO1@i7-EixFNU~ zq@Mgo^!k;(Wv>YJIe>ElKKO_xfBn~XMYUiPBQAp75T3jQnJ=&y@aM1tdrSH%rT(C| z0_8hbMfcZB&FyJL2&pQ_6R5td`u4m10^*YR#2KY$r^Foaf^?xJKs#UjCZQXHXbAw{ z+smGOzkn!^U7&7`qV^DA{|^H|p3mnk7601{z{M5z+Mxq&0XQ1;8W4sETzPLe-b;$E vmH^&8d4Tf*!k8CEM@L;Q&KUr7a}xdsP?M5u$|~;Veucq}uGPxkX~LD;{a?Z*F&Hxc_73Zg&s= ztQa5$hyjcNT-W8fTy7)I7(=VoN<<3K@Avs^Hj`$gR4Rq#aw*pYMfq~MYy_bV(CKt| zp-=z;klA9fP!QQ{R<0>eb@h5(8$uf(olc|M?V{Oi$~~<^)oL{rqdF7m0o*=t+rCn! z^bAc&iTih8&fpyawr$IL+}&t(K@Z^M6#32z+ykijx7%&i4Kl}(_%Qic)=|B#^Z-6T zfa5&yJy9WLF2oy`5^ONQs*dV+3PA0owu%k}L9me~a}^J!&~3jyz%N9LAckLZ*5N2Z zl|&rDzLB{Zz?z(qFnWCkF0NOBIm5Qn2Jk$OGd4lRI!Ebox?%oiW#Ic`D&&siL@)xO z(P*@SIm>}fpHQh(#4aOayEZK}t00000NkvXXu0mjfvO?!# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..6599aa9df8dec9d4ed410c55ca80c976548ad5aa GIT binary patch literal 1957 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 U3g;#6AOHXW07*qoM6N<$f|U8-egFUf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..51a9fdac333b1b89691bec4fd9cfea5aa4e8bdff GIT binary patch literal 1995 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..cdac28060734af268fd18e379027d1e540e6a4eb GIT binary patch literal 1709 zcmV;e22%NnP)Kbyeprt*891>b8Qv|LRo3<&`@}W==q;9~t7zK_O855mnw~@BQI7kmT%N8D`HayLQ=X5<@e{3zdQm@5 z!>5n(G+^{Ju0(IrQP0`oZ#x1ouloD@X=5(Ym!jL%b0xn)TBNUj{e)h8GUafA!xOTEXB2Dg?^L^?c*Q5u+S_c&_<9T_h5T zhT&_@e}g-6g_f6>jcI94w@4%+xG7-Hd+U3xpcDvgZ*PlUg-e71AO=8=@}t%VC$YA+ zMw641W@8N?2!c1lZv;p)Gc(F{DhYtKpi-%bKL8?F@4JcN;o&+bi;pYHFzj((6-okd zpn>@nmVyEVKV0r6zz<$r(eo?@TrvdUC{YDkA444RVc22#$zr$-Ufm%$Y%tyQp|?zDRCD=I8YWS9~1l@@tKN_ZJ`5eLh0fh0;S2mwN@1 zKVRpE3)JOT5&&)}78?_RhZUKR#*8)Ki6h~!m;72I;JesGWB!!|nHhFoBrox0#EeCl zAF+upPTh`>yzba3ZwDm-5bUJWX&N0JZ79b=l+9+zZGeA$eO>&|J5vCc=|E{m2-j#d z+R#`wip$;F5t8{KI5!&n=n!}U9e!H^pi&SsKq#xuBSLz{Q4y^C$3chRmH?ZZn{;q+ zKqDg~;(vhW9Nz=@zV3W%#m~G5zK-M9;k6~e{QP{M&ON8#CjY7P0#2hR0ChQf0#KKu zCjfOhdIIRY#K+;CoccJ4PV7+<;PvD$RdX-E+z&iyA()@{CU`1E_{mO>kFtITYD-5H=K8(*%sIq4;Y`xhOKr*P~H!~7ngkQX2}((x-9}4k0W@T zO3T~uumLuipXz?H3*|L{Q&Y_SIkN{iSHMf)NdCPSo~he_9b=pnslv7Z*oD166r!IE zVk97>avKy5o1?(%#sfS8(CcVCCsCX^d!gy@v=x*_0H4Bg0>ViFjh7)OQK&Q?P!ix; zXn=mm=jq#zuZUHb&j&bHV83F2?&)HoJ@+_zny z@*2P?GBP+z literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..933083422d936c6ec79f4793bdb52bec12cb44a3 GIT binary patch literal 547 zcmV+;0^I$HP)G3OQD+#2FoZBbJRYZ3t3}mnmG7|*R4SFi80uss1duUq z{d_(jn&KIlLi)`MIrUS%Mjh(A=Cx24gaG!^89J^%(MeJX=ih8Lc{gAlK%DJw@;cOa zNlZcjU%f7EC(~^85ypa1;LTzFd~rzacAM9sUQ|K=XeZiAtOJwDWFZgpApZT?BhmH? z0|XGnAl_(5rz(Y`2y|r+nfXAVTaCH zo9E5%Slm_F*^ssTa=EFH)}aU>0*C-2fIqab#q4Iy-pT*~002ovPDHLkV1ly??M46q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..37c4441170637800ebf0defe756232bb7a6a5b01 GIT binary patch literal 1764 zcmV@o z(=)5Ft7dvsW(%i!w&zzz<^9Q1_D%+mL^45@OWh2lP6D<`E3a>A}TvLI7n%N zaA;_V($mw!?~jbo$;pZQeR_H-pYJA$nFv;XATKYENC;3MD*q{z-rwJswyE-8DgX-0 z71tp_So!%g?d|PJ_lpGFFh4(^R`1-Quc80NLWD^E>gsA*U0tO=LyZ707!m2Bq9R&a zT2kh}RDh}CVoAOu`r7F2+q76xBJ-_Yz^z~R{=GD)K-~KsZn?2R(IS$cM7fofmGqnC z8KeQ+SLOey0O(J(wY9Qu2fMqeVs@5%qV>_zg@uLYbHQLxdIr2;&FiHfqDw4`apBdg zS5b`z=kYI#vf%;f`>5zA;qpjVR8+|Os{EIF04kc5l|`e%or(ts4ep2Mc>wyK&^*PT zm1S53iUyJV;6i1+;vT#LEJ%O<{+%#RsPg|*02GJ;?&#=9ru+N*&HfKBV4(E@cz{rx z#>dBLa&prApDr%qZ)$1^dk&R<@#2LR|4#+j*w_ejAL~ebkq4ajKV3wY!&4wUV%+UE z^K(SnDvAof(n83t2RH@H^HvWiC@7$vogF$nJPh*y6(|YN*Vji^2`fLZNO8pqu%V$r zt4t*U;P$-e$j;6-^U()6-${TUytty}QE>pCfNlsoRH5}U1S3F(z6kfTis3X+c~lmH z!v=689l1KS3nc;22eIzQv;&~>49vxtubmzPn4eplMbPEf@_?5wUt*CV-w1iJ5>LdE zUr7K=Lt|rOG&MC9mXBGWv9ZzdF~A9aEf4Vde5MP+C?1&N1-LnPKk#EL%FN8vD(lAW z2wk+g(_M8c32=OTOxxSrl$)CymX8(S?(Qx*4e;XwWMpKR`3DCF+GW}nz~yooOl&1& zqmYj)o)aR)d`HO2k7>dP^;n~JUcrJOS5tOd@MzX+Y&$&mZEbnR&bL4#?1n; zMp6Jua3lqw1V>T;N^m3v(D@TbYMqDz>mV9?lmvKAWc*QHZoY$GwGhldJUlG-2g=LK zjgB{O=#fHD*0uns{8NvIx>{Rlbaa#!7Z+tdc4Oi#1oM@K;*{7DL)5rc*!EP|_B;?U z9>pp=ZbesDmkc>!M|NRhLH-6fGE`h#Y{V)mbP>RTa{vJELZRZY3HHE7YHzn)o{|7n zRaJ8D4KeuO!-q6IJslP)e)jAcj;N56=;u z>;8TDy9i&8A5-(aduA)Z3ph6DBoO%Y`~6|OgC9Rqp1A&v^8;+FO(=N)3jRfWa4h9` zY>eiFM_d;V_!{C>sXU-0fJZ3*K@j=gzLlg1Qd|cQfat#po2G?_!p4A8V*tq0N=j(i z=aajz^YimEpCiQ>7~|mq7>59kN!nRXkV?Ei2Z2|sryD43$4FdoefeLeL zT!ja4>n|@aOIrX;(Xf@awrrJWTL4Twn0Mj&+yVgNaR9s^o*uxh4|@P^5Y=-6wgo_J z9;#!W1v$IDZd_g$SoPt<=~Fc zbfMh^I1~*7AV}e@TSoB9m$=LX;NtMS)eaqK3&3adOasKn?RFa~ix3@v1C_U)7l@`y zY6)PC$pbhSFf%hF^Ex^@$Vv3{^vJb-OG}G+RsqmGlkhLT$Lvr#YLLhP0000gP_4FN7#7D4j8#%VHU%AfO zX0Nx9>lCrDzCzIAT5S~c4MY*aLIqdIWd^g27KylAlYx+B@|%3~&u;X?KZgd;02)9U zz_x9cNF?s^>-8EMjfT%tfYE5gHk%C{h7k^j;dDCDGeY5dsZ>&ekOt^>yDXE*0FLo^ z42Q$Pg@{I@P$(2!onaW#5K0adi$$83%jMl#I-RDu*=(w8DF^Tkz_3EJ-m)yn<#Ln{ z1OnhVjtkZ6^~ed-e*j3iAO-No5Bf6DT}d4Zh2VTXL%ZFEcsvgId>$r~32e7p%Hz7D@C7IVT(4KMJQxhZ zbUKCO@d*8XpDK<-B9y;eE~N7WV6|HLQmGWfO5Gpx!|_1zzaVs;06eq#%K^Ly4WI!u bfCl&jUboIirnE7f00000NkvXXu0mjfM^5bO literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..711f6fe61bd9f15316755b94c221e7014b87c9cb GIT binary patch literal 1603 zcmV-J2E6%+P)9lgVB{N}Uy9xUa{S zai8aWM2IE8t8c$&D-QvnqK**e_4b?Q_oe$r2J-y&RvJbyx6zD zv58)BbT2mlxdK3brJ>Q>nZ9qH90>qMM@P-Tz<{kh;QHj=xP6Z2OC^H%_5Hlzxz=~D zfT8eKPrn!cxdPC=s1$0y`9ZJw?Wbv5PUQhDFXOlm`QQ7`?R%NW3#M2^`PJP|LkNFC z0W|JD&M7&nM)pK8n=R!U_JI z3k>D=5&$JiQ}B^4pce-=XcV+pXnzHSZ=4^2x;i~S#H%;_G` z{m}7Ph+n*#@J{0o;f*E0)YMc}$h}e_N&ZXc1xk&I0H(}Q5x|r=Dgu}?M@4{;mvkIn z%&AW)QH(ua0=&`rQI_o}?FatfLWo~`liS`SzX0{&wP};>1xcct<*{?rrw<|7| zqO88a(Xn-^La5@}iIy$chK+ajpJ$&f&y{X5B(U^k#pRy6MREnQNsB<`-GmH*GHmkQ zm++ngl$xUbIgC)QK$?KlJ*QyDn3E!3#1?>E*wKYw&G&Q5_6#0E?FFV?d2v#4S{+-I zMByHp$AMQ5VBg(MK)5JylPG-82D}9LJkx2uoq1>;O%B^xSNrqI70^+6lAxj-j_f^q zYF@6bGn`4>?Y(Jtim%@q%G($h-gAIbWLzj$AWgvOwlCsWS zyG@l@o-;{;)^_>uOw2{H3wyA2Fy;YCP$U@Lpj56v+^mdZ0EZGJ+yl|*ZgpG)37`W> z83dxa0!cz#a4RPvG&v)-0HmD|gt%McbT{<|dsLP}Bq%%Ng5g!mV;jSQXX1X(s|Qd) zi2&#YS{I}ZT3opaYW+lWg$3p4;&WLTDOn=T1(6y;z2L?dW7Y-x1VDnf06LRL09Ib1 z#Kpokgp-$`d;#C@1WkfEl1BN9fCt~)&L5ZiqNp7q?F}#+42QJ`F4XpUm=5Rm`J0LVv1MzTKsw-~^s3cGfMAXorJgRTK- zh@i^5;dttEfO{qnloyc3yiik9ljl;-00_-V_!qy<;yX$OvZDY1002ovPDHLkV1n1w B6Q}?H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef99e18f517aa55c8f1f6a324be5bafcd3be3ab GIT binary patch literal 534 zcmV+x0_pvUP)jUb`U|k3hCzNptVpsDDK_5xflvrDzrruBLB&SVwSs-;*x*4%e_bbFYo2< zBJ|G+0YZQfKpMa_O;^)2-@0wvRIOH*77Ebmbll-^$jqQvEJl;bgv|kkcqWsPf)EC1 zHk)oDkstuTY&05q5UQ%OIpWAG7K_3V!T|AjoLa3GRVo$sj5$|6pZC^~CnF(%)$JWO zolbkE7`Z95p4I8?>5k2jhy3^FN1-YR0Ysw9v~^IR@_yFqf4yF3)qpvNI4|fdFS??U zsDuE%r(@qsc`NYcFn_(hqHed#@}`a*EC9-hvJ!2Q<2b%J%=tRZMawS?z#$q$?&ZS^ zD>ZKg*Iv2CDkWns1u(1A8;d^8Yf{%X*z?!;gXWbmfMr=OzB-r7(eBBa&-}hoqkg|n zbbRO_m>px7n6h&ciR)s|Xz%-dm zlCJ;mdu%zZ;aJAu17Rop{W${zz)gpnaCQymFq}P>Wp6~O7R+HnF2(%3iVrfM|(Bj)x z5v5qS;8PxITNPG{e}PCB)LIqxNoW)_KB)5=1;LVp3QbufgwU9z)if$4P1=x1(s8~! zdvf=0(|^5 zxtVQmU7;G2XK4xW;vRCJ+nG(s2L1FW(f5;PhNu8Mhg*nR>xp(hM)cB;5&G_Vho7J!{Uvp?OG?ggn$wA&B?&L7`R^ux4&J}?uZuI4UJ1fpZDj%dSm@au@6 zBtY!Rn7gYk&IEMn_bjJn1E{kl=Ei@GmrMlkpV=QzpM!f~hUn1aJv4S_Oq|0ej0*gJ zb6K6gr~n{u+S)|T4Sn8OG-w|piXYAXeRE?Ujo%&;_mx5f=KtzeA3f6)@T2#Gqdx*L z6@HoPqo%Es%KSwIK+nVZVb7^=#v*j_h)aI^dvzYxmIFEK*$K33!zhpEYRrq|9nAhcezz|~F78_|z{}5Jek_74!u5Yf#1S39izEMz?JkCb0^k97 zcrM7!=NlC&1{4DpH~Beu4YIQgoTDADK>)wUeJUs@z=uhy@&0lmm(wcu=>X5kY=e_< zc5>dK)n$jg(YD6r;{_nGtZOIRqF(rmK!mKp2EWk=c(XGu<{!xX@YLS0&xMzF#_4KZ zz<;>KoPWb*gogjtYcB>Z0g&;*-}ysp+p!S6JxJEU`~YXBfDf*lKT|6s#KbZo8-;cp z@jDwCA(i=$!D<6L{>3@NR50Emyk^qTBqQ>M} zsbG_T!@UJcjj8}t;iw8g6^^O^RN<%!U~&_0hp%VXr<7QaJz4@_!;y0V$Ok@bA()?Y zlYhKMF0w^Bo3hFR@D@2fd-2hMJRFePCNHZH>^Ntl*%sfnxYo|Jc0S;vr-IBZkWnk( z+7M;kK45TUb0{dwAJ0Gvk#7Te$41NmwNYyzC}J_YI$kQda2vH-}!cD2Ol z{528<2<;x>^gW-j+|Dy69LGq6^HU3xo^3JF`@ChY0<95%2e)r)r@5s$zW||$9tmJH z&Mn7iX?2OF?oMglt0h3~14k4pyw~lBRhKs>^3@910($-8Z~hcu8;~h}KN%4=KB$c- zKTCTJ;1U@b<#b-=l=lMhCV*|a$ysFq_JtgwI1_Mk6vslf0yZG?u?@0as2xy+Q6!j| zpyXPCQdEQ#12_=)fD;`e+r*h-9T*7!Bbc0>?zgxlmI>yP1veF6SpbxsAPB*x2! z)<@ID66O3L;*Q`^aN|F}kkXF2Y)S9k;?V8I3-l;p@0O@2move-GD5HHcvlSnRomrZIe@riSDi!0clhgp z{7Te;@oVs5EPRDv{WT~9uRwW=oOg%I4Y^*x6vk74qd^z|L7r{fD k;?yZoiy+!4s29-1|Bk}@?w6|hX8-^I07*qoM6N<$f@S?0$p8QV literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7cbe2a556d9c6492bbf4a19c88a34a66cde5fdac GIT binary patch literal 473 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6456688092e27c316d14c14befdb07f309da47 GIT binary patch literal 526 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 B?;8LB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..7199bf41fb9efa7fcb679e2f7793a4a8e237ac73 GIT binary patch literal 1604 zcmV-K2D|x*P)%xj18FFfl2Dlp>9bD}oCP69;67!AM2G*ty~k>A-5-I0VOR z^v(LM$7@TPnf-~4^ns8xGdthBZ~orSyjwKj7z#iGj-dcF;1~)(1CF5pG~l?A0+h>T z+nZ)tR?MU>EdffUlATB-E)jBrj*gBfpU)dLL`oVrotyYWb z^}5|?G_-|K7J!Y<<#L?l_5!C>Diu*K3=v>_Hk+ktwJQE^SZzwveIdfba#ExrALVpJ zP!ixPdM=Cy0RTfKAzW|+QGS)41SSINllky_!&;zX42z#jzbic~$0P|{O zWQ0~JAA3mW+YhF|RqFtTU1_9b<2k>8uv`!71wYmp7U7Uyy5)FrHW}C0BmdB zDv^!vHY)JEUtn>Q+kkD5jb-3J(y(mkeYr*mHvG@QG!J8i@(&@Cz$>QT1X&Cm%*M*h<>}X(q@j?V(4sv>!06%!~ zjh<&QFcRd2PzOdYL+tVK+>^x!8@#$haNZH*-9i^y0>JiL$DK=@GA*`Nw2| z&c|N-%nRqM8@~y!k^n0!D>0M2pb#eijoSr+#!vtna0~^Y0mo1P8gL8+FnNft!~NX) z1PMRw(GuVpZQIUSfO8)Be+$9wIngavAT03pH>Lo$Ay*z<#f8Ah-C|`)UBX|`2aqm45GPf5+d;s6cLx5k$ZW$B%h0_t|aS0qR zpj(g8BIsO6zY)q`2Ygt6L-B@LY=W;7Axr_p3B1)hQQmih0{oIxYG1@A_;Evw1mL~+ zI>FQjF%kfKub(^lpn&rU-U3Zy6pg0<@Be53$cx3It+W670l3&;xg91j7J$7$xdBm# zz{bn&xSw|sBLU<)d4S^rqF5K=@wm&yF#~{UOu~OjZjRwRk3#tX0000(Bo{}WFyD30fmTl8C%nTY1hjcof*cwpCJC36Tp$xEIuiNQ#N&tY_ z@pu#vwr#UD@~8{LP#HoQz_KjL^PJ*1W_zr;eBT!_)aghG;Dz4W#bO~$@#LoGLLKVg z=~bxQlsIb6KcEy{eP| z&`z{<(yb4N!$lsyp2utYCe`*U18|6x(w6Trf@|M_j=2`Vxn%QeUFjVl%d(b#Xup}F zE(n7DM*!7z&7L@jilQLbbwv()ELord)%;faQ0)-E9D1I-AYN z^E|fSZnrFkZs72NFcx`Cy#nB-!%Zm1U=Bn1Sk}D}wMOul>$X>bTgU(y00UqEegIA? Vr051fEdl@l002ovPDHLkV1oW!*{T2l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..9caeea98ab9d9a1add2e52ec845f6a3e92685b8e GIT binary patch literal 1680 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 D89&{2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..5482b7a4dd97e195e7ab3aaaefc5e11599eb2b87 GIT binary patch literal 1832 zcmV+@2iN$CP)B8bd5Zp<@fk437M4BQ<7V#&vWYRWjv^qLW%QK-S@t8zx#LQo>N8zj-mim;3x_}1&*QsRNyEIKn0EyDZn=u z-?!4setG(&#N=IC0$h3Tymhgn;s7BV^mKQZ9{lyEks)pXp2o^bx^$|9E|s35Yw>?6 z>_1IQd#|anxy4%E+0holwE*1s8`S}M9c^l|+Fzx(xNH=EL_IG=K;uJIeu`|zX<1wk zlv(8W`=tnM2kw)orz3(Z0h&Z(FA5S#AOKQ;8_tjhitlHl{^H_d&O`wJ4S$L&V)I6Y z4K+126pzQ{_2}l792J*vPlNwh0YE-GJ4-!1Jw$7pPWi^h29X$k=~%gNj%Ft(siUJK zCnBi)*A;&BzWNPdD*RMiO|vtJt01PjX_xASEz|augDX)^{&CSh1g{^($1Bq?= zzV};MAI~jP_DJV%r_60K;XhIUo_7;ZR%i(1;-yPIi|Xs^_tit=mtI@)KI(n2ouE){ zt@eD(#2@+Nxx>%X5JR7*07jxL7wf~mdM@~n9RZkETVjpJaB5e!pU00M(^6f-f%>S| zAQnPA7oqI1n%I?dIzn&wu?Uhaf}Dnw>Ht};)C2#7c>XvXDFC*$r7HiS_v9$pOZ|`D zPX~;`^VtH6+p5wKY=g3~isiUQIkrIn^+z|!6^;}D+nM+rD0h@Uq~S+Br;F+52e(r+ z5{+Gbxh{r$LY6hY6LcD%>A6fW_5@?G7}41`Yk_Kjmr#4U|J}1R_|FSR6cZb?1i;Y3 zCtg)97odmeg*<}!flo!R^Ed2RO_)tLEdkDyS2#|GTxIPo5p$5sy#)BdivcdIYk;5KYd)C*?ysBsBU&dyOso>JQ7Fgv6^~AYRDL);ECjv-B`F`lgx{3_ z>RBKF!Y$=zK)|MR>f~62bpA{*;ddp#hhJW$mX;Q3ZEdATj~>ag`T2QzFf!uY1Ngq* zzLzV2gTY*f@uN)E7azC$t^~k-YjQ7F@RI+;?E<+*Q2;7%6a}CHM^OMOa1;eFd5FW| z*+hMEiEQlA53>=IiQzP48s2ia1PC|xq z439E|@gM?KSGsSD%*uXUY}u5{L_^af$)%1WmXWKpsNY1?Bm_oq#|g zdlaPS3giO_hM?gXi5P*LM6p48&Vi{LXpI287)R2afI#JRAXngRKuw}Ret-_N1Zdbw zNP@3@e!1vybU0J4fLB1TPpqxUDZn;-{$fMg1{Mzt&G!`R&Dpeq3u7DR%xyF-mY0H2e6>1kY2DW!y z2S|)O!Ss30xdNskY8`+Bjt@fOm;$Ozo`=R5*!GYg0C2KWK63?_OA20A?$~4k*8(8z z1WpJRz;V%N8J$(Kwh$`IhbPE(IJ{yVh}u0b7w1fM$?m%G&MCP zL*}052LL#S2l?3881?t})B5_l5plNQjtB;WPHuonYOc{DC_~c1@faK&q+~Lw<$C4{ zoEPBp`RI#y(g~OABC8XjTf48s8n7c);{@fm|82iSF2W_Wl*N0D1mL~+|Af4x$uSTa zMu_~reI0m92V*#&2xpm&Ydi%w6b&OF$S1XR)^BTn=S2!|ad=*}!vw|xV93E0bqo-n zu5;%t9Vf&D;6UTme1U9Sa3cZKm^^^I0BnmWo4$36yu{VpKgc`){PyQu1z_GVC*eOw W%=}R1Q;QS;0000#wmib6-z}hhl9}*pjIHtJ+ zjBYwsvem@Jl(&Vd-iS&^Fw1p2SAa#x0dN2u00-b3#V)JB7?tiE00000NkvXXu0mjf D#ckwR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/meta.json new file mode 100644 index 000000000000..7881ed5501f5 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Effects/speech.rsi/meta.json b/Resources/Textures/Effects/speech.rsi/meta.json index 1ec1219b0f82..e3644f147b08 100644 --- a/Resources/Textures/Effects/speech.rsi/meta.json +++ b/Resources/Textures/Effects/speech.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 | Moth sprites made by PuroSlavKing (Github) | Spider sprites made by PixelTheKermit (Github) | Lizard sprites made by AmalgoMyte (Github) | Oni sprites made by angelofallars and leonardo-dabepis (Github)", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 | Moth sprites made by PuroSlavKing (Github) | Spider sprites made by PixelTheKermit (Github) | Lizard sprites made by AmalgoMyte (Github) | Oni sprites made by angelofallars and leonardo-dabepis (Github) | Skeleton/Plasmaman sprites made by Skubman (github: angelofallars)", "states": [ { "name": "alien0", @@ -28,7 +28,6 @@ }, { "name": "alienroyal0", - "delays": [ [ 0.2, @@ -412,7 +411,7 @@ { "name": "spider2" }, - { + { "name": "vox0", "delays": [ [ @@ -439,6 +438,54 @@ }, { "name": "oni2" + }, + { + "name": "plasmaman0", + "delays": [ + [ + 0.15, + 0.25, + 0.25, + 0.5, + 0.1, + 0.15, + 0.1, + 0.7, + 0.25, + 0.25, + 0.1 + ] + ] + }, + { + "name": "plasmaman1" + }, + { + "name": "plasmaman2" + }, + { + "name": "skeleton0", + "delays": [ + [ + 0.15, + 0.25, + 0.25, + 0.5, + 0.1, + 0.15, + 0.1, + 0.7, + 0.25, + 0.25, + 0.1 + ] + ] + }, + { + "name": "skeleton1" + }, + { + "name": "skeleton2" } ] } diff --git a/Resources/Textures/Effects/speech.rsi/plasmaman0.png b/Resources/Textures/Effects/speech.rsi/plasmaman0.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6cf1ad2528b5109d10f33501d72b238860f099 GIT binary patch literal 486 zcmeAS@N?(olHy`uVBq!ia0vp^4nTZ>gAGV-xtR*27}t8bIEGZ*dVANCKgVYh zGtX9C&5iThy=Ko%UI!PK8oOn#bI-iJ^Ikq|_nAGZmgkQ>i$8Yo%87WsyIFjVe;=%T z&$RWE_}cZ%Kvy#`EKofAp8Ey6jG&w#?^otc-=Ei?I&U%UVV%RHe}C5h6qY}|z3xC_ z{lBk&SMJ`o=XUD+YJ2;|+6K4yU(B!Rt#b(5SLg8hHP|4AjE*`7$#wDuhyJsxth~p6 zV@>$ow7suRU0?a^690*Ry7j#^e;XD?12s9LX>hVv=&W;SsdGr%S9jpTS~vRz3ritJ znz-06;JMB(aWTa{!SB4(j8pGfJ1uRq6JBLI#ILP$h`;=|A^G0_%ZwNJGfHG3T6kyP z-RH0^@+Ua$p*cQxqp8Wa$eSU|xbq!F%4YulsZxW54c}5)^5}vMp JF6*2UngIN^*3JL` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Effects/speech.rsi/plasmaman1.png b/Resources/Textures/Effects/speech.rsi/plasmaman1.png new file mode 100644 index 0000000000000000000000000000000000000000..4a3cb354ff539a3255d60f7dcfb50482130f7f86 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ!=5gVArXg@QyiGD1zkIT;b@ID%^G=tz+G|$?~DtqYG2JGe4>tLHhMFg*7jdz1WEDmpBC(UneR}@W2$@HgBc`J z*~+Uf0R(>cViOsYFYB_LvyIT^PoAyqKIed%-&=tMr}J4S#FV0Ybo_k}cz9VFaJe1S lkYHV$Akxzm2;od)U@*6FkA4w+AO+|h22WQ%mvv4FO#tQjRTlsN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Effects/speech.rsi/plasmaman2.png b/Resources/Textures/Effects/speech.rsi/plasmaman2.png new file mode 100644 index 0000000000000000000000000000000000000000..9f86cb268c3f9090a07bbed5847655b2bc1b4d4a GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ6`n4RArXg@QyiGD1zkIT;b@fqU0eH?D*H8&_1fz2V4WQd81NHwfaW>(EVE@rprW#+JUz zNkR3^tX8wb7!EV?@Soned11q>kNp$bB!J)(m$aV&5X{-L`w-JHH?}K&EgFgi?+!*) zO5BdIe8gf_nAOf8yloBJW`UbYQBRrNf=)LE8gRKC)R16ZoFLNE1m5~Wubp~t RLMG7744$rjF6*2UngFA~PzL}2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Effects/speech.rsi/skeleton0.png b/Resources/Textures/Effects/speech.rsi/skeleton0.png new file mode 100644 index 0000000000000000000000000000000000000000..8695d90baf692a155f14f6be081ddc3247a04d1e GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^4nTZ>gAGV-xtR*27}Gsn978H@y}j$0b=ZN2H9-4| z-@CuzZ&%(4RgkQnq?dIvnj-P>~X%o z{9&iF#>xG<;=+R2E^8tyr%O9*>tAhqVO#F~nU&j{OUHI&g zDNo$L*8<%D1SXgM#W>hMh^=@eubDw}?ph=QoP8|M}Jb{B`~p`}n~M8{EDyA1nCV zaI;tTH)Hs(^^Kc<)HjA-UjKsKChIQ$kF#I*%Qe(F9EZ8R=xA}{CB~5N%wFsPclk9g w{;Rmdz>~25T>9((_xTs>l24F_ICjn}cB60SmWHi-whkoV>FVdQ&MBb@0J=lAQ2+n{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Effects/speech.rsi/skeleton1.png b/Resources/Textures/Effects/speech.rsi/skeleton1.png new file mode 100644 index 0000000000000000000000000000000000000000..3943f59767114ea0b7619dc6b94ef515c9f922f8 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJbWaz@kch)?uUPXPP~c$>nC*S= z@A4w8@>L;@62fBp4V^X}?Z07rFh_y&dV%L}C8M=0iwh>nGN_z=BcvoCtpnl~cya4V^F5y*m$0VM`@@Qgwx|CaW`aQMcP38(Ir08Ah3Y^n89ZJ6T-G@y GGywq4r#Qv{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Effects/speech.rsi/skeleton2.png b/Resources/Textures/Effects/speech.rsi/skeleton2.png new file mode 100644 index 0000000000000000000000000000000000000000..64bb33c7137d3f6d27454c96d52eff04c8678288 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJBu^K|kch)?uNd+jP~c&9xZ`j7 zfBuWrcUrwPG?OPCHD9=5lCDOA%jfhoWzHIllRpF}ggvrqW!|y>>#Xx{m~{JCJ?z%9 zepA-a-cYw~1M_d2%?&>t#B)TiZ}=lCAP58#%k)pEi;3y}D|!O7jlt8^&t;ucLK6T) CUpG_$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt b/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt index bd63121b9880..6e9491704ee0 100644 --- a/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt +++ b/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt @@ -18,3 +18,6 @@ bubbles.svg by Lorc under CC BY 3.0 https://game-icons.net/1x1/lorc/bubbles.html oxygen.svg, collapse.svg by varttist (discord) + +extinguisher.svg by Smarticons under Attribution CC BY +https://www.svgrepo.com/svg/394932/extinguisher diff --git a/Resources/Textures/Interface/VerbIcons/extinguisher.svg b/Resources/Textures/Interface/VerbIcons/extinguisher.svg new file mode 100644 index 000000000000..2c158154307e --- /dev/null +++ b/Resources/Textures/Interface/VerbIcons/extinguisher.svg @@ -0,0 +1,7 @@ + + + + + + 869 + \ No newline at end of file diff --git a/Resources/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png b/Resources/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png new file mode 100644 index 0000000000000000000000000000000000000000..cea01249e75f801c4d802c295818d9ff74cbaafb GIT binary patch literal 996 zcmVWcZ*7J$JXYWx83GH@ISiJvY5 zp8`Ju%PB>F1(wRt`wyx&5J0E+H21~|egk|AdgOp@+6DEvI+{^_xBA-}(cWV{I|S4KyZ{_&Fxhj!d1c(10e=Mz1(qMpbb zE2u}+&vIsem(=;5N`2J_)Wt+4zg4&AC^r;y{=ZzGmeu#w-Ms?fL_-D7XNPN zlb#q7>Z=VEdn!kn#~ae#R`ssBrQ1$$PvY}pbbwij(JMeF#_=)W>23o^djIRdFB#WA z5tF1&s0Peu1zAM{7|9!w#(?R`4ric;frq*RAbR`cqQy2~M~1Z=>98BB0grUc0`>uS zCeFuzdouh*5uW?LZUHz145fV6Ogjr&6xr3z+F?5Y?r#F6nYI=*8xN;+M6m$klGkj? zPY2b(0`rbEg>DRiIxv~?{oMtP^TO0BfCIqoO+5X?W&m)gN!ie@SMC=8a~Z)&c>zQx zw^k#kqLVDG1&l`@uvUOnFEfD2jF9&>V1Jnb%w){HHDJ2T0P>`>hf4`S9nLw;-5b;2 z(pkVB{{QGJO%uTOG6I+)-xJ?)U~fMFSZ{hd$?C(+JlYFN`dM)oU5J0bGgx<2>+v2w|B@l`2*0fc^#QYB}SA SE>$1^0000O8z`((L;mN=D zZQ0j@Ce+=FmSH_RgM~qF_DoCvxK-uC6I60vPXX!xf%*+Mg)ewkWHFi9ZQjZb7P5Q6 Xa41aqQEbxJ=^(zRtDnm{r-UW|-_$8j literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/plasmaman.rsi/meta.json b/Resources/Textures/Mobs/Customization/plasmaman.rsi/meta.json new file mode 100644 index 000000000000..f0bed207c094 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/plasmaman.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Skubman (github: angelofallars)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "eyes", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/brain.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/brain.png new file mode 100644 index 0000000000000000000000000000000000000000..06fb867f80712aba3f971a4f157cc6f1d39cbc00 GIT binary patch literal 1132 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGooCO|{#S9F5M?jcysy3fA0|Sek zr;B4q#hkZud_6(}CEE5c3YuJCn0fg;i`Qx;5if~FDp?m772Q<3#j!TJ<#m~$r*4y2 zo>x!D1ce!FPA~k$BPD&!Cf@45kuk|K(DHDGm)Y|xM_khj`{!Eg7eB9!xl^3p_FL|} z@$&`KKi>^?S`fe>!NuUrn4rPH!`iTr!9awejp+bFuxDe#wYzJ%yW_K8=SM5D9?Ji@ zj`c~C^J}L`GyFU%k|Tbp{ra+Vb8sAQTm0u(&H%=fK0$ofWv?w<6)U+yWTrr;@3AKl zj}3Q@xaTi^Dyf68|6qN47tHP?+5%zxZB-`=?=d*Z{3iGQn{ zeVdm|&b%8omusohJRYaK57)29PtNzBt@tzR!}hnYrhU01mko4A&+=nmH)ib#UE=h` zBxFVMy0!aQ;}(8;e#voWRi%^G^XAIW)o$xvpRbtuzj9IB_Tc2NlO`?w`SFYEPn+2M zlGt!2w*7psQq=oZ!EsNo>sEwoxp61&&}G>s?#E8$;a3) zPj@f)v*%95#n+MlX024d`R&r5x3`afd9z~ms;R5L+wa`BO`CBd|3p#u*L`|5Cu=Us z25NAgE53U2l~1?JX8Uc0lmBad^mW>NR%pIl%M<&mxMkCqUEE&mcD-ybi>39$BbEDp z*v{T@(%)y5z1yCb&9ndfYiuaockw^tDq)~03tx4;s+SGSEsgnO8U4fX|Nei%=W4a* z%+*k-JMsU0wBSxZi}OnxM5^~qt#)kvxAgCn^Ro+aMJU!-h6t|VXL!EZj$uxIjQj+i zE#9AQirx74=ghOR&aaO?nZLEy->7YE@Rc#^!(sN_s;Pzbdp!3^{c%2f^UwU7e5MRor36Prv`)`R#Y(pP#`` z?>+l|H{;UVjPT%le^$*+R}suN+O@8*_Q08pe}6wdJZ5NXowYjaY0#0s|0*v3S?~Pw zGyfau%bT5_&VT($@BhuYk1Id>Z`*TibMoO^QkGYr{kwJT6|<6UYE@>}@iX6!-#)ef zW-Ks_m-`$1OxM4D;^mu5S8lE}d$sHSlI*Q^4-O`O{`=AF^J4yuKgDlt=X%X-w1!_p zLhu?p$7|*Yd4)Cn3a8tVa{-<}L*$p>lCO+)i!)v^|LH2MZFu|q`E)C{uZ(dv_WQ3G zuHygj=;zO+eJ}~2W2gQ8^C#$dR_%eJdGq66iG&SjJ{UY*{an^LB{Ts5wd^2N literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/eyes.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..b12859f247052c5611d10b201a86d6a399fc263d GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D7fF# z#WAE}&fCj|d`%7ltQQnNa)}*t&QLVnT7Kc$F)=^IwY+QZ9h@b_ZOgLpgMjw@mY_*9 z9k>6qS7hcqS^q}QxKoCSL!p6z$*1A;H>q#iW1D{0Om6=ar&iCpK&IpQZ^d~<#tiYj zFLlkC19)1>f1YJXF^%Wmrf^D9!bqfA;N5JC1m%Xg>HhD4xw=)2(Rj_)%T)~)i?WuFqO`um8 NJYD@<);T3K0RZ8YUvvNf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-off.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-off.png new file mode 100644 index 0000000000000000000000000000000000000000..5205aa6474306592cc800af8ca8837d4cb4071af GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0sxv z#WAE}&f6=xe1{waSRW`JO!&?*W8NZm2a^~E7SHn=7m2TAV6+H2$T(|(L z?)>1ft*(9(i_!U#nEjQL-%Qyj!)DOH$n$|MN8Eb1-Fmfmvt=Jl;u2(8@oef+myc{R zR~xwkdy2yt%+{NiHvcTFJXI8Fc4gArcd;KN_ej6+-)qvWXegZW%`GTp591A~+sXT0 zYQJ=R&RnyqF1*ip0cS$U>P1l>@(w5(JbrHYou8?v!{z7RmdKI;Vst0F~8eKL7v# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-on.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-on.png new file mode 100644 index 0000000000000000000000000000000000000000..99c5641d5b1fef794841c74bcb54ef9e7e2c43ca GIT binary patch literal 1257 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3HG1+{xJmq&N#aB8wRq_>O=u<5X=vX$A(C z*`6+rAr*7p&hhn_TqtwA{vy||&aEk1yklGRdKdBSp7KDEGg?HpNse=&T8Ou81;?hF zw+}YYRLf{|;jUVo;SrMX#p&b%@oNhc1TH12EW7kh(*OVcZKwLq&-+ndTx&1h-d_9R zr_KI$!+-Y7P74eeB-j`ZGbBhb@Gv(dG8phMv@ss2;G2-O>zNh*H~pVKgLQ&)|8=P| zR0^&-86Vj2tn}Er z`WM3wB@yb5$t7w>Zi(o8SY9Gz()Q81?%w6kEPr|ytpEDxcGbUs5B*;(pOAU6oBx}2 z-CxmKo~?h~!#B^5cZCNI))2!Z_?KbB{NIcT_TQNg)V*VG_&e`A^Dnknm!5w9xUpi> z1hzTn=WG04e9WHlL;C4|9Us%zzGv@I$xh;}_J002`~GgjjXfXT%Vjiv9-eovHuH|44%i^%~-krM9yXDP5iTO*@8`f8}2`Uoc!SP&%h1#hyFIWzIz@nh?*Sm zcn&S$6xcJod0xkG<2=;U^{T%ae}4M;qrfKe1oOG)=coT=d_4cZ{CDO zhKOT7nA!cO{E6PT`lB66giSckB!jkLwtIMicL56qOH=91o7M^S>FD zSEepjn*8aRymABt-ymq}k-};WX zmVxu9@on5Kf1x}l_Vu;BKOg=4F-!b(wClc3U$)!frMWq?bbn2^o20k#%-qX6Z!EKQ zd^~^Rf%XOO|I56$Y`FKe>ig@TKhn2rk%M9-m} zLahB=Agzd`Qb=V;+7x0XD6_gT1~pj|5oMw~W#~Qw0o5;Qrfdu^E*nOu_c`6oKz#Wg^ zg+#`w;rhZ>AuS}M7kJbi?mOmQI7%r|3wYsDHAlcW1u)?b-d?t%JA@ag=)ftsJD!7a zw8)xaTg>pl0<^u1niz* z8U)B096^vEaH!I=v`aHWa=V|*^d`++*JbCs=PVmi&*cF;fCumZjR3autxRv}pcep$ z@4`JU8$mR3;QG8!({cvDZE$C z+z?bF4mLoviX?>f7Gib;0%vNG0+h))VMDM1PLGojLXXWgVlaCE>F3zR0;o)n$px~9 zpzfsuSnKJU?E(v+GCgS+f%{6V+-o=|7gzw62x*Z*JiBL@QfjzZ!xgaVtUZ8#4nU+g z2TaE3_BYbG1DLS-fmsmUIAF52a{nnn;E!lM-yQ(>r7ptG09};_@Bkj5cYrVGYrLnl Shk)?_0000`xCO~n{($bo1q&k1xNu*0L`aX z`2O?e+ynsT#Rr#~WP?xvu(|hmw_DjD!~ig_R|~QI!E-yT^c zLfr#^fF{3ln*Iee?FRJmQV~Ol066~Ma7O3>m}6b1!;v()U*z9=l1J(iUuKn#Z5*gkrolOzBd4-I%a=e1NKfX?jG@pm@?b5weo0@nCV zVgPIsHRTjE)vExail%^3dj2Ya#bz0+R$ILafW;Ma3K%v2h+=?IFm&>TT! z0sz50pUKhpYDDF1X}@>1?*RxYl)P#P2+h?q14JP(l0l|xXf-zjTtX>83a|z7OsdTE S>*yT-0000!gK=|VQx|4Vz^WI}Q|SeCehwLIG8xFIaR*KXDTVN#iGl5iD`v~@7F)j5B^*XU;qOc;02IO5{Wh~(%w%22rlns z5Dr51zv|2EoH-#{0rcS6aQ?df>^mWx02I6kmyKgq)3p=A3P5{YpRuWq*F)e^)+>N; zaTDri!cZ{X_X@zW6u6!!Q=xP;G%ffL?pCQxJpzLZEtUTUG!ZsCXPp%sLuH zZ(E_am_3d03eXYg<1N4}DO4|ne>$kG0EDO-N#}te_2u85Hr)U;g!<|cg!Y^cXJ;Rx qCWz^J=YY0>-T~hh0~o*n20Q?<1gs;)8S$b30000VP)|~7r=S{4con3ovJ`f-J zK>%EG$t9QUlyMx>JkQH#9LMx)@EKf6&rY0;4-D?TPxCw{@BPw=p7^B|c-`Za0wE&G6@WUK*AF zDWxPk$ltY@k>m4kW`Mj`9Y1eSGC+PyWylWK#^<*4nO}RR$vXdz0k!SJSNPHfG{NUa zVeIf#5 z3_9n)dk@YzFvcJeRmWdwv_(VKbpHR=d$sYm{;!1(lHz;(uv{WP9sk=nKx+*lgk`qn zdVhO+gZy4fDTNR~YhA?%YpuaK_pq*cW;q&_gH0(V=Ug3pX>eHEYc5dE(m0N*hUtj^ zm)Tz4ryOg`H6H4Oq?#No1LWx_=j^rIVD96kve)oyDF55|TT;GOTz&@r%ib4;VSsTQ zQwRY7073{$dfG$I#@`GsS|ve04S&=Sk|IsLYRm7k9P>lsj_fEeSK z*FE+FYvJ!!0K1=O@7EUR9ON!<7zS9&Myn}6mZ9<;VUEeY_Ycq24t}`Z7~`ij*IElP zMmVcfcgZD}{6aaiMt}DCgk{s?j2ivg`2e|L(=8#&h0hE0z~(avr<@M}__sC9!h42F zscsXXlmgy&!gL_B2%xCS7XX7eR5O;h4z#99l8h`lyL^1&k_ z%D$BB3+`5cwRTy1d_p8=MQf3@LH0<-7(84Ieb)c46(4)rgEic|Z_OBhh{$y}c}8fh zJl#r&2;?~>jz>yt(VxA*tOPEC@^a|O0Jc4H=J~q$M96xeEMNDw0kQt3aabWl1X}Cmziy#0Cn4;AdDdI5 zL2mngzoTTsksay7kzh{A-mXw8yh|jQ1NC%&U!~=xb_b8nf}~~7!7~d>3||!+AT{5+ zGzRdm99Bc=S8?=GzyZ-(cg+IV?7-3UfENQU1zd704vBM P00000NkvXXu0mjf>9+Xx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_f.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_f.png new file mode 100644 index 0000000000000000000000000000000000000000..1c861e1d9f02c27b552080b322ddd560d9eb2185 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU{v;WaSW-r_4d~8+`|SUtq&I~ z7_Zn9JVSN)2eow;P17HW=$zCH$>Ln5^pM3bQED02UwH)wA%!`o+qL328RA5oR#-l- zYZZ8v`6>Fx;+d{8bJvT>C9ko3E|vVo^~{<7*(U#gU*%8gnWSPI?B#i{dTP+G-~PY# z(@p9nV_S1?|JpqBq~-QAe|WE#PW>LIsrvT!y5E2I`P^j8-M0Sv>)V_E_toC#KgkMo zEf^elDO2fIUsB)X#Npq+JYD3|8v6y;tjdMviC*}{nwGMCUW@ZDW);n)SKjMS@AlF( z+MLOqkfyctOHSsWmZ}VLn5^pM3bQED02UwH)wA%!`o+qL328RA5oR#-l- zYZZ8v`6>Fx;+d{8bJvT>C9ko3E|vVo^~{<7*(U#gU*%8gnWSPI?B#i{dTP+G-~PY# z(@p9nV_S1?|JpqBq~-QAe|WE#PW>LIsrvT!y5E2I`P^j8-M0Sv>)V_E_toC#KgkMo zEf^elDO2fIUsB)X#Npq+JYD3|8v6y;tjdMviC*}{nwGMCUW@ZDW);n)SKjMS@AlF( z+MLOqkfyctOHSsWmZ}V~)y=BdJSV6$`qT;DZ z$ChqCu}q`gc5jGBrfg5{3EREyAAXz=N(Sj#5PmMwGW~4W?=OvRM^-ZTc37&}Cmm2` z+N;x|es$**m91A_$Nqg^b(!_T?y9%HCo=AF6Ir{}Zr8mJ40rA-IW3*C&T6ShH^)xv z{}MpMARw)FFZ23PryJk@Eq_lw*d6Vq`S+=;f@kih zz516fvt8&rxYqi?y1aE!t8Eu`=d23bc2&<2WLA3(gUht8#Dk*qKZ3ZPu6{1-oD!M< Dr=o6( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_foot.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..06be449f0b8bcf4baaf5991489fa0db88598f447 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=y`C1(5-l* zO>>javIfr?Dl=PDYtAYL#uTb6l^m@OimE@^x!QsWs0j!f-d~9_HvZhX=FFL>*BjPk zhAh1ITlwt0ZMx4Y`}Su!XsUjz?Y|Z^FZ~O*^=rA~f~Pl0SVJ`)@BOp>|IuCRwtp8= oyKe5VulFAJk0o2DUEi~Nrv5(hzzE^M#l;|{p00i_>zopr07@cG`Tzg` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_hand.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..6849df79dfdbcf49aca601ec60e0d7e6aac7ba70 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=)t)YnAr-gY-rC4}*no${K{+^^ zOYiBVTQ7r;ddPCJG2Q3=ut4tBiN`>t3=Cl^p5^MEtF*KuLrb5koQxMSICf%r%ey$K zUAxyGU!Qh2?$El%auH6jT80C8<@rVXuRq^^M|n>ff62V(ZPQtRpJ=d#Wzp$P!=$4IXL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/meta.json b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/meta.json new file mode 100644 index 000000000000..db0b13c9206d --- /dev/null +++ b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/fc4de530ce208ad6d91ad85cf241b094e64b2ae5 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_arm.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e942d0d5378041f2cab4953c7ca6ce931a2cf7 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=mpxq^Ln>~)z2(T)tRT>uXkaU( zw^M0)($77YOI$Ct8U|&Se)<1RsDdZ!Pzz8wLxQ*FQ7_GJCoH{o{dr{XJR#+}><9j~ zycye%^3N^zzIZ04^}@629b8deam+V@Suf9HoSs@3`p@?BU7iKkq*NlkPKGjQE>$?0 zwf4_`kZ~Z;kZkjX>y2sc<{xuD=bCM{ZkSU%UE zZcx6E7yVw$>ANAv!T8HZHcU_WEi~t%$-|9_uhkXj#4&a!*FApU@HjOsOuE_7Eo~VKSTnB pZvNm0%aja<_j}(=m*ix)_mSmHon^G^|J_0$wVtkiF6*2UngDDHNmu{? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_f.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_f.png new file mode 100644 index 0000000000000000000000000000000000000000..878dd9ed62acd1fc2f291fd1499962a51838e7b0 GIT binary patch literal 475 zcmV<10VMv3P)Mf@ZUOGE$w00000 zyiD(1Gxe|6>#+Xx>I3>s?_EWNdha$BvKgkWs(QIx?tX{tdaYIcVxGY_ z1pKZ?JD~TjwbncBTC0Yo<2yLuSq(^WfbD#=10LOHb0I~rwMNX$B0~GVlZX&Ab89Um z03t&3JacP})^(-U8qM>}A`;hr%x)I-=yquOrkmD|&*;M+r|}P4BMVrTg_xN$HbGUDnR)a)U}yvEhKM;L>d*VL z!O%m|pYkuV9-OIriUTYcqp;eO>Hu57J2+sZ2EhR%QFs>zjA$QrKq-ZM4~}+#e-|mG zMf@ZUOGE$w00000 zyiD(1Gxe|6>#+Xx>I3>s?_EWNdha$BvKgkWs(QIx?tX{tdaYIcVxGY_ z1pKZ?JD~TjwbncBTC0Yo<2yLuSq(^WfbD#=10LOHb0I~rwMNX$B0~GVlZX&Ab89Um z03t&3JacP})^(-U8qM>}A`;hr%x)I-=yquOrkmD|&*;M+r|}P4BMVrTg_xN$HbGUDnR)a)U}yvEhKM;L>d*VL z!O%m|pYkuV9-OIriUTYcqp;eO>Hu57J2+sZ2EhR%QFs>zjA$QrKq-ZM4~}+#e-|mG zVQ!P41Wjkak2mZ^zA1j-5ikPsQn*ZY|+U( zI2}P%2Y`GVt^Aom-cF9;zm7Cm?8m`747!4H45d3BVRZ!6900Q1)zXk5amQ_jy;;%> zj8~q5#a~^04J6qaXc_`DgH-?P3H@YnUv{2hQbP%Yv)>GceQlZy-`{>GsF!31Xvhd- z#Bu+rcVJpdh=-wL(hP=Y@4hf-WSoY}*Evd4#{r;V)>c==5chR=2Gg5&?u7{4yp1B? zwErpP4uHk+?&Ie%04PKV0iqlLvK(X>$Rbc;g2g#3wZjq|D9#~?j)CFQJ9bdY z2eTj`}(X!+&$Y$+n!J17Mbe@;)f9gM1FM92D#zi^Dg30AoL0S+Xq0>i|%k>k9s2 z*!58uY&ocqxe6>`oT?zc27zijad1{6*K(W=fF(FkocriN;`}O7>6WO(Xt;Grq-n|dNmVfy6lPZ=I$x N002ovPDHLkV1hB63|0UD literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c38e93fc34531eee1cc6b68db13da7ba41f081 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC467aSW-r_4bw_Uz34ETcVQ< zL-R)_wLU#lK9y4`J{)ZN4-R-*FtI;Wm~+sD&2K?b$C6Yv$DVMl{ducuB~Mao!3#Un38!T`{MhLzwbKc zv}LQdX!$SERldlp=!xw__(z;C`M{`5ld~mP~&l z86h??JZMwg#iTax;q8bUyR{QG8z*GtX*1f$m#^O$yEkFqhEJ+<9z`_$Oxjc1vaN@0 z=XL43cN1eZcFyT UGL#Jp-9T1(y85}Sb4q9e0P{PAwEzGB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b3b59e25aac5b1b899ef434670eec308f326b5 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3|4aSW-r_4bxOSCfOt@s9_E zw{YkS?8r&pB5)>@CFu%lRE1Fg14o;VbdHjToLc%HqBsRvey*2%`}^kk`S+94zRm*~ z3j{yjNVFMk_X)er`map6KDuGmj#Wo5&3o$ow5k7 z-`|VuJI8c#vd1!^e_J_HUwO@Cy|j|!koMZItjKk*d5$Rv_4$LrSK5j7O=%ujG!qEQTXV2(==>C^@ z`LVImhIKO=w{D(v`lmvvSjV*wR_Sb8_OS$~v277OxMU_{Zux@id<-+DtMAn8nS3ZV QXf? Date: Sat, 25 Jan 2025 21:14:00 +0000 Subject: [PATCH 15/15] Automatic Changelog Update (#1291) --- Resources/Changelog/Changelog.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9076550a40f9..590cf158a8a5 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10744,3 +10744,27 @@ Entries: id: 6764 time: '2025-01-25T20:39:09.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1653 +- author: Skubman + changes: + - type: Add + message: >- + The Plasmaman species has arrived! They need to breathe plasma to live, + and a special jumpsuit to prevent oxygen from igniting them. In + exchange, they deal formidable unarmed Heat damage, are never hungry nor + thirsty, and are immune to cold and radiation damage. Read more about + Plasmamen in their Guidebook entry. + - type: Tweak + message: >- + Internals are no longer toggled off if you take your helmet off but + still have a gas mask on and vice versa. + - type: Tweak + message: >- + Paradox Anomalies will now spawn with the original person's Loadout + items. + - type: Fix + message: >- + Fixed prisoners not being able to have custom Loadout names and + descriptions, and heirlooms if they didn't have a backpack when joining. + id: 6765 + time: '2025-01-25T21:13:19.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1291

FT|| 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/_DV/Voice/Chitinid/moth_squeak.ogg b/Resources/Audio/_DV/Voice/Chitinid/moth_squeak.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5b77d98e56541fa3ee34654737e9f78e0b5c58b8 GIT binary patch literal 8676 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 Sjk5^K8yUkeeT$BKhW`hii5zbL literal 0 HcmV?d00001 diff --git a/Resources/Fonts/Only_You.otf b/Resources/Fonts/Only_You.otf new file mode 100644 index 0000000000000000000000000000000000000000..cd7f3547e0bdb46afc664135ebb591f5ac357ba2 GIT binary patch literal 62024 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 Y9;*)y+l}ipHgs_4IP+x6Of`)E1tAC)EdT%j literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/abilities/chitinid.ftl b/Resources/Locale/en-US/abilities/chitinid.ftl new file mode 100644 index 000000000000..e2e10c0eb4e5 --- /dev/null +++ b/Resources/Locale/en-US/abilities/chitinid.ftl @@ -0,0 +1,2 @@ +chitzite-mask = Take off your {$mask} first. +chitzite-cough = {CAPITALIZE(THE($name))} starts coughing up a hunk of Chitzite! diff --git a/Resources/Locale/en-US/chat/managers/chat-language.ftl b/Resources/Locale/en-US/chat/managers/chat-language.ftl index 00c41130eaa3..422cd4e55b55 100644 --- a/Resources/Locale/en-US/chat/managers/chat-language.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-language.ftl @@ -15,6 +15,7 @@ chat-language-RobotTalk-name = Binary chat-language-ValyrianStandard-name = Valyrian chat-language-Sign-name = Sign chat-language-Marish-name = Marish +chat-language-Chittin-name = Chittin # Animal Languages diff --git a/Resources/Locale/en-US/chemistry/components/injector-component.ftl b/Resources/Locale/en-US/chemistry/components/injector-component.ftl index 24f524081e0d..0b7d485daf52 100644 --- a/Resources/Locale/en-US/chemistry/components/injector-component.ftl +++ b/Resources/Locale/en-US/chemistry/components/injector-component.ftl @@ -27,3 +27,4 @@ injector-component-drawing-user = You start drawing the needle. injector-component-injecting-user = You start injecting the needle. injector-component-drawing-target = {CAPITALIZE(THE($user))} is trying to use a needle to draw from you! injector-component-injecting-target = {CAPITALIZE(THE($user))} is trying to inject a needle into you! +injector-component-deny-chitinid = {CAPITALIZE(THE($target))}'s exoskeleton is too thick for the needle to pierce. diff --git a/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl b/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl index 22cc34b2714f..7602189d5cc4 100644 --- a/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl +++ b/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl @@ -15,3 +15,9 @@ chat-speech-verb-harpy-1 = chirps chat-speech-verb-harpy-2 = tweets chat-speech-verb-harpy-3 = caws chat-speech-verb-harpy-4 = trills + +chat-speech-verb-name-chitinid = Chitinid +chat-speech-verb-chitinid-1 = clicks +chat-speech-verb-chitinid-2 = chitters +chat-speech-verb-chitinid-3 = hisses +chat-speech-verb-chitinid-4 = buzzes diff --git a/Resources/Locale/en-US/deltav/markings/chitinid.ftl b/Resources/Locale/en-US/deltav/markings/chitinid.ftl new file mode 100644 index 000000000000..be5ae5896a71 --- /dev/null +++ b/Resources/Locale/en-US/deltav/markings/chitinid.ftl @@ -0,0 +1,164 @@ +marking-ChitinidAntennasDefault-default = Antennae +marking-ChitinidAntennasDefault = Antennae (Default) + +marking-ChitinidAntennasCurly-curly = Antennae +marking-ChitinidAntennasCurly = Antennae (Curly) + +marking-ChitinidAntennasGray-gray = Antennae +marking-ChitinidAntennasGray = Antennae (Gray) + +marking-ChitinidAntennasSlick-slick = Antennae +marking-ChitinidAntennasSlick = Antennae (Slick) + +marking-ChitinidAntennasShort-short = Antennae +marking-ChitinidAntennasShort = Antennae (short) + +marking-ChitinidAntennasLong-long = Antennae +marking-ChitinidAntennasLong = Antennae (Long) + +marking-ChitinidAntennasBee-bee = Antennae +marking-ChitinidAntennasBee = Antennae (Bee) + +marking-ChitinidAntennasFirefly-firefly_primary = Primary +marking-ChitinidAntennasFirefly-firefly_secondary = Secondary +marking-ChitinidAntennasFirefly = Antennae (Firefly) + +marking-ChitinidAntennasRadar-radar = Antennae +marking-ChitinidAntennasRadar = Antennae (Radar) + +marking-ChitinidAntennasSpeed-speed = Antennae +marking-ChitinidAntennasSpeed = Antennae (Speed) + + + +marking-ChitinidWingsDefault-default = Wing +marking-ChitinidWingsDefault = Tail (Default) + +marking-ChitinidWingsSmooth-smooth = Wing +marking-ChitinidWingsSmooth = Tail (Smooth) + +marking-ChitinidWingsHoneypot-honeypot_primary = Primary +marking-ChitinidWingsHoneypot-honeypot_secondary = Secondary +marking-ChitinidWingsHoneypot = Tail (Honeypot) + +marking-ChitinidWingsStubby-stubby = Wing +marking-ChitinidWingsStubby = Tail (Stubby) + +marking-ChitinidWingsBee-bee_primary = Primary +marking-ChitinidWingsBee-bee_secondary = Secondary +marking-ChitinidWingsBee = Tail (Bee) + +marking-ChitinidWingsFirefly-firefly_primary = Primary +marking-ChitinidWingsFirefly-firefly_secondary = Secondary +marking-ChitinidWingsFirefly = Tail (Firefly) + + + +marking-ChitinidChestCharred-charred_chest = Chest +marking-ChitinidChestCharred = Chitinid Chest (Charred) + +marking-ChitinidHeadCharred-charred_head = Head +marking-ChitinidHeadCharred = Chitinid Head (Charred) + +marking-ChitinidLLegCharred-charred_l_leg = Left Leg +marking-ChitinidLLegCharred = Chitinid Left Leg (Charred) + +marking-ChitinidRLegCharred-charred_r_leg = Right Leg +marking-ChitinidRLegCharred = Chitinid Right Leg (Charred) + +marking-ChitinidLArmCharred-charred_l_arm = Left Arm +marking-ChitinidLArmCharred = Chitinid Left Arm (Charred) + +marking-ChitinidRArmCharred-charred_r_arm = Right Arm +marking-ChitinidRArmCharred = Chitinid Right Arm (Charred) + + + +marking-ChitinidChestPlated-plated_chest = Chest +marking-ChitinidChestPlated = Chitinid Chest (Plated) + +marking-ChitinidLArmPlated-plated_l_arm = Left Arm +marking-ChitinidLArmPlated = Chitinid Left Arm (Plated) + +marking-ChitinidRArmPlated-plated_r_arm = Right Arm +marking-ChitinidRArmPlated = Chitinid Right Arm (Plated) + + + +marking-ChitinidChestStripes-stripes_chest = Chest +marking-ChitinidChestStripes = Chitinid Chest (Stripes) + +marking-ChitinidHeadStripes-stripes_head = Head +marking-ChitinidHeadStripes = Chitinid Head (Stripes) + +marking-ChitinidLLegStripes-stripes_l_leg = Left Leg +marking-ChitinidLLegStripes = Chitinid Left Leg (Stripes) + +marking-ChitinidRLegStripes-stripes_r_leg = Right Leg +marking-ChitinidRLegStripes = Chitinid Right Leg (Stripes) + +marking-ChitinidLArmStripes-stripes_l_arm = Left Arm +marking-ChitinidLArmStripes = Chitinid Left Arm (Stripes) + +marking-ChitinidRArmStripes-stripes_r_arm = Right Arm +marking-ChitinidRArmStripes = Chitinid Right Arm (Stripes) + + + +marking-ChitinidChestRadiant-radiant_chest = Chest +marking-ChitinidChestRadiant = Chitinid Chest (Radiant) + +marking-ChitinidHeadRadiant-radiant_head = Head +marking-ChitinidHeadRadiant = Chitinid Head (Radiant) + +marking-ChitinidLLegRadiant-radiant_l_leg = Left Leg +marking-ChitinidLLegRadiant = Chitinid Left Leg (Radiant) + +marking-ChitinidRLegRadiant-radiant_r_leg = Right Leg +marking-ChitinidRLegRadiant = Chitinid Right Leg (Radiant) + +marking-ChitinidLArmRadiant-radiant_l_arm = Left Arm +marking-ChitinidLArmRadiant = Chitinid Left Arm (Radiant) + +marking-ChitinidRArmRadiant-radiant_r_arm = Right Arm +marking-ChitinidRArmRadiant = Chitinid Right Arm (Radiant) + + + +marking-ChitinidChestToxic-toxic_chest = Chest +marking-ChitinidChestToxic = Chitinid Chest (Toxic) + +marking-ChitinidHeadToxic-toxic_head = Head +marking-ChitinidHeadToxic = Chitinid Head (Toxic) + +marking-ChitinidLLegToxic-toxic_l_leg = Left Leg +marking-ChitinidLLegToxic = Chitinid Left Leg (Toxic) + +marking-ChitinidRLegToxic-toxic_r_leg = Right Leg +marking-ChitinidRLegToxic = Chitinid Right Leg (Toxic) + +marking-ChitinidLArmToxic-toxic_l_arm = Left Arm +marking-ChitinidLArmToxic = Chitinid Left Arm (Toxic) + +marking-ChitinidRArmToxic-toxic_r_arm = Right Arm +marking-ChitinidRArmToxic = Chitinid Right Arm (Toxic) + + + +marking-ChitinidChestSpotted-spotted_chest = Chest +marking-ChitinidChestSpotted = Chitinid Chest (Spotted) + +marking-ChitinidHeadSpotted-spotted_head = Head +marking-ChitinidHeadSpotted = Chitinid Head (Spotted) + +marking-ChitinidLLegSpotted-spotted_l_leg = Left Leg +marking-ChitinidLLegSpotted = Chitinid Left Leg (Spotted) + +marking-ChitinidRLegSpotted-spotted_r_leg = Right Leg +marking-ChitinidRLegSpotted = Chitinid Right Leg (Spotted) + +marking-ChitinidLArmSpotted-spotted_l_arm = Left Arm +marking-ChitinidLArmSpotted = Chitinid Left Arm (Spotted) + +marking-ChitinidRArmSpotted-spotted_r_arm = Right Arm +marking-ChitinidRArmSpotted = Chitinid Right Arm (Spotted) diff --git a/Resources/Locale/en-US/deltav/species/species.ftl b/Resources/Locale/en-US/deltav/species/species.ftl index 83437bd651f0..9f3c8a5ffe86 100644 --- a/Resources/Locale/en-US/deltav/species/species.ftl +++ b/Resources/Locale/en-US/deltav/species/species.ftl @@ -2,3 +2,4 @@ species-name-vulpkanin = Vulpkanin species-name-harpy = Harpy +species-name-chitinid = Chitinid diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index fb3b1a1d0465..c3147678aae7 100644 --- a/Resources/Locale/en-US/language/languages.ftl +++ b/Resources/Locale/en-US/language/languages.ftl @@ -70,6 +70,11 @@ language-ValyrianStandard-description = It is rarely spoken outside of the worlds of its native speakers, and has in modern times been supplanted by the 'Conlangs of the Sol Alliance. Its speakers are those who wish to uphold the traditions and beliefs of ancient peoples from before the colonial era. +language-Chittin-name = Chittin +language-Chittin-description = + A language consisting of clicks, buzzes, and some variety of harsh insect sounds. + Most of what makes up their speech comes from their antennae, making it a near-impossible language for those without to learn. + # Animal Languages language-Cat-name = Cat diff --git a/Resources/Prototypes/DeltaV/Actions/types.yml b/Resources/Prototypes/DeltaV/Actions/types.yml new file mode 100644 index 000000000000..831763df5105 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Actions/types.yml @@ -0,0 +1,12 @@ +- type: entity + id: ActionChitzite + name: Cough Up Chitzite + description: Purge the excess radiation build-up from your body by expelling it as a mass of toxic material. + components: + - type: InstantAction + charges: 0 + enabled: false + maxCharges: 1 + icon: { sprite: DeltaV/Objects/Specific/Species/chitinid.rsi, state: chitzite } + useDelay: 300 + event: !type:ChitziteActionEvent \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Body/Organs/chitinid.yml b/Resources/Prototypes/DeltaV/Body/Organs/chitinid.yml new file mode 100644 index 000000000000..38a0e0b22191 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Organs/chitinid.yml @@ -0,0 +1,33 @@ +- type: entity + id: OrganChitinidStomach + parent: [OrganAnimalStomach, OrganHumanStomach] + name: stomach + description: "Gross. This is hard to stomach." + components: + - type: Organ # Shitmed Change + slotId: stomach # Shitmed Change + - type: Sprite + state: stomach + - type: Item + size: Small + heldPrefix: stomach + - type: SolutionContainerManager + solutions: + stomach: + maxVol: 50 + food: + maxVol: 5 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 + - type: Stomach + # The stomach metabolizes stuff like foods and drinks. + # TODO: Have it work off of the ent's solution container, and move this + # to intestines instead. + - type: Metabolizer + # mm yummy + maxReagents: 3 + metabolizerTypes: [Human] + groups: + - id: Food + - id: Drink diff --git a/Resources/Prototypes/DeltaV/Body/Parts/chitinid.yml b/Resources/Prototypes/DeltaV/Body/Parts/chitinid.yml new file mode 100644 index 000000000000..507ba70f487e --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Parts/chitinid.yml @@ -0,0 +1,112 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartChitinidBase + parent: [BaseItem, BasePart] + name: "Chitinid body part" + abstract: true + components: + - type: Sprite + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoChitinid + name: "chitinid torso" + parent: [PartChitinidBase, BaseTorso] + components: + - type: Sprite + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + + +- type: entity + id: HeadChitinid + name: "chitinid head" + parent: [PartChitinidBase, BaseHead] + components: + - type: Sprite + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmChitinid + name: "left chitinid arm" + parent: [PartChitinidBase, BaseLeftArm] + components: + - type: Sprite + state: "l_arm" + +- type: entity + id: RightArmChitinid + name: "right chitinid arm" + parent: [PartChitinidBase, BaseRightArm] + components: + - type: Sprite + state: "r_arm" + +- type: entity + id: LeftHandChitinid + name: "left chitinid hand" + parent: [PartChitinidBase, BaseLeftHand] + components: + - type: Sprite + state: "l_hand" + +- type: entity + id: RightHandChitinid + name: "right chitinid hand" + parent: [PartChitinidBase, BaseRightHand] + components: + - type: Sprite + state: "r_hand" + +- type: entity + id: LeftLegChitinid + name: "left chitinid leg" + parent: [PartChitinidBase, BaseLeftLeg] + components: + - type: Sprite + state: "l_leg" + +- type: entity + id: RightLegChitinid + name: "right chitinid leg" + parent: [PartChitinidBase, BaseRightLeg] + components: + - type: Sprite + state: "r_leg" + +- type: entity + id: LeftFootChitinid + name: "left chitinid foot" + parent: [PartChitinidBase, BaseLeftFoot] + components: + - type: Sprite + state: "l_foot" + +- type: entity + id: RightFootChitinid + name: "right chitinid foot" + parent: [PartChitinidBase, BaseRightFoot] + components: + - type: Sprite + state: "r_foot" diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/chitinid.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/chitinid.yml new file mode 100644 index 000000000000..18428a67a6c4 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/chitinid.yml @@ -0,0 +1,49 @@ +- type: body + id: Chitinid + name: "chitinid" + root: torso + slots: + head: + part: HeadChitinid + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganHumanEyes + torso: + part: TorsoChitinid + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganChitinidStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + connections: + - right arm + - left arm + - right leg + - left leg + right arm: + part: RightArmChitinid + connections: + - right hand + left arm: + part: LeftArmChitinid + connections: + - left hand + right hand: + part: RightHandChitinid + left hand: + part: LeftHandChitinid + right leg: + part: RightLegChitinid + connections: + - right foot + left leg: + part: LeftLegChitinid + connections: + - left foot + right foot: + part: RightFootChitinid + left foot: + part: LeftFootChitinid diff --git a/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml b/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml index b389378eb01d..2dbfe44d87f0 100644 --- a/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml +++ b/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml @@ -10,3 +10,12 @@ Blunt: 1.15 Slash: 1.15 Piercing: 1.15 + +- type: damageModifierSet + id: Chitinid + coefficients: + Blunt: 1.15 + Piercing: 1.25 + Slash: 0.9 + Cold: 1.1 + Radiation: 0.2 \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_female.yml b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_female.yml new file mode 100644 index 000000000000..be91ea315096 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_female.yml @@ -0,0 +1,34 @@ +- type: dataset + id: NamesChitinidFirstFemale + values: + - Amer'ix + - An'bela + - An'ora + - Aza'ran + - Be'riah + - Bel'os + - Da'lrah + - Di'azo + - E'nzo + - Em'era + - Fi'n'rah + - He'teka + - Ir'iska + - Ish'kar + - Isha'ba + - Jes'sri'ka + - Kalz'za + - Kaz'zek + - Lot'tikz + - Ral'zol + - Ri'isano + - Talzz'ark + - Tess'ara + - Tez'mal'zar + - Thri'kis + - Vani'si'kar + - Ve'rai + - Vish'ra + - Zan'ova + - Zen'ofi + - Zzer'ak diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_male.yml b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_male.yml new file mode 100644 index 000000000000..355f5cffb9bc --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_male.yml @@ -0,0 +1,36 @@ +- type: dataset + id: NamesChitinidFirstMale + values: + - Al'vos + - Amue'val + - Barma'tos + - Ben'idar + - Bil'verrok + - Crik'xis + - Daru'nta + - Dee'aldas + - Drx'var + - Hen'sra + - Hux'von + - Ilv'imon + - Is'irax + - Ish'nax + - Jax'zaril'va + - L'ofa + - Lo'zok + - Lu'vurx + - Luc'irax + - Mer'tex + - Od'dalis + - Si'ley + - Sim'sker + - Tal'vos + - Ti'ril + - Vir'lker + - Vir'muel + - Vix'vol + - Von'draz + - Vu'lta'voss + - Xixa'ba + - Yarr'wat + - Zay'zz diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/chitinid.yml new file mode 100644 index 000000000000..a8644a4e0790 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/chitinid.yml @@ -0,0 +1,458 @@ +# Antennas +- type: marking + id: ChitinidAntennasDefault + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: default + +- type: marking + id: ChitinidAntennasCurly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: curly + +- type: marking + id: ChitinidAntennasGray + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: gray + +- type: marking + id: ChitinidAntennasSlick + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: slick + +- type: marking + id: ChitinidAntennasLong + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: long + +- type: marking + id: ChitinidAntennasBee + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: bee + +- type: marking + id: ChitinidAntennasShort + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: short + +- type: marking + id: ChitinidAntennasFirefly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: firefly_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: firefly_secondary + +- type: marking + id: ChitinidAntennasRadar + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: radar + +- type: marking + id: ChitinidAntennasSpeed + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: speed + + +# Wings +- type: marking + id: ChitinidWingsDefault + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: default + +- type: marking + id: ChitinidWingsSmooth + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: smooth + +- type: marking + id: ChitinidWingsHoneypot + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: honeypot_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: honeypot_secondary + +- type: marking + id: ChitinidWingsStubby + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: stubby + +- type: marking + id: ChitinidWingsBee + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: bee_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: bee_secondary + +- type: marking + id: ChitinidWingsFirefly + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: firefly_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: firefly_secondary + +# Body markings: +# Charred +- type: marking + id: ChitinidChestCharred + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_chest + +- type: marking + id: ChitinidHeadCharred + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_head + +- type: marking + id: ChitinidLLegCharred + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_l_leg + +- type: marking + id: ChitinidRLegCharred + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_r_leg + +- type: marking + id: ChitinidLArmCharred + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_l_arm + +- type: marking + id: ChitinidRArmCharred + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_r_arm + +# Plated +- type: marking + id: ChitinidChestPlated + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: plated_chest + +- type: marking + id: ChitinidLArmPlated + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: plated_l_arm + +- type: marking + id: ChitinidRArmPlated + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: plated_r_arm + +# Stripes +- type: marking + id: ChitinidChestStripes + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_chest + +- type: marking + id: ChitinidHeadStripes + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_head + +- type: marking + id: ChitinidLLegStripes + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_l_leg + +- type: marking + id: ChitinidRLegStripes + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_r_leg + +- type: marking + id: ChitinidLArmStripes + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_l_arm + +- type: marking + id: ChitinidRArmStripes + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_r_arm + +# Radiant +- type: marking + id: ChitinidChestRadiant + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_chest + +- type: marking + id: ChitinidHeadRadiant + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_head + +- type: marking + id: ChitinidLLegRadiant + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_l_leg + +- type: marking + id: ChitinidRLegRadiant + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_r_leg + +- type: marking + id: ChitinidLArmRadiant + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_l_arm + +- type: marking + id: ChitinidRArmRadiant + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_r_arm + +# Toxic +- type: marking + id: ChitinidChestToxic + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_chest + +- type: marking + id: ChitinidHeadToxic + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_head + +- type: marking + id: ChitinidLLegToxic + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_l_leg + +- type: marking + id: ChitinidRLegToxic + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_r_leg + +- type: marking + id: ChitinidLArmToxic + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_l_arm + +- type: marking + id: ChitinidRArmToxic + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_r_arm + +# Spotted +- type: marking + id: ChitinidChestSpotted + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_chest + +- type: marking + id: ChitinidHeadSpotted + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_head + +- type: marking + id: ChitinidLLegSpotted + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_l_leg + +- type: marking + id: ChitinidRLegSpotted + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_r_leg + +- type: marking + id: ChitinidLArmSpotted + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_l_arm + +- type: marking + id: ChitinidRArmSpotted + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_r_arm diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/chitinid.yml new file mode 100644 index 000000000000..4c8a78473152 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/chitinid.yml @@ -0,0 +1,5 @@ +- type: entity + save: false + name: Urist McAnt + parent: BaseMobChitinid + id: MobChitinid diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml new file mode 100644 index 000000000000..2dfd11018442 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml @@ -0,0 +1,169 @@ +- type: entity + save: false + name: Urist McAnt + parent: BaseMobSpeciesOrganic + id: BaseMobChitinid + abstract: true + components: + - type: HumanoidAppearance + species: Chitinid + hideLayersOnEquip: + - HeadTop + + - type: Hunger + baseDecayRate: 0.0467 #needs to eat more to survive + - type: Thirst + + - type: UnpoweredFlashlight + - type: PointLight + enabled: false + radius: 3 + softness: 5 + color: "#2CFA1F" + autoRot: true + + - type: Carriable + + - type: Icon + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: full + + - type: Body + prototype: Chitinid + requiredLegs: 2 + + - type: Damageable + damageContainer: Biological + damageModifierSet: Chitinid + + - type: Speech + speechVerb: Chitinid + allowedEmotes: ['Chitter', 'Click', 'Hiss'] + + - type: MeleeWeapon + animation: WeaponArcBite + soundHit: + path: /Audio/Effects/bite.ogg + damage: + types: + Piercing: 5 + + + - type: TypingIndicator + proto: Chitinid + + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeat + amount: 5 + + - type: Bloodstream + bloodReagent: InsectBlood + + - type: DamageVisuals + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#808A51" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + + - type: Vocal + sounds: + Male: UnisexChitinid + Female: UnisexChitinid + Unsexed: UnisexChitinid + + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.42 + density: 220 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + + - type: Temperature # Ants hate the cold + heatDamageThreshold: 320 + coldDamageThreshold: 230 + currentTemperature: 310.15 + specificHeat: 46 + coldDamage: + types: + Cold : 1.25 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 1.0 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 289: 0.6 + 275: 0.4 + 250: 0.3 + + - type: Sprite # sprite again because we want different layer ordering + noRot: true + drawdepth: Mobs + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - map: [ "jumpsuit" ] + - map: [ "enum.HumanoidVisualLayers.LHand" ] + - map: [ "enum.HumanoidVisualLayers.RHand" ] + - map: [ "enum.HumanoidVisualLayers.LFoot" ] + - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "id" ] + - map: [ "back" ] + - map: [ "neck" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] #in the utopian future we should probably have a wings enum inserted here so everyhting doesn't break + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_moth" + visible: false + - type: Chitinid + - type: BlockInjection + blockReason: chitinid + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Chittin + understands: + - TauCetiBasic + - Chittin + +- type: entity + parent: BaseSpeciesDummy + id: MobChitinidDummy + categories: [ HideSpawnMenu ] + components: + - type: HumanoidAppearance + species: Chitinid diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/chitinid.yml new file mode 100644 index 000000000000..1e66d4295c03 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/chitinid.yml @@ -0,0 +1,33 @@ +- type: entity + parent: BaseItem + id: Chitzite + name: chitzite + description: A small radioactive stone formed in the chest cavity of a radioactive chitinid, gross.... but kinda pretty? + components: + - type: Sprite + sprite: DeltaV/Objects/Specific/Species/chitinid.rsi + layers: + - state: chitzite + - state: chitzite_glow + - type: RadiationSource + intensity: 0.5 + - type: Extractable + grindableSolutionName: chitzite + - type: SolutionContainerManager + solutions: + chitzite: + maxVol: 5 + reagents: + - ReagentId: Uranium + Quantity: 2.5 + - ReagentId: Radium + Quantity: 2.5 + - type: MeleeWeapon + damage: + types: + Blunt: 3 + Radiation: 3 + - type: Tag + tags: + - Recyclable + - Trash diff --git a/Resources/Prototypes/DeltaV/Guidebook/species.yml b/Resources/Prototypes/DeltaV/Guidebook/species.yml new file mode 100644 index 000000000000..d64204e0a76f --- /dev/null +++ b/Resources/Prototypes/DeltaV/Guidebook/species.yml @@ -0,0 +1,4 @@ +- type: guideEntry + id: Chitinid + name: species-name-chitinid + text: "/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml" \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Species/chitinid.yml b/Resources/Prototypes/DeltaV/Species/chitinid.yml new file mode 100644 index 000000000000..6fa19aa9feac --- /dev/null +++ b/Resources/Prototypes/DeltaV/Species/chitinid.yml @@ -0,0 +1,165 @@ +- type: species + id: Chitinid + name: species-name-chitinid + roundStart: true + prototype: MobChitinid + sprites: MobChitinidSprites + defaultSkinTone: "#ffda93" + markingLimits: MobChitinidMarkingLimits + dollPrototype: MobChitinidDummy + skinColoration: Hues + maleFirstNames: NamesChitinidFirstMale + femaleFirstNames: NamesChitinidFirstFemale + naming: First + +- type: speciesBaseSprites + id: MobChitinidSprites + sprites: + Head: MobChitinidHead + Snout: MobHumanoidAnyMarking + Chest: MobChitinidTorso + HeadTop: MobHumanoidAnyMarking + HeadSide: MobHumanoidAnyMarking + Tail: MobHumanoidAnyMarking + Eyes: MobChitinidEyes + LArm: MobChitinidLArm + RArm: MobChitinidRArm + LHand: MobChitinidLHand + RHand: MobChitinidRHand + LLeg: MobChitinidLLeg + RLeg: MobChitinidRLeg + LFoot: MobChitinidLFoot + RFoot: MobChitinidRFoot + +- type: humanoidBaseSprite + id: MobChitinidEyes + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: eyes + +- type: markingPoints + id: MobChitinidMarkingLimits + onlyWhitelisted: true + points: + Hair: + points: 0 + required: false + FacialHair: + points: 0 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ ChitinidWingsDefault ] + Snout: + points: 1 + required: false + HeadTop: + points: 1 + required: true + defaultMarkings: [ ChitinidAntennasDefault ] + HeadSide: + points: 1 + required: false + Head: + points: 1 + required: false + Chest: + points: 1 + required: false + LeftLeg: + points: 2 + required: false + RightLeg: + points: 2 + required: false + LeftArm: + points: 2 + required: false + RightArm: + points: 2 + required: false + +- type: humanoidBaseSprite + id: MobChitinidHead + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobChitinidHeadMale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobChitinidHeadFemale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobChitinidTorso + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobChitinidTorsoMale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobChitinidTorsoFemale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobChitinidLLeg + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobChitinidLHand + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobChitinidLArm + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobChitinidLFoot + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobChitinidRLeg + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobChitinidRHand + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobChitinidRArm + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobChitinidRFoot + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml b/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml index dc725b547e01..18f4258ba7f2 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml @@ -154,3 +154,31 @@ collection: VulpkaninWhines Howl: collection: VulpkaninHowls + +- type: emoteSounds + id: UnisexChitinid + params: + variation: 0.125 + sounds: + Buzz: + path: /Audio/DeltaV/Voice/Chitinid/moth_scream.ogg + Scream: + path: /Audio/Voice/Arachnid/arachnid_scream.ogg + Laugh: + path: /Audio/DeltaV/Voice/Chitinid/moth_laugh.ogg + Chitter: + path: /Audio/Voice/Arachnid/arachnid_chitter.ogg + Click: + path: /Audio/Voice/Arachnid/arachnid_click.ogg + Crying: + collection: FemaleCry + Weh: + collection: Weh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + Yawn: + collection: MaleYawn + Hiss: + path: /Audio/Animals/snake_hiss.ogg \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml b/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml index 89db03d2fcc6..0d6a3b7e0eaf 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml @@ -15,3 +15,12 @@ path: /Audio/DeltaV/Voice/Harpy/chirp1.ogg exclaimSound: path: /Audio/DeltaV/Voice/Harpy/chirp1.ogg + +- type: speechSounds + id: Chitinid + saySound: + path: /Audio/Voice/Talk/speak_1.ogg + askSound: + path: /Audio/Voice/Talk/speak_1_ask.ogg + exclaimSound: + path: /Audio/Voice/Talk/speak_1_exclaim.ogg \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml b/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml index 26156fb82db5..61750216b635 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml @@ -24,3 +24,12 @@ - chat-speech-verb-harpy-2 - chat-speech-verb-harpy-3 - chat-speech-verb-harpy-4 + +- type: speechVerb + id: Chitinid + name: chat-speech-verb-name-chitinid + speechVerbStrings: + - chat-speech-verb-chitinid-1 + - chat-speech-verb-chitinid-2 + - chat-speech-verb-chitinid-3 + - chat-speech-verb-chitinid-4 \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/typing_indicator.yml b/Resources/Prototypes/DeltaV/typing_indicator.yml index 7cfca9cc95f5..e36394581de4 100644 --- a/Resources/Prototypes/DeltaV/typing_indicator.yml +++ b/Resources/Prototypes/DeltaV/typing_indicator.yml @@ -4,3 +4,14 @@ typingState: felinid0 offset: 0, 0.2 # 0625 +- type: typingIndicator + id: rodentia + spritePath: /Textures/DeltaV/Effects/speech.rsi + typingState: rodentia0 + offset: 0, 0.2 # 0625 + +- type: typingIndicator + id: Chitinid + spritePath: /Textures/DeltaV/Effects/speech.rsi + typingState: chitinid0 + offset: -0.2, 0.1 # 0625 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml index c304e9c53140..7ecca4c59ad8 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml @@ -298,7 +298,7 @@ id: GauzeMothBlindfold bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -312,7 +312,7 @@ id: GauzeMothShoulder bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -326,7 +326,7 @@ id: GauzeMothStomach bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -340,7 +340,7 @@ id: GauzeMothLeftEyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -354,7 +354,7 @@ id: GauzeMothLeftEyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -368,7 +368,7 @@ id: GauzeMothRightEyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -382,7 +382,7 @@ id: GauzeMothRightEyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -396,7 +396,7 @@ id: GauzeMothUpperArmRight bodyPart: RArm markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -410,7 +410,7 @@ id: GauzeMothUpperArmLeft bodyPart: LArm markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -424,7 +424,7 @@ id: GauzeMothUpperLegRight bodyPart: RLeg markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -438,7 +438,7 @@ id: GauzeMothUpperLegLeft bodyPart: LLeg markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -452,7 +452,7 @@ id: GauzeMothLowerLegRight bodyPart: RFoot markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -466,7 +466,7 @@ id: GauzeMothLowerLegLeft bodyPart: LFoot markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index bb27e46ba472..b799482b5d0d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -312,6 +312,11 @@ heatDamage: types: Heat: 1.5 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 293: 0.8 + 280: 0.6 + 260: 0.4 - type: ThermalRegulator metabolismHeat: 800 radiatedHeat: 100 diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index 721724460cb6..86d8872e3ca8 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -68,6 +68,11 @@ heatDamage: types: Heat : 3 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 289: 0.8 + 275: 0.6 + 250: 0.4 - type: Sprite # sprite again because we want different layer ordering noRot: true drawdepth: Mobs diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index 49716a058039..1564fc78ecf7 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -58,6 +58,11 @@ heatDamage: types: Heat : 1.5 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 301: 0.8 + 295: 0.6 + 285: 0.4 - type: Wagging - type: LanguageKnowledge speaks: diff --git a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml index 97e244798b96..c5a2e1954d95 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml @@ -156,3 +156,18 @@ - Azaziba requires: - Draconic + +- type: entity + parent: BaseSubdermalImplant + id: ChittinTranslatorImplant + name: chittin translator implant + description: An implant giving the ability to understand and speak Chittin. + categories: [ HideSpawnMenu ] + components: + - type: TranslatorImplant + understood: + - Chittin + spoken: + - Chittin + requires: + - TauCetiBasic \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/translators.yml b/Resources/Prototypes/Entities/Objects/Devices/translators.yml index a1500ea6896c..b6d2ade7d7af 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translators.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translators.yml @@ -253,4 +253,21 @@ - Azaziba requires: - Draconic - - Azaziba \ No newline at end of file + - Azaziba + +- type: entity + id: ChittinTranslator + parent: [ TranslatorPoweredBase ] + name: Chittin translator + description: Translates speech between Chittin and Tau-Ceti Basic. For talking to Chitinids! + components: + - type: HandheldTranslator + spoken: + - TauCetiBasic + - Chittin + understood: + - TauCetiBasic + - Chittin + requires: + - TauCetiBasic + - Chittin \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml index 53da8e72a570..3a2113f9ba33 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml @@ -90,4 +90,12 @@ name: azaziba translator implant components: - type: Implanter - implant: AzazibaTranslatorImplant \ No newline at end of file + implant: AzazibaTranslatorImplant + +- type: entity + id: ChittinTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: chittin translator implant + components: + - type: Implanter + implant: ChittinTranslatorImplant \ No newline at end of file diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index f7b77b7ec6fa..41f668342650 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -13,6 +13,7 @@ - IPCs - Harpy - Shadowkin + - Chitinid - type: guideEntry id: Arachnid @@ -54,12 +55,12 @@ name: species-name-ipc text: "/ServerInfo/Guidebook/Mobs/IPCs.xml" -- type: guideEntry - id: Harpy - name: species-name-harpy - text: "/ServerInfo/Guidebook/Mobs/Harpy.xml" - - type: guideEntry id: Shadowkin name: species-name-shadowkin text: "/ServerInfo/Guidebook/Mobs/Shadowkin.xml" + +- type: guideEntry + id: Harpy + name: species-name-harpy + text: "/ServerInfo/Guidebook/Mobs/Harpy.xml" \ No newline at end of file diff --git a/Resources/Prototypes/Language/Species-Specific/chittin.yml b/Resources/Prototypes/Language/Species-Specific/chittin.yml new file mode 100644 index 000000000000..e6de43d5a3ca --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/chittin.yml @@ -0,0 +1,16 @@ +# Spoken by Chitinids. +- type: language + id: Chittin + isVisibleLanguage: true + speech: + color: "#7d7d7d" + fontId: Only_You + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 # Replacements are really short + maxSyllables: 2 + replacement: + - click + - clack + - buzz + - bizz \ No newline at end of file diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml index d158862d38ba..cc342f7b1bf7 100644 --- a/Resources/Prototypes/Species/species_weights.yml +++ b/Resources/Prototypes/Species/species_weights.yml @@ -10,3 +10,4 @@ Vulpkanin: 4 # DeltaV - Vulpkanin, see Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml Diona: 2 Shadowkin: 0 + Chitinid: 3 # DeltaV - Chitinid, see Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml diff --git a/Resources/Prototypes/fonts.yml b/Resources/Prototypes/fonts.yml index c61a5fb8041d..a881cde95533 100644 --- a/Resources/Prototypes/fonts.yml +++ b/Resources/Prototypes/fonts.yml @@ -69,3 +69,7 @@ - type: font id: Cambria path: /Fonts/Cambria.ttf + +- type: font + id: OnlyYou + path: /Fonts/Only_You.otf \ No newline at end of file diff --git a/Resources/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml b/Resources/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml new file mode 100644 index 000000000000..29dde13c0f72 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml @@ -0,0 +1,28 @@ + + # Chitinid + + + + + + An industrious worker drone species, the Chitinid are strong diligent workers. Thanks to their homeworld's enviroment, they have grown an acute resistance to radiation, but not without its side effects. + + ## Diet + - Nothing special. + + ## Benefits + - Takes 80% less Radiation, 10% less Slash. + - Their bodies naturally recover from light radiation damage up to a point, once they accumulate enough radiation they must purge it from their systems in the form of a small rock. + - Due to their worker drone nature they are Better at pulling and carrying things. + - Due to their radioactive homeworld they possess a bio light. + + ## Drawbacks + - Built for work rather than combat their hard shells are weaker to Blunt and piercing damage, they take 25% more piercing and 15% more Blunt damage. + - Due to their hard shells normal syringes can not pierce them, requiring hypos to bypass the toughness. + - Thanks to their overactive systems they get hungry 33% faster. + - The cold does not agree with their biology and makes their movement sluggish, the cold also harms them more than others. + - They are deceptivly heavy due to their lifestyle and diet. + - The Chitzite they expel is slightly radioactive. + - Bug Blood. + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Species.xml b/Resources/ServerInfo/Guidebook/Mobs/Species.xml index cb74fd50c941..261fc666f199 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Species.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Species.xml @@ -13,6 +13,7 @@ + # Parkstation specific species diff --git a/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid0.png b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid0.png new file mode 100644 index 0000000000000000000000000000000000000000..dc37e2d63bdb3537452e55e79d522a8819cf2fc2 GIT binary patch literal 775 zcmV+i1Ni)jP)aTcuJf1$7W{$WXjR{3V#@vkQP<%#=zUtaLCdbAx!AIBMus*1C`QlCWy7^q z`?R&$8E<+x1@ynV?&l;B+y@$U*Znw!cDqn)@cb-qxbWKx7BFylHF7 z0dTboj6GX2mzz?6(ywX2#|1D{07mYC(7Ly));Z3ffc!T7qC4R52$-V&$i^S#6=(h- z^0uA;000SaNLh0L01FZT01FZU(%pXi0003#Nklo{Yk%8BhN0;btCmw>b-$YruxGH zxRhnNd)B$Cs&l9gn$BD6ucnGeM$|Ghg{AXa`kT2g^hO3lygVu__iS$c^#VhVT?v;y zx0As+GyTmQ#??`9Qdt4PF*E%*26Q92eG!DT_Ww8NJ0HYbIfnY;<09=|OM8lbZX3p8 zKqKevUPii54s>4jayP@Ll)kjPoUv!^z65bDHQ2Ydeh}1VBQdgGYx%$NT`gN41XB0f zdb#@p00000000000NfxyU?@(0zzfI^_=o&}{{MXHKfOhMK+29>`b)Ne%e(?UqECK6 zYykNI_p_J$0Bgt((0^yPK9r@1E~)@40|KsWZdwhyjM_@Kho$t!CGx z;5&Ti!7!%KB{SPvN-t*6Hhvzdn&KfUdbO`>8GSj`W`M7oc$Qh*A)Y5rZaJ3VJ>nr& zkaNT*#1T#hB)%28;_;i{yvJXHc_y_0_(e}C-^5B2vjR7WCyB#`USjq0h?|5|b0tlA zl-3w*q>w-y5)_oM2^|iiluephYhSG9TSk#QjQ$qN;N-}oK;8(cCF-hD)<{?B(@_?4 z|36P#o0;~yhvGoztLuJ_1HpZuT5;XqQ`fDY0f86b+HClXG^e?5(kl%ud<+ci0GBrn zO*sIrc7c&+OXhM-3efUv8t`!e^k;#=d!TpSn^k=u=TAUpo1W+nI6ML-sD5DM58Ux* z`YQX7ga7~l32;bRa{vGf5&!@T5&_cPe*6Fc0J2F$K~z}7?Ud08gFp<1Q|Ytov;$Zt zxv_4Nl)mdaE^v*KLV9?%#S2vUKL`mqHGdM7=qRL=T%LPc$qgo+)VJ!d-U5aY!liU^ zjPW6^^Ahk@T#7ATa=D06C)2wMutIVXn!jtfOGvYISSqfQxy>da?-6kR^#-#7sxbk( zg1M9S!%J9o|2ZthlYWLTV{3ZOHH)sTpwuCIblv>hAD1^eWv?mF7vp9E0000008Tss XD&{=cxq5k@00000NkvXXu0mjftK}NC literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid2.png b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid2.png new file mode 100644 index 0000000000000000000000000000000000000000..91bcf88fe5eec28c13c1764f3979ca0bb0239954 GIT binary patch literal 637 zcmV-@0)qXCP)9r@1E~)@40|KsWZdwhyjM_@Kho$t!CGx z;5&Ti!7!%KB{SPvN-t*6Hhvzdn&KfUdbO`>8GSj`W`M7oc$Qh*A)Y5rZaJ3VJ>nr& zkaNT*#1T#hB)%28;_;i{yvJXHc_y_0_(e}C-^5B2vjR7WCyB#`USjq0h?|5|b0tlA zl-3w*q>w-y5)_oM2^|iiluephYhSG9TSk#QjQ$qN;N-}oK;8(cCF-hD)<{?B(@_?4 z|36P#o0;~yhvGoztLuJ_1HpZuT5;XqQ`fDY0f86b+HClXG^e?5(kl%ud<+ci0GBrn zO*sIrc7c&+OXhM-3efUv8t`!e^k;#=d!TpSn^k=u=TAUpo1W+nI6ML-sD5DM58Ux* z`YQX7ga7~l32;bRa{vGf5&!@T5&_cPe*6Fc0J2F$K~z}7V_+C6;Q#;sG%=SEi`WSy z_9rOK2c<1&?SK<0DJkZ-6wjG6XD^U)p{4_v@L3MD5JfRi-WeJ~yQt*=7E(3990_zB z%n@$XiUPdBk0)AoQ{o5~0)~Tpj4pN(DRELY1VBN`M<5ZxEO(ly9o7>Ee&T@0gO6pVsVFbYP&C>RB!fJOiS X38^?{kaRH000000NkvXXu0mjfP%I3l literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json b/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json index 1d4b09fbffef..d91b201f0b8a 100644 --- a/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json +++ b/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json @@ -23,6 +23,23 @@ }, { "name": "felinid2" + }, + { + "name": "chitinid0", + "delays": [ + [ + 0.2, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "chitinid1" + }, + { + "name": "chitinid2" } ] } diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/bee.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5faa4aa25900b242fa115f25376e569a4a771b GIT binary patch literal 716 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 Vkd07k;)MVJ002ovPDHLkV1nemJ}CeI literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/long.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/long.png new file mode 100644 index 0000000000000000000000000000000000000000..9ff75a10104ac0fef0dc3b49ca26b766f5b8cdb8 GIT binary patch literal 634 zcmV-=0)_pFP)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|ut`KgRCwC$+A#{kKoAAc#oKttbapl# z!A7tX1dkx*5Q2D<$OHmbfrQN_#`l`ADe`Bh{Yhzr`f+di&Qr^oze#^?)B@hGXS!W4 z?bhQN=aO>f4_-i3Rofx&bDKNAb=dEkzVq7i0RR91003akqI`@VzVyEULv-_HFG{~Z z7aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|=Sf6CRCwC$+OZ9TFc5`d(@-%29V5_F zc@S1$5>{XkDtbns^9WQlBzKBYqJTmahY02W8e{43S+=Mi#^Aq2uL{bte3&;)6QuSO z2herh?4SF-*D=p?QxrwCR(oILt<~;zME_lzyWXsBB+D|LCrM(es#@Ny>v|r?QJ;rl z@V6g@x}{(D2LJ#700000003})K?6idXq|J*JWW$GO_TPp*1ok?+qOE!as0IACyDb{ z4!}p#KB1L$C8Z7Ze}MdVa7%_YC6;t}D<(gjMAJULK9cm5-h9LW00000000000QR^5 X4BBa&z@Hez00000NkvXXu0mjfke@YJ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/short.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/short.png new file mode 100644 index 0000000000000000000000000000000000000000..1dde872b7854e1105360b5c3c91f9fd24d311644 GIT binary patch literal 671 zcmV;Q0$}}#P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|)k#D_RCwC$+OZ9TFc3gdgEAAtjgUTp{{mQbmTk)o8tjqjWRoQRiOX4G& zhhbQ4f~*KTtV{f;+mX%VII4M`7h`SPs%e^>Hef4%UDwX@KP5?G(=>gX zf?UhGkI(Sx`~Uy|00000006*0$@AR)N=@;Zo3z%dD2ia3Ahk$M-Wu=_8DoN({;QVA zYf?Fq&a&+Cw?Jz6JTCVpgfn^m3jhEB000000001XxdV7vZj~d=@Sgwx002ovPDHLk FV1oQDFbDtu literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/slick.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/slick.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e856667cdba877cc9e0704e428fcb13e6cf4f7 GIT binary patch literal 656 zcmV;B0&o3^P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|#z{m$RCwC$+QA8gFc5{|WD5vbgC&>- zEXpc!wGLab0aJoC1k!-Z3#`{Qtmq>D2VtCm%tVh9V}L62Ja1ax_MTe5n5JnjsHptP zpKxaVSM3WSgl%0{)AzkquBcr5R~-KC`Tzg`000000000UZXCxg##q+B_W0>fy&iqX z))vte)_Y%`opU92U1#q)uwu@+aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|(==6Cmg%M1c}=iXyVVi%Z(7{_X8l5vB=LP?j4Fy^`nN30vG04|?z%4A zzTWGW&Ym9t000000000004{GeL9OfBr?OELDd*fY9>?)lvG*@XJpR1KVHkWn&vX6J z0nAB69pY&r5%sIA{^*U%yMPdn3yH`NiO1zoB%42L^D=jMI{*Lx000000001B)eVL; VX`ERbWZ(b*002ovPDHLkV1lX`IG6wc literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..8981bd797e8020bbfa72c4839eca7eb10d939c6a GIT binary patch literal 1631 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 JtaD0e0sv8Pd#3;Z literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..5be58a196c58ac9c162835812e6e4f46a039994b GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!8UuVnT-^(NEWkipTU!tYWMpK3 zVnCjOfdP;KB!O%V4GoAOP$iHJ1VCjFmAbmRKm{TqB0xc7V`D`{MIaj}2$Y2=1Ij|g zm6er&vTAB-Kv^IID9h(-zYFLX?UEqBUs7 zIQyWPzg}FiMc~nF6=~ms*Vm8tY*-@o_*$@GL+*@+Tb3yLM4uMfp0r&_BV25LQni9c zxUOC7YL3;xHM^!TdLW%)fyZ}1b zyd=mkn4vU1*2L9AG1o43nVa&AB9#gydt(>JX6L$6!z`!dY4dUuf`a-}y-R|#Q#}$h zr>17)#;17I$Ibu#3}{5Rr;B5Vgyh?U?qW?20uBfHo0=OepU)}Y^Z()<{@D+|o=Oj2 zIAv2wVYp(p(c##we#a78tk<{ZTAA!vE!n&@pXc4FV+oS%PcCw7_|o;{qE6E5mL1xy zDO(G}oivwTk@tvuZOL@<`ClD{g0E)gDtyQ9%6583RVZxq_m6gY^rFW@#??+~^-&>7 d`K5K2#cRH^x$iY*v;aDb!PC{xWt~$(69Boxg;xLo literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..0ebd96c5dd8dcbc8225a1767a9d9bad3992440bc GIT binary patch literal 387 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_head.png new file mode 100644 index 0000000000000000000000000000000000000000..5a19d265775b92dfa843b4ad39589a4483d5d325 GIT binary patch literal 557 zcmV+|0@D47P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|V@X6oRCwC$*|814APfXRScC!TnSx1J zi$#cN(g!I)3U|Hzmh8?U030l?7S>uvN-6Z-Ln$SGJ^1eYdx)Le+no;p000000Kjo_ v&f||+kF?gtn?L*6duBK{000000DuJ-2SpaTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|_DMuRRCwC$+A#`)Fcik|G;|hMaq~zX z!$Wurui+WoJc)?lE>4!OU~wzr3pDos1HmO9F(%L9=^Ow6000yrmm7~0<7GRpDXm+a)vHg=Iae1D*x~?zn0*zPBvMj-lf%yWIW%=m3?tMSc^QEkP zyz-PwVU1x2^nJfsPc~#B^ww`l1#lck^NEJ41K#@l55r(m0FQ;RD2iZp!2Ag8pTMgH z@K^}fbv4Ta0000000000|LYbVSGCOc-l5uZXF5pFJ1l@6I!)8h{Tcoa3!rwK+Go0A m`a8v3RaKh<00000;Hww-|9KOjM|k4^0000aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|v`IukRCwC$+A#`*Fc1aM=mo4jmk0AC zUPG|)5H@0KAr^v5gzXn~WwX53Ose@|l5#=-000000N`^?)9iiU@3DS6r)}F?bMm_y zt?QcP<6Ry=UDtb26rt<7P*qj-&CACAF(>B5+@Bc0JkMd?+2enOt|0Nx7|%d&)F7*6%bQ~$zO7bcP)fQ5;R YUVH*%{Z-2@x&QzG07*qoM6N<$f~f~4asU7T literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..72dfcfde064c7b058592e6269ea9f98883553a25 GIT binary patch literal 702 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..a83a50ec9799fb185cc77f0c28037a55812dfaf9 GIT binary patch literal 520 zcmV+j0{8uiP)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|K1oDDRCwC$*f9+N00;vx#LmA3aKKM! z6)f3!r~&{0SR`pVF@2eF4)SSUUH||9008*K?_Kj)0RR91aMA#7y%*Zx$|-RG0000< KMNUMnLSTX#b>a>H literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..27e6854260f94e899596adfe9490d754123edafd GIT binary patch literal 537 zcmV+!0_OdRP)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|Pf0{URCwC$+Pe(^AP5COq$s}>d_hi00000z(Q4x6Z?vYVLE)eZl|6l00000008ii+k?rzQ=FMn*>8DC b0bVcx$z2j!Pp_AV00000NkvXXu0mjfqs{Eg literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..29b41970dce883e15c5a944c89304a7076063236 GIT binary patch literal 656 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 AR{#J2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..e149af3795ff287f77b915648caa57ce41acc721 GIT binary patch literal 568 zcmV-80>}M{P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|Zb?KzRCwC$+OZLUAPfLNbOkn{XDa4k z7j|GKYCXNPveF8@|0XGtyCii&00000007{wl(Mzfwj=&!uJuWAN-4w`&p4A==K=r# z00000fJrQGnvO?=ob#FY-b1Z*`RW1IH%-?=!WiSz%LDABh#sW!Bf*0J0000aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy}t4TybRCwC$nq7`WKoG}~xrIYWTtebe z;s%~vLR`X=8%R7lhQuM9!)|S+Hod*9MR&E``TvqhYl^Ba^&yPs0RR910D#xTKO)>T z%|hcij$YfgKF!Or^oycc;yC`0p}8$%Sr6;q+izUCx=o8$$2B>dc2rfh@Xxy5uIs*B zoRx0Pb$OGJE{;SsGIblQIbchXy5FV)^u_P(-{bKcp*+uhUSM60000000000005BsCb)))m!XfV7f92Th9wL`PwEvpEqtD5FNz|!URSpzBSF=* zWsh|y=*s%O7juBFYt0^!6yQ5SX^>@^*cYN<7<_WV`*@!exI-Znx5s4%Fl9q<<>Y4v zaEfyqB#YmjbUQc1l+IIKKrJ>-9!3-=Ow;r^m;SE;00000z@O#~W%@X-8}MZX00000 LNkvXXu0mjfQSF{> literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_head.png new file mode 100644 index 0000000000000000000000000000000000000000..d3400bf0e1d00f604f6c9dcae9c7ff3cc27c02d2 GIT binary patch literal 743 zcmV?P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy}9Z5t%RCwC$*+GhfFcg4cQ+ftnh?nvV zuJjP%A#~*p1drk+#Dy-sK*xkpM4H-!i5=+wLC_>M@5M+r&+`BPz&o0zQSH_Ir{bUG zrgJm-@ia}URaK>(cS#pt_SZR6!t{Z%EFViC5d?wir)j#4XIUm(e}%{R(m0Nu@B3Eq zZ>A6Y26@P!UDv6xJkKxL{ImG-D*Lwat&^6UUhj*d5Lf>neL6k>000000002McWB%8 zJ9Db*TDAYmCO@O%Xy5mzr{MA=-dX=F$D_Mx67xK3=i)ftP9jN?KR?}deVg2LjH{|^ zRd!#IUB=WkiXt_)Y+g9}#I@@`%gf0N*asVi!3)E18^5Ydy)TXLbD&HP000000000d ZegL_gpI*fdW%mF8002ovPDHLkV1f=xTVVhI literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..f74ffaae9d4816d3676c395edaef31cb2ac1aaa2 GIT binary patch literal 569 zcmV-90>=G`P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|Z%IT!RCwC$*+B}xAPfXR?Z?HJw^yO3 zf&tUaJRqPOgJ^320Kg7oj5|}^t9oEI;Pj&q)%rRhGWFf5Mb%9+sUzzff*F!JzV&TD z;+r4<00000mGnO>Vtq27bM{gR`Y*r?cpZasa{vGU0KRzuuZS{B^xM*)00000NkvXX Hu0mjfCBpn- literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcd1237d79913b045ab0b91c5a185e515bf8524 GIT binary patch literal 540 zcmV+%0^|LOP)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|Qb|NXRCwC$+B*usFbDw9cyjUN{S1X{ z8QLuNy-6Zy(A6;j000000QiUaqDW>QPh3^8>$9sqSN?vtRR91000000Xkxwu4^P)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy|aY;l$RCwC$*g*<_AQS}9?Be3dYa1;B z!yuja_QGfU4C1x{002*Ft;dRU?&%jRfK^ui?cDJj(3R%jx8d_SX9++Fjt*e9A{;(% zd;lxI1OWg5002l*dJkN`om*=qIz4~zgmu7u<>Na50002ybONW+GD~ta4x|78002ov JPDHLkV1lnO{S^QJ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..bd772bfc0bbc610ada8ff1e7c1375f3d6a50e7bc GIT binary patch literal 532 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 Bk*oj! literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_primary.png new file mode 100644 index 0000000000000000000000000000000000000000..d8428597262ee93250a7a85ec11e5738ca77f103 GIT binary patch literal 1064 zcmV+@1lRkCP)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000ie000ie0hKEb8vpYWc6(Yo+#JqDRW;4WkKh?Lp&M%ql&d%;Q=b1k?*+&RM z2qAyS|t-S79+;c)QlnM_8sS}pk%0qAzSs#>j@^HeG&&gZi^pUq~X)9HNd zClMv{?RHz0%Vlx7T#WhYbZU+$2nyOY!Y#200H(d?d4AoFJdXSQ-UI>dgTX+>b_QVN zv)QajCX;5$>rt0DqK+V--K=XV{Suo1*iCP@+ZpqEDHwO9Qpp72cDtG4ZjS%LPn2fB zdc78_)k+kLMG3PO)EA3|DijJI_ZgWPu-$GS>euU4oK7cme0N{0{sytjW3+8Om&-jE zUM`oa*Xu>{-G&fC2qA9|)^?XoOa1 z#x;0=7kGlVw*h!gK1!$4{&~G#H{aoh!(nJgAKIW1T3>m9x91=vT=VW|KZB0Y=6RkB zy|8*J^JWnL6nJ0000aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000ie000ie0hKEb8vpHs#dG!y}Yw+`|}JCw%aXjHXEu`Dtx=${C25}38hjg@t9v(5x?K> z1NH0mO6T+0l&|`I%pM?gIvq3HUcFE#1O%_wYc&`QKGy)(1lA^m+O>Gn;uGshy#dS| zYU_5pp~il{AE`yD%*`H>erXhckHq>YG)jEPfO|X>blL|7o=&H! z6)v&ePgI=!;OQP9sV*kSfU@?*h%BuC(P(5YPI!BPEM3v^Y-#uzAeWG2#x2V-Desve z18U){f67h&)E>BdvDvn*mHuWki~8)jn6!~uPqXM(hzVXch$;9}0{{RI Z`~Yt$?L1h5A&dY3002ovPDHLkV1m4$waEYg literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/meta.json new file mode 100644 index 000000000000..b7f59a8231af --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/meta.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Concepts by: https://github.com/ElusiveCoin", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "default", + "directions": 4 + }, + { + "name": "smooth", + "directions": 4 + }, + { + "name": "honeypot_primary", + "directions": 4 + }, + { + "name": "honeypot_secondary", + "directions": 4 + }, + { + "name": "stubby", + "directions": 4 + }, + { + "name": "bee_primary", + "directions": 4 + }, + { + "name": "bee_secondary", + "directions": 4 + }, + { + "name": "firefly_primary", + "directions": 4 + }, + { + "name": "firefly_secondary", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/smooth.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0bbec36f34ddf9d00f4ceee9981580250be252 GIT binary patch literal 1128 zcmV-u1eg1XP)aTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy~o=HSORCwC$nmeoNKoG|_;#)-REv#(B zMl7tvQa_H5*2>n$$I;r#!cMGgL@g8r-)}L8|6VpE8gtPLm&7waSTb3YocYgAb`RNM zj35YtAP9mW2!bGf9g-EDuGj1Ge!o}FeLf#66bjO>2tcJ$kyEJ@w_Pq5JD<rU`q_VrjK^c%Z^laTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy}`$EHe~=(9f4+pH)fpAXLAUufS%yw(37AXCTMfUv;BVG{8d1c33fxd_I@< zXf(27BW1hYitfc?A?+XtN_7|R4aRXS9ZV*Zv=ifO6h%(mM?c%f;Gv=f*PiF)w3pTg zAb5Z+>Ff0>*R$D7)%jI`HfRLUZ0ZF}EJe6wqn|ZGr&MZ!4L~b2KL`FCTWJR1kL&e1 zZKLP_7wz$UEXfU&R3wZFSSd{0+Dmvv4FO#nukG}QnA literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/full.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..6d5e167c553e980737a7985a2fef7243eff0f254 GIT binary patch literal 1253 zcmV@AxIU67K(y6N(H-Ahqi)Mm*kqXLXw6{iWFDD#i8IJ zy7+7GKhRZhRS*P45OH<&*CHjpYYHvWzHoUTzW2V5yLW&;tuw>!NdSiF@JuQxt>)LH z;5&Q>VFcrd$jr8uvWq!%jh{!Vrg(^pUft_D#y~-}8Q|+9o@Ewyi06sZTaG1ok9e4s zE@~=<%0ep35u%e$i7Zwz1O2ti%oCDdMQ1S6K5r;wB;0T**=% zr8Nc{8KjVe1O*jrLWhGmWs_#s*_UYemQf}TqrZhJI5~bjp3KyV+Z*If7a)OG7;K;Q+qHe3EO&1vqN^jb@c9s}VW;PR%W zDF?vSE)aRPWG*+P04=|!0UsB@U>+E{2m05&SvB`@{siQ<>51-u!y{ml>cbm<_St9# zlr7a&00009a7bBm000XT000XT0n*)m`~Uz08%ab#R9M5smc36?Q53+>v#%5yQ#43T zNr(vx1Bu~dfJ8$agvG$5VL%y}TpV2dBV1jaSd@V{f(vmlL=zZ<#1Io2Vh|Dck$d%MB36&zJ@#BTD7jot!r{v@Hul^( zt}{CN%uA<#NgxoAgM+M0OuTe_$-waNll;Xg86SV)q*A+*N+pf4+8FZ5&Qiuh5eA1b01&XQ!p~}RO?=Vm47Z{h%q`H0H4)((Iz|z zsC6vX{0~2oSd;1LH%?VE(9?4_KNZ`?*m2|Vkyp(DE^lw|F{9Vq++ujS+=0Q+@R4_P z-1dBTK#ga!hjkAIgTiJE1YCom0px9MU1d2@vNA%r>1l{sn_fP(D0F?hd$>xUvUO%YC@*5STwb@VY_^Ynmqv4 zrGy+k^f~9tBBGH72OrAT)^|f=l-d(D&!CjjW7 zUzNuw8jaaV89PP}teHXX`(uQWm6f>E*I)D42c-Szj!+CAIeO@G&bJJ386B_2mXaQ>8^K9dr;8nxTqA3q?U3rGj0mLtDYBOY)jDLXw6gMT)E7;!to9 zUHlsS4|Ek=6$C*ML|k3{TBOALnnH`TH@w^*=iPI8?><1t>dbKZQh;H)b}o|^SBq<6 z=p6xsAs~jB#2jlWzgR%e_<5viiiafc)w`~143-p!0f8{_EVFEvc%C@B6E+=?_?GLk&u^T|K7Vnx3%LbA;62512g@DIG}|DaB90q+m9@^pZxT_=l|1D! zTH|n#Lk4MxkWs}Zbht=THfd(veW|8z85Qy{`dg^MCPx_>c@v~osjEU+C0(IUM~%<@ z|2!RaX4>x_Ndx__p7%Kcg!X|(-Sd7=J+E;F1Ydw_v+b|YoaVksueY`MF%aDWE^peJ zd;nbS0;A8CWJ^scNJ~&v;Nt=qDgwjzz`(jctJXfwpMb(PJ<%O-cmzyReRSgw&17fu zQv;wy00009a7bBm000XT000XT0n*)m`~Uy}v`IukRCwC$nm>+$Kp4fpF@}JJiJXDL z#)`y-!mD@&55gI|iUo~{J%x>>4I~s|Y-ar?j9FRTWCj`6?E58#aR|KkzWLJ(L;(D2 zgzbat_4?LcE|<=Yze-u{$={YMm&yV@_nC1qY<4>Cpw?cwA<~R6oK`V zBvEax&tzFPl3;8_t|h5sx10000000000000000000ViScPlnx=e_VHp0nR}_VM-)gn$#cZQZ zS8e$~Tjep;9-10p@hFNY2m;mTdEV`~Jj*hvjr25Ns_^=3kPl`rmy2rGbxr&IUS2&K z6~Xj$Sk7j%yABS|M)=3~7K;TJO7<}NlHbi5TCe?`LgURyd(g!cSN(7}Jp5pyZ&;JH z*+UnGUBc^Sz(yvMiL>xL?T^Q!Dgt}xQUse#P|oM`J7J!VT!77HL(L{AdfEil^yZ~d zmgQ~cX)oLD)>vEE8ktU~G#-zssw&F!yw~8*3eoo9N*@3K0000000000002IgFA00` U2R1k}IRF3v07*qoM6N<$f@RW|5&!@I literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_m.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_m.png new file mode 100644 index 0000000000000000000000000000000000000000..c9b9cbb1979df8935a5f167c5c62aebb046f7a4a GIT binary patch literal 898 zcmV-|1AY97P)aQ>8^K9dr;8nxTqA3q?U3rGj0mLtDYBOY)jDLXw6gMT)E7;!to9 zUHlsS4|Ek=6$C*ML|k3{TBOALnnH`TH@w^*=iPI8?><1t>dbKZQh;H)b}o|^SBq<6 z=p6xsAs~jB#2jlWzgR%e_<5viiiafc)w`~143-p!0f8{_EVFEvc%C@B6E+=?_?GLk&u^T|K7Vnx3%LbA;62512g@DIG}|DaB90q+m9@^pZxT_=l|1D! zTH|n#Lk4MxkWs}Zbht=THfd(veW|8z85Qy{`dg^MCPx_>c@v~osjEU+C0(IUM~%<@ z|2!RaX4>x_Ndx__p7%Kcg!X|(-Sd7=J+E;F1Ydw_v+b|YoaVksueY`MF%aDWE^peJ zd;nbS0;A8CWJ^scNJ~&v;Nt=qDgwjzz`(jctJXfwpMb(PJ<%O-cmzyReRSgw&17fu zQv;wy00009a7bBm000XT000XT0n*)m`~Uy}xJg7oRCwC$nmvw!Kp2K+j4?`Kf@iRx zu_B?N@G72xgK!3}VnJhKPhn$8BMAi%nvrj^Lsk|yVUTgnzE5JrG5G#4jK#nh0RI}U zdtwwt?eXDoFmC)+`dm|7bjKPK++g^Z>2n=%*LB%)xn!1Qv7#tgRaNYKJ{u{4^nKr# z$4Z}w<5)|d>xS=QqJ+NiV@sIn7@@GgeKrM!AInVlL>2m7;nh`F@5UBEbsKbf#~Sb* zBWu935=@2vEBXKc000000000000000_)N4m6T&d;9S?%Qi0N1Ab4_uv*=&A%ce~yA zltrlEjkf5~mU)J1&xaZy@$GiYR;!g9TPzmsc6l7fLK&Ip;>+UI-XLwv)^#n9%d%vb z%SALE2bC~%cUbIpyN3Y^Pe$lP-|hE%DoRXn^#%PlX(+w!a|&PH25Ha6n4;FN*K6+s z6H`N)q)i^iFdq|M-3DaDwrykKY1*f0DoY>_V@l9j1cm2$55hDZset40s8(Y>(IP0P zH{A+ZmbEiac{!aDSZF{0000000000008({ Y?%I9#2nE;Q_W%F@07*qoM6N<$f`Gt}%>V!Z literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_arm.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..48c0a2ee062c53d00e2bb7aceca3692290b97f05 GIT binary patch literal 752 zcmVaTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy}CP_p=RCwC$+A)fQKorLDNl2j=@-ALO zJjYza8`uk0g1sjYY;Cl2`DWK9EG%oD;3WTFlcbmreat)|Pv-yt003Ah%W{h;*IeKC zoAt#iPq}AY@7+3ZSr(V)x%1weT(EMKcNX&kq-h$85DW7HG)?2?d3ITry}S#wUOCe= zh1{RxaNPpvtQJLa8-^kL9>?*eynVg$l&kzRkHaM!;BzBv+xEIUz`6lGH$vsF>uOqn zhhZxvK{v1b%d6{J+jO&h3@T5#Q9K2#8sKk@5C8xG00000;J(LY-upvq@9$Cs z{d;_*2#?rrTr&fGYARh-mA>9SY6oaqw2$O9KKt)%GWr5&YP^rmKe`7T9h$yP0g@yM iFH!&i0001hKYaneMWis;c*_g`0000Y-zxQDW zk>mS)r;4pDx!`zI(OI-ztgFewi*e{vX!J~izf!IH$KjdF% z?a<sR(fq5Gz-Vwv$f_VC}YzJL6#wZkciGbL4%8Zvj<%=SB}-5P57rH{dB zg21tkLo(Hd+b6hR|53RltE;``#nrv*lD~+Xwlg*weB{}@)7!><&ds9SgVjfz*Q^og z^zV2)htH!%yX5L~^Mk7M_p^MiDU+Mv;=l9Cu`KD$M&_OBoyp4r6VHC`nC)VcZRuV) z<(h;{%0xFVqmYmdjLdpMQ*>uVrpIr37=1{sQsQrJ$ib6=PBZru25DajUA$)Ux{K)x zw4VK|pVwz+`?S1&NyEMH^S@=-oqjv)eO9@D`Mhv@<|h3ETd#h~zceRpzvud`TW%N% z+-20ukD67*5c8Jl@cC_rrnZSJQGIFkp^%YBq~T!og8Z}dLyP5~`#aRlp7(;!!iGt0 zh25@y>^({8SGjK%9R)@KXMsm#F#`j)5C}6~x?A@L7$Ll#E{-7;x8BY&U5srzM< yt$BJ0vEh54#~j#ws{8Sc*fq1oU;MUvp<~Yc&P(N9fBQO+r#xN#T-G@yGywqNM&oGNS#Ph_dEyohPM?B1m za-R5vILhgO#J56MJbn{g@c2tG&!!guzvw9yT3BgeR^$fpByq&h%dBx8ag(rWu4E{W z(i($}G?GX_f`T$Op~FFpvPm;*?~B)c%P5hD(ceM^oE!xd$r~lLOkGvV8tE#1Ix1rB z|L19I(^Fpea02Llb=}W#Ah-|Is;>Kc>bkWvAn*cQn@xX-<}~+BdbO!Vj)B1);PR%a zDF?vSE->wRBD8s5}lqQ+S@It^1#= zK;;@y0LO8pNx1+300000006)&Wm(Fu>!f=A_g4BbS7Xbvh`#SdmSxs$1!$V)^1FOB zUKB;U-~ZD&nRQ*oIF6TgewwCj%(||(@oz0a9LLtxOFv1H?c;6R-c^7{oB=@)h+!B+ zQ54o~1-N7Xt1I&`3=d_zOy2+VJa6NwEwHEikD&W!3;@6{c>@#wdmb;~mbm}`002ov JPDHLkV1gT zaB^>EX>4U6ba`-PAZ2)IW&i+q+U;0vawInh{jXEx2rUpG9Y-BEd z+5AbByKAhrMnb>?9zALQ^{1yla8ao>6|t&K^}Gh>!sbjj!3c8;65;^39Bk}`y4 z>^OINKK$$PMiu2K#)afK}#yk z3UDgL+1O+GtReCJ)EK!cO`EmaTI(H$c1Z5n-D}6hpuwXI89Hp#(MF#LpIN3% zoi^)iv!_LiS6Q-j*{Z9pzVk*X?XqR-wq1AI-4SZeUR+$=yn6Hgg4#hfeS_Ke$o(9( z{6GzWrGr_)q9Ocr;~f!Pi{ekm6$|2t22HEyec~-_2dSkFxzf zkq7HuYxrJy`r5t-=b<1S?_JkDrsu;ij|`dn=4*Hjht_x=iB%_R4bI*&;PbW?6!Rh0 z!?971jycNS*r1v(P|6CjfxKZLSs!GcMma(#eCBOzF?cZpw5i859M~5c9~7-k7o0pC zr4qOc@HB651VJ<^B%JJOYeVTt`l~@T7V*x!;53LD;%OJyJZ9UdpYWqKAXd<-RnL4w z&lb*iMA9g>I&0`G2tydUUAg&KiP+(A{PtFskbY&{)24Ds8I`o;@go z!)!G~z!g4qpa#2+H)xsdz!{Ff#tkAM0Ud;5jgS(JV~5%_>=*;9rD7Ck^_p-3N61#d z5%QT4F2M95d=AyH-4@bld*lenBw`;y{&r07Cw?;8QrX!?G!)R+$AoZr>;!Zg3tz6| z*{xZi`Z_70r91CmkJR)gWOpBaSph2=9MvW`J5mm+^f3)#GzBIeI0nGC12=pLxVNOh zJO7{rd}d6)E8t7em!SW-pl9y4yHGkxE2;~cWz;AnW0czNz57H7KzTTsfAi~Vy!Y4N{hS7OZ{P)jhC?lm4&ks)z;wck zZ1bUel?3g=IGk*AM!6<18eXfgWkk8htA7I{8!Gx0oP4v3Hc%;G11H8$Aow~>khm+v zMsqFXATmO{1x1ybAz_;;?IIs<&bXlP*p7X8hVEx z;bjcXR$UxF32i&fFK9Ro1OYvFP$~#K8nFv4iqVT*Fe}}5#ZPCimPK>-YFlvJ!@6?i z`Ef6bfXo2|Z2TLyBhpy}9y2Te0007FOGiWiNu`b21^@s632;bRa{vGf5&!@T5&_cP ze*6Fc00(qQO+^Ri0R|2RD7Np_fB*mh+(|@1RA}Dq*u4$HFc5~}*A`OJWrHjcreF#t zNs&p|AYG;)6`3GYB$X+kL4us~ClLCc`p!E0+}wePh=_=Ye3`QXE};NMj&9De*O1Tx zXEV!N0X>k?&AeAfNgyl`{hNvz__sV zxIAw+AX`{Kwp9~EL_|bHME>050R31_v=M8D&-p3CxUcl*8l(j07*qo IM6N<$g0aVLB>(^b literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/meta.json new file mode 100644 index 000000000000..ed5dfd514502 --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/meta.json @@ -0,0 +1,66 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/1d0eadcb126fc3581eed33490f4be2a88157af58, modified by https://github.com/PixelTheKermit", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_arm.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..703756e5c4774f6020869ae4505f636a0a7055cb GIT binary patch literal 758 zcmVaTcu(v9aIo;$WX!9hqi)Mm*h2Rg(M9xDN&&ow5`bYkJd;XFtNAr4 z_zoXJ7^a+)nQbj)7jx(uKabQ+@emiYy7zUAP(igB;OirvVHS6Y=ZVu>jwN`Hc!-tc z0`UoPjMD{)Z-uUS{3f{Q@t0tp%PatXF;gnGvC_t@#0}y};;5llSo1#OOTwzTlBGII zIR+aUq>zLJ1r=;Uhl4m(lXlkGmuUEwQ6>+gw}mP=If^KeH%4lOrm9pm(p7qNRK?!^ z@6*<%r@ZOmB+&cnx}W1fa384GT=)0Xb?aw9;03rgTmCZbY4)4+T1$%_1Cbrz@}{LJ z2f)=XF!F54Ty97KO24K79~Zzt9vHj_`q#Z(HP3PW1mw2q7u^AeN5BO2M>hTd3MFU{ z>Bri<00009a7bBm000XT000XT0n*)m`~Uy}EJ;K`RCwC$+A+>VKp4jHS(UhwljtO_ z-~MbY-NIc3nk z?~N!xa^6}(k|g`Xw{2@g0g_YlN^YI|EuEX@c~(VH7_n6)r{vXTeVTpOb=5RYM!l~j zujJNQ1*ZjcUAJHBx>mmLzrrwl^fr)ul2h`&=f7?6s;VAcfaJS6Nm}oKIF2{Z^VG5| zk6!wcPjX7$TMIY_FU#`L1xUWzCrR4O^L$Iw)QHcZIqP)g)xEA`^cOXU0f8{_470gQJV%__a&5tT#6zsC z6p2rW_?gq=4R6&-)w)Li<3y=6S!To>xBuf-k_e)$(uBoMyjCueG$;F%aDWE^k_z zdH`JQ0>jU?!j*;;q$TM(@NoeQ6oA2dpl{8eRdXNbPe6W~p6CuZJOU=DKDzz~jACci z3)ynT00009a7bBm000XT000XT0n*)m`~Uy|i%CR5RCwC$+93{vFc1aMB5)j`SE%BK zoDYYrsNo28h?0s`tCl4J@t$s)KTX}A5C8xG00000;LAMEZC%&)rc6Cg&iPWN;g`cP z#xRa!o2Dsj+cv!A0a8k>)*6oE81{YlO921?00000xJ&Qk`>w!~8DflWS(d*tT<-Wk joqWHel=8&zx9lpM8J;b~@TFd900000NkvXXu0mjfMcxQ@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_hand.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f02aa597609c9b405c7b5b737e98fe9446df9d GIT binary patch literal 713 zcmV;)0yh1LP)&$Sv5`ba4b|#e+S95D( z=p6y{K|l}2W#(8**+mH*8S9z z|DUI$%}o2D8tdJq98>z~xO- zQx1TuU0~$dl5M#z1!)PI27FuqgE?U69_U~9XVuup`4b>*(-YkRheyC9)kik|0F@4B z*|PW8;{X5v32;bRa{vGf5&!@T5&_cPe*6Fc0RBltK~#9!?b@*ogD?<Qj{{ri3n%@uWtM}a6wsqE8RXZy6O5Hx!G6a27P!xrV z6iA)E-QOimQxzMarA`0<00000007QTPF#m!aMLtxYYe|>*U?zlb;&%>W?k24ni_mI zSXGrd`hNrRJW1c*H^5rErC?c>L%Su<`*r$~kU5ZLnUPmP)~0EaOT7ZGIZ)U2wP!#q vbKo9wlceCeI7vYabKtA*0=|v_0D3(DR2g-IKxOaS00000NkvXXu0mjfs(3!~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_leg.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..6f45ae18950c3fa4914cc7807fcb9bbe43357ed9 GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_7UyPhtNAsLNtZ*1gkHV|liIN#*L zMn>-mjYgcTlQ%HR2CIb5I3T^G`IP1hr5uiQ5!b5t=9Z_s)18x>J3!!1#I}FG-W5MM zsB5q<{`tbRXHqLlBI|8~7|z|2Ex01mbMT`B1N#?~XJ4Hse?2lyh=W0R>RxLG(aRGv z*Vg~KcKdezRnB(|XTH6&e&xb6#naBob>@ODu)!xfm7d=}cU{D%ExPI4^_;s#E`4e5 z9{;pGzQ@vDC}HBOjw%I*qi4Dg7WiIFX;y7eHs9KwD%j4vG1`2Raw Xz;`2mx9-MYApd&0`njxgN@xNAsv>)6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_f.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_f.png new file mode 100644 index 0000000000000000000000000000000000000000..71d34660015848123fd0d00dafcf9b345de26b40 GIT binary patch literal 1305 zcmV+!1?KvRP)g)xEA`^cOXU0f8{_470gQJV%__a&5tT#6zsC z6p2rW_?gq=4R6&-)w)Li<3y=6S!To>xBuf-k_e)$(uBoMyjCueG$;F%aDWE^k_z zdH`JQ0>jU?!j*;;q$TM(@NoeQ6oA2dpl{8eRdXNbPe6W~p6CuZJOU=DKDzz~jACci z3)ynT00009a7bBm000XT000XT0n*)m`~Uz0Pf0{URCwC$nm=n|K@`O&5>O;W5Ja%B zOP5a5+F4rIiH(62)>-D;Ne}C8YTrQ_Jn~gtxh|gxT;PLS>m`ou0lBU2nBox`gejA3Nrz zd_J!~{N?3EHJeRc$DlcQ*l5Rf)N%hgq5kLRXE;#SQPMH2+vp$tlwMz71FZXaJgx^0 zvE6R>&BlIke}8}Wbx8eQucs=NN;qI>gO867RVtON^{pJh4Uh1t6K;$?9Kb#l3Wadc zoPBi0U@)-Ojvad=KNy3=z_I=?c$Bbx51zcey?xn-ShC&gF}VK}_ykY-O3*r3d z=jU+tx#(ZozF|6@s&cukmdj;0_0s9IZjS=!VBpZl;2VvG*6(yWPM;UExf#b%wOS3m zzFMtx2^;Ocz5|&0cXxN8^J}%5E@7kHMc>K+I9{;R19%-L07`)Nb02?)^r;1)Z`v;U zG21sllxq+B07}^GjBhfTj9M%fTAMG}X!pJZ=xt0n9)T!f^C|cS8z2UYy@xN@=JD+P z6xcuR4z>9_1)0S- zah!6f(+N>x>h1RjL0Yd4;Mxa_(J@9CMSv6<48>y)IMg3+n;^3^y4~)#Ylslt+}uR6 z5n|1oi5UdJQrip>>luK-Gb)QZrXAvQhdSg7hU5?yLt=#4A2WUL?3*CHj6f)Zp-hyp z6+Q)MF-Z%sKXimQ2ViRPI{?L9*WRg^n(T{9f>!L5PV6U1MGcq2DL6R*p>T$#(E-;4 zrBi?=_W`EpMdkpkHwy9y{1Z@{`HGSJ7Wmb-t*B%3e?uPxK@bE%__z51rX5?nFOH<4 P00000NkvXXu0mjf@da%e literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_m.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..9f08874e16b338c20ec268611d0eacb0e08603f8 GIT binary patch literal 1269 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite_glow.png b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..5a77b238e84fefaf9a6c43008f09a8c03902c3a4 GIT binary patch literal 1035 zcmV+m1oZofP)!NdSiF@JuQxt>)LH z&^vq>L=e4*$jr8uvWq!%jh{!Vrg(^pUft_D#y~-}8Q|+9o@Ewyi06sZTaG1ok9dTY zE@~=<%0ep35u%e$i7Zwz1O2ti%oCDdMQ1S6K5r;wE9$T**=% zqcsj28KjVe1O*jrLWhGmWs_#s*_UYemQf}TqrZhJI5~bmtaAn*cQn=OBt<}~+Bdab2JkAa~b;PR%W zDF?vSE-?CR$y{zo0a|`d13oT*NFErz2m05&SvB`@{siQ<>51-u!y{ml>W4P|0E6&n z(P#Gzy8r+H32;bRa{vGf5&!@T5&_cPe*6Fc0zgSbK~#9!?V2%8!!Q(v)2Np~3=Ax+ z9T*T7fSm)t#2rw_UV;e@zz!Ec3=CbnFfbr4!2nOfl2z4-?L7N6?e|HDHX?QSf4~1F zuA2q`000000ALI(mh(%E&uRBvfZVY^n$>Lm8gj0w9dHrX#sZvc2#_oO_s`dnZ$ikF zA_j=~^V#BY-GmyZIPo85PjladkSV3ae>r`-^-b7hO4SGonNqVN)=jBJ$dn=mIHBdW z6Wl*mOK5rT1ow~Cn*DOj3GN?D?NurjP(%DKy2RJ0hQ80}62Gq++S1}{M3VdiIYMgm z1t+5X&^0N zVKnygV0!p@@qTu1X294RvY00(il7$bi+N(An7Qd1h@i2M6GK|jCHLexF(l^RJJ08lc(a(_MsD8Vf# z5j1`*_vcdqM33E*aIWz38}Z|q#QtH-vV^}5g!ll^&o7%)OR#4jndJZg002ovPDHLk FV1hyB Date: Sat, 25 Jan 2025 20:13:37 +0000 Subject: [PATCH 09/15] Automatic Changelog Update (#1644) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 098101de24a7..98f0260cece0 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10721,3 +10721,10 @@ Entries: id: 6761 time: '2025-01-25T18:34:15.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1451 +- author: ElusiveCoin + changes: + - type: Add + message: Added a new species, the Chitinid. + id: 6762 + time: '2025-01-25T20:12:52.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1644 From f592d4cd890bc14c70153182a400d273ffb113b9 Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Sat, 25 Jan 2025 16:38:24 -0400 Subject: [PATCH 10/15] Change "Kill" To "Teach a Lesson" (#1654) better for MRP this code is originally by me anyway, they just made it better :cl: - tweak: Kill random person objective has been replaced by teaching them a lesson, removing the need to RR a random person. --------- Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Co-authored-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com> Co-authored-by: Milon Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: VMSolidus --- .../TeachLessonConditionComponent.cs | 20 +++++++ .../Systems/TeachLessonConditionSystem.cs | 55 +++++++++++++++++++ Content.Server/Mind/MindSystem.cs | 1 + .../Mind/Components/MindContainerComponent.cs | 6 ++ .../objectives/conditions/teach-person.ftl | 1 + .../Prototypes/DeltaV/Objectives/traitor.yml | 31 +++++++++++ .../Prototypes/Objectives/objectiveGroups.yml | 3 +- 7 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 Content.Server/DeltaV/Objectives/Components/TeachLessonConditionComponent.cs create mode 100644 Content.Server/DeltaV/Objectives/Systems/TeachLessonConditionSystem.cs create mode 100644 Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl diff --git a/Content.Server/DeltaV/Objectives/Components/TeachLessonConditionComponent.cs b/Content.Server/DeltaV/Objectives/Components/TeachLessonConditionComponent.cs new file mode 100644 index 000000000000..d6c57129d5c0 --- /dev/null +++ b/Content.Server/DeltaV/Objectives/Components/TeachLessonConditionComponent.cs @@ -0,0 +1,20 @@ +using Content.Server.DeltaV.Objectives.Systems; +using Content.Server.Objectives.Components; + +namespace Content.Server.DeltaV.Objectives.Components; + +///