diff --git a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs index 21c422198b0..c95a0950a28 100644 --- a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs +++ b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs @@ -18,6 +18,7 @@ using Content.Shared.Humanoid.Markings; using Content.Shared.Humanoid.Prototypes; using Content.Shared.Preferences; +using Content.Shared.Prototypes; using Content.Shared.Roles; using Content.Shared.StatusIcon; using Content.Shared.Traits; @@ -2041,18 +2042,45 @@ public void UpdateLoadouts(bool? showUnusable = null, bool reload = false) _loadouts.Clear(); foreach (var loadout in _prototypeManager.EnumeratePrototypes()) { - var usable = _characterRequirementsSystem.CheckRequirementsValid( - loadout.Requirements, - highJob ?? new JobPrototype(), - Profile ?? HumanoidCharacterProfile.DefaultWithSpecies(), - _requirements.GetRawPlayTimeTrackers(), - _requirements.IsWhitelisted(), - loadout, - _entManager, - _prototypeManager, - _cfgManager, - out _ - ); + var groupUsable = loadout.Groups.Count == 0 ? true : false; + + // Check group requirement reasons + foreach (var groupID in loadout.Groups) + { + if (!_prototypeManager.TryIndex(groupID, out var group)) + continue; + + groupUsable = _characterRequirementsSystem.CheckRequirementsValid( + group.Requirements, + highJob ?? new JobPrototype(), + Profile ?? HumanoidCharacterProfile.DefaultWithSpecies(), + _requirements.GetRawPlayTimeTrackers(), + _requirements.IsWhitelisted(), + loadout, + _entManager, + _prototypeManager, + _cfgManager, + out _ + ); + + if (groupUsable) + break; + } + + var usable = groupUsable ? + _characterRequirementsSystem.CheckRequirementsValid( + loadout.Requirements, + highJob ?? new JobPrototype(), + Profile ?? HumanoidCharacterProfile.DefaultWithSpecies(), + _requirements.GetRawPlayTimeTrackers(), + _requirements.IsWhitelisted(), + loadout, + _entManager, + _prototypeManager, + _cfgManager, + out _ + ) : false; + _loadouts.Add(loadout, usable); var list = _loadoutPreferences.ToList(); diff --git a/Content.Client/Lobby/UI/LoadoutPreferenceSelector.xaml.cs b/Content.Client/Lobby/UI/LoadoutPreferenceSelector.xaml.cs index eb472e7d959..c5dd00dd204 100644 --- a/Content.Client/Lobby/UI/LoadoutPreferenceSelector.xaml.cs +++ b/Content.Client/Lobby/UI/LoadoutPreferenceSelector.xaml.cs @@ -11,6 +11,7 @@ using Content.Shared.Customization.Systems; using Content.Shared.Paint; using Content.Shared.Preferences; +using Content.Shared.Prototypes; using Content.Shared.Roles; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; @@ -233,6 +234,27 @@ void UpdateGuidebook() => GuidebookButton.Visible = if (!string.IsNullOrEmpty(loadoutDesc)) tooltip.Append($"{Loc.GetString(loadoutDesc)}"); + // Get group requirement reasons + foreach (var groupID in loadout.Groups) + { + if (!prototypeManager.TryIndex(groupID, out var group)) + continue; + + characterRequirementsSystem.CheckRequirementsValid( + group.Requirements, highJob, profile, new Dictionary(), + jobRequirementsManager.IsWhitelisted(), group, + entityManager, prototypeManager, configManager, + out var groupReasons); + + if (groupReasons.Count != 0) + { + foreach (var groupReason in groupReasons) + { + tooltip.Append($"\n{groupReason}"); + } + } + } + // Get requirement reasons characterRequirementsSystem.CheckRequirementsValid( loadout.Requirements, highJob, profile, new Dictionary(), diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index e1c7974307b..1ca436d165e 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 00000000000..46925c01452 --- /dev/null +++ b/Content.Server/Atmos/Components/IgniteFromGasComponent.cs @@ -0,0 +1,49 @@ +using Content.Shared.Atmos; +using Content.Shared.Body.Part; + +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. +/// +[RegisterComponent] +public sealed partial class IgniteFromGasComponent : Component +{ + /// + /// What type of gas triggers ignition. + /// + [DataField(required: true)] + public Gas Gas; + + /// + /// The total calculated fire stacks to apply every second without immunity. + /// This is calculated from BaseFireStacks + the exposed body parts' fire stacks + /// from IgnitableBodyParts. + /// + [DataField] + public float FireStacks = 0f; + + /// + /// The base amount of fire stacks to apply every second without immunity. + /// + [DataField] + public float BaseFireStacks = 0.13f; + + /// + /// The body parts that are vulnerable to ignition when exposed, and their fire stack values. + /// + [ViewVariables(VVAccess.ReadWrite)] + public Dictionary<(BodyPartType, BodyPartSymmetry), float> IgnitableBodyParts = default!; + + /// + /// How many moles of the gas is needed to trigger ignition. + /// + [DataField] + public float MolesToIgnite = 0.5f; + + /// + /// Whether the entity is currently immune to ignition. + /// + [ViewVariables(VVAccess.ReadWrite)] + public bool HasImmunity = false; +} diff --git a/Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs b/Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs new file mode 100644 index 00000000000..e2f35f409d5 --- /dev/null +++ b/Content.Server/Atmos/Components/IgniteFromGasImmunityComponent.cs @@ -0,0 +1,10 @@ + +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 +{ +} diff --git a/Content.Server/Atmos/Components/IgniteFromGasPartComponent.cs b/Content.Server/Atmos/Components/IgniteFromGasPartComponent.cs new file mode 100644 index 00000000000..099322b5a5e --- /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 741a9341e79..327804f39a4 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 0f6ce0780e4..db2b7888c17 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 07594820fcc..baad739804b 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 00000000000..80f7691ba19 --- /dev/null +++ b/Content.Server/Atmos/EntitySystems/IgniteFromGasSystem.cs @@ -0,0 +1,204 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Server.Administration.Logs; +using Content.Server.Atmos.Components; +using Content.Server.Bed.Components; +using Content.Shared._Shitmed.Body.Events; +using Content.Shared.Alert; +using Content.Shared.Atmos; +using Content.Shared.Body.Components; +using Content.Shared.Body.Part; +using Content.Shared.Damage; +using Content.Shared.Database; +using Content.Shared.FixedPoint; +using Content.Shared.Inventory; +using Content.Shared.Inventory.Events; +using Content.Shared.Mood; +using Robust.Shared.Containers; + +namespace Content.Server.Atmos.EntitySystems; + +public sealed class IgniteFromGasSystem : EntitySystem +{ + [Dependency] private readonly AtmosphereSystem _atmos = default!; + [Dependency] private readonly FlammableSystem _flammable = default!; + [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly IAdminLogManager _adminLogger= default!; + [Dependency] private readonly InventorySystem _inventory = default!; + + private const float UpdateTimer = 1f; + private float _timer; + + /// + /// Which clothing slots, when they have an item with IgniteFromGasImmunityComponent, + /// grant immunity to body parts. + /// + private readonly Dictionary> ImmunitySlots = new() { + ["head"] = new HashSet { BodyPartType.Head }, + ["jumpsuit"] = new HashSet { + BodyPartType.Other, + BodyPartType.Torso, + BodyPartType.Arm, + BodyPartType.Hand, + BodyPartType.Leg, + BodyPartType.Foot, + BodyPartType.Tail, + }, + ["outerClothing"] = new HashSet { + BodyPartType.Other, + BodyPartType.Torso, + BodyPartType.Arm, + BodyPartType.Hand, + BodyPartType.Leg, + BodyPartType.Foot, + BodyPartType.Tail, + }, + ["gloves"] = new HashSet { BodyPartType.Hand, }, + ["shoes"] = new HashSet { BodyPartType.Foot, }, + }; + + public override void Initialize() + { + SubscribeLocalEvent(OnBodyPartAdded); + SubscribeLocalEvent(OnBodyPartAttached); + + SubscribeLocalEvent(OnBodyPartRemoved); + SubscribeLocalEvent(OnBodyPartDropped); + + SubscribeLocalEvent(OnIgniteFromGasImmunityEquipped); + SubscribeLocalEvent(OnIgniteFromGasImmunityUnequipped); + } + + private void OnBodyPartAdded(EntityUid uid, FlammableComponent component, BodyPartAddedEvent args) + { + HandleAddBodyPart(uid, args.Part.Owner, args.Part.Comp); + } + + private void OnBodyPartAttached(EntityUid uid, FlammableComponent component, BodyPartAttachedEvent args) + { + HandleAddBodyPart(component.Owner, args.Part.Owner, args.Part.Comp); + } + + private void HandleAddBodyPart(EntityUid uid, EntityUid partUid, BodyPartComponent comp) + { + if (!TryComp(partUid, out var ignitePart)) + return; + + if (!TryComp(uid, out var ignite)) + { + ignite = new IgniteFromGasComponent{ + Gas = ignitePart.Gas, + IgnitableBodyParts = new Dictionary<(BodyPartType, BodyPartSymmetry), float>() + { + [(comp.PartType, comp.Symmetry)] = ignitePart.FireStacks + } + }; + + AddComp(uid, ignite); + } + else + ignite.IgnitableBodyParts[(comp.PartType, comp.Symmetry)] = ignitePart.FireStacks; + + UpdateIgniteImmunity(uid, ignite); + } + + private void OnBodyPartRemoved(EntityUid uid, IgniteFromGasComponent component, BodyPartRemovedEvent args) + { + HandleRemoveBodyPart(uid, args.Part.Owner, args.Part.Comp, component); + } + + private void OnBodyPartDropped(EntityUid uid, IgniteFromGasComponent component, BodyPartDroppedEvent args) + { + HandleRemoveBodyPart(component.Owner, args.Part.Owner, args.Part.Comp, component); + } + + private void HandleRemoveBodyPart(EntityUid uid, EntityUid partUid, BodyPartComponent part, IgniteFromGasComponent ignite) + { + if (!TryComp(partUid, out var ignitePart)) + return; + + ignite.IgnitableBodyParts.Remove((part.PartType, part.Symmetry)); + + if (ignite.IgnitableBodyParts.Count == 0) + { + RemCompDeferred(uid); + return; + } + + UpdateIgniteImmunity(uid, ignite); + } + + private void OnIgniteFromGasImmunityEquipped(EntityUid uid, IgniteFromGasImmunityComponent igniteImmunity, GotEquippedEvent args) + { + if (TryComp(args.Equipee, out var ignite) && ImmunitySlots.ContainsKey(args.Slot)) + UpdateIgniteImmunity(args.Equipee, ignite); + } + + private void OnIgniteFromGasImmunityUnequipped(EntityUid uid, IgniteFromGasImmunityComponent igniteImmunity, GotUnequippedEvent args) + { + if (TryComp(args.Equipee, out var ignite) && ImmunitySlots.ContainsKey(args.Slot)) + UpdateIgniteImmunity(args.Equipee, ignite); + } + + public void UpdateIgniteImmunity(EntityUid uid, IgniteFromGasComponent? ignite = null, InventoryComponent? inv = null, ContainerManagerComponent? contMan = null) + { + if (!Resolve(uid, ref ignite, ref inv, ref contMan)) + return; + + var exposedBodyParts = new Dictionary<(BodyPartType, BodyPartSymmetry), float>(ignite.IgnitableBodyParts); + + // This is O(n^2) but I don't think it matters + // TODO: use TargetBodyPart instead of a tuple for these + foreach (var (slot, protectedBodyParts) in ImmunitySlots.Select(s => (s.Key, s.Value))) + { + if (!_inventory.TryGetSlotEntity(uid, slot, out var equipment, inv, contMan) || + !HasComp(equipment)) + continue; + + foreach (var protectedBodyPart in protectedBodyParts) + { + exposedBodyParts.Remove((protectedBodyPart, BodyPartSymmetry.Left)); + exposedBodyParts.Remove((protectedBodyPart, BodyPartSymmetry.Right)); + exposedBodyParts.Remove((protectedBodyPart, BodyPartSymmetry.None)); + } + } + + if (exposedBodyParts.Count() == 0) + { + ignite.HasImmunity = true; + ignite.FireStacks = 0; + return; + } + + ignite.HasImmunity = false; + var exposedFireStacks = 0f; + foreach (var fireStacks in exposedBodyParts.Values) + exposedFireStacks += fireStacks; + ignite.FireStacks = ignite.BaseFireStacks + exposedFireStacks; + } + + 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 flammable)) + { + if (ignite.HasImmunity || HasComp(uid)) + continue; + + var gas = _atmos.GetContainingMixture(uid, excite: true); + + if (gas is null || gas[(int) ignite.Gas] < ignite.MolesToIgnite) + continue; + + _flammable.AdjustFireStacks(uid, ignite.FireStacks, flammable); + _flammable.Ignite(uid, uid, flammable, ignoreFireProtection: true); + } + } +} diff --git a/Content.Server/Bed/BedSystem.cs b/Content.Server/Bed/BedSystem.cs index 7220c04ea8c..b09609a86f7 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 00000000000..34bb50e66d3 --- /dev/null +++ b/Content.Server/Bed/Components/InStasisComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Server.Bed.Components; + +[RegisterComponent] +public sealed partial class InStasisComponent : Component {} diff --git a/Content.Server/Body/Components/InternalsComponent.cs b/Content.Server/Body/Components/InternalsComponent.cs index 098f1789218..ef908f96553 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 56fc981a0f4..260c2e3e962 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/Body/Systems/LungSystem.cs b/Content.Server/Body/Systems/LungSystem.cs index 7e58c24f7e4..a3c185d5cc6 100644 --- a/Content.Server/Body/Systems/LungSystem.cs +++ b/Content.Server/Body/Systems/LungSystem.cs @@ -59,7 +59,7 @@ private void OnMaskToggled(Entity ent, ref ItemMaskToggledE { if (args.IsToggled || args.IsEquip) { - _atmos.DisconnectInternals(ent.Comp); + _atmos.DisconnectInternals(ent); } else { diff --git a/Content.Server/Damage/Components/DamageOnHitComponent.cs b/Content.Server/Damage/Components/DamageOnHitComponent.cs index 3580e9a8d54..31b3ea730a3 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 f129a14f799..3626796dcda 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/Extinguisher/SelfExtinguisherComponent.cs b/Content.Server/Extinguisher/SelfExtinguisherComponent.cs new file mode 100644 index 00000000000..54bf7413175 --- /dev/null +++ b/Content.Server/Extinguisher/SelfExtinguisherComponent.cs @@ -0,0 +1,59 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Extinguisher; + +/// +/// When equipped, the SelfExtinguisherComponent will try to automatically extinguish its wearer when on fire. +/// +[RegisterComponent] +public partial class SelfExtinguisherComponent : Component +{ + /// + /// Action used to self-extinguish. + /// + [DataField, AutoNetworkedField] + public EntProtoId Action = "ActionSelfExtinguish"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + + /// + /// The number of charges left. + /// + [DataField] + public int Charges = -1; + + /// + /// The maximum possible charges of self-extinguishes. + /// + [DataField(required: true)] + public int MaxCharges; + + /// + /// 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))] + public TimeSpan NextExtinguish = TimeSpan.Zero; + + /// + /// 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!; +} diff --git a/Content.Server/Extinguisher/SelfExtinguisherSystem.cs b/Content.Server/Extinguisher/SelfExtinguisherSystem.cs new file mode 100644 index 00000000000..e9838df9415 --- /dev/null +++ b/Content.Server/Extinguisher/SelfExtinguisherSystem.cs @@ -0,0 +1,152 @@ +using Content.Shared.Actions; +using Content.Shared.Examine; +using Content.Shared.Extinguisher; +using Content.Shared.IdentityManagement; +using Content.Shared.Inventory; +using Content.Shared.Inventory.Events; +using Content.Shared.Verbs; +using Content.Server.Atmos.Components; +using Content.Server.Atmos.EntitySystems; +using Content.Server.Popups; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Timing; +using Robust.Shared.Utility; + +namespace Content.Server.Extinguisher; + +public sealed partial class SelfExtinguisherSystem : EntitySystem +{ + [Dependency] private readonly FlammableSystem _flammable = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly IgniteFromGasSystem _ignite = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + + private const float UpdateTimer = 1f; + private float _timer; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnExamined); + + SubscribeLocalEvent>>(GetRelayedVerbs); + SubscribeLocalEvent(OnGetActions); + SubscribeLocalEvent>(OnGetVerbs); + + SubscribeLocalEvent(OnSelfExtinguish); + } + + 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/snow.svg.192dpi.png")), + Text = Loc.GetString("self-extinguisher-verb"), + }; + + verb.EventTarget = uid; + verb.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) + args.AddAction(component.ActionEntity.Value); + } + + private void OnMapInit(EntityUid uid, SelfExtinguisherComponent component, MapInitEvent args) + { + // Start out with this envirosuit filled out by default + if (component.Charges == -1) + component.Charges = component.MaxCharges; + + _actionContainer.EnsureAction(uid, ref component.ActionEntity, out var action, component.Action); + } + + private void OnSelfExtinguish(EntityUid uid, SelfExtinguisherComponent component, SelfExtinguishEvent args) + { + TryExtinguish(args.Performer, uid, component); + } + + private void TryExtinguish(EntityUid user, EntityUid uid, SelfExtinguisherComponent? selfExtinguisher = null, FlammableComponent? flammable = null) + { + if (!_container.TryGetContainingContainer(uid, out var container) || + !Resolve(container.Owner, ref flammable) || + !Resolve(uid, ref selfExtinguisher)) + return; + var target = container.Owner; + var targetIdentity = Identity.Entity(target, EntityManager); + var suffix = user == target ? "self" : "other"; + + if (!flammable.OnFire) + { + _popup.PopupEntity(Loc.GetString($"self-extinguisher-not-on-fire-{suffix}", ("item", uid), ("target", targetIdentity)), target, user); + return; + } + + if (selfExtinguisher.Charges == 0) + { + _popup.PopupEntity(Loc.GetString("self-extinguisher-no-charges", ("item", uid)), target, user); + return; + } + + var curTime = _timing.CurTime; + if (selfExtinguisher.NextExtinguish > curTime) + { + _popup.PopupEntity(Loc.GetString($"self-extinguisher-on-cooldown", ("item", uid)), target, user); + return; + } + + + if (selfExtinguisher.RequiresIgniteFromGasImmune && + ((TryComp(target, out var ignite) && !ignite.HasImmunity) || + false) ) // TODO check for ignite immunity using another way + { + _popup.PopupEntity(Loc.GetString($"self-extinguisher-not-immune-to-fire-{suffix}", ("item", uid), ("target", targetIdentity)), target, user); + return; + } + + _flammable.Extinguish(target, flammable); + + _popup.PopupPredicted( + Loc.GetString("self-extinguisher-extinguish-other", ("item", uid), ("target", targetIdentity)), + target, target + ); + _popup.PopupEntity( + Loc.GetString("self-extinguisher-extinguish-self", ("item", uid)), + target, target + ); + + selfExtinguisher.Charges -= 1; + selfExtinguisher.NextExtinguish = curTime + selfExtinguisher.Cooldown; + + _audio.PlayPvs(selfExtinguisher.Sound, uid, selfExtinguisher.Sound.Params.WithVariation(0.125f)); + } + + private void OnExamined(EntityUid uid, SelfExtinguisherComponent component, ExaminedEvent args) + { + args.PushMarkup(Loc.GetString("self-extinguisher-examine-charges", ("charges", component.Charges))); + + var curTime = _timing.CurTime; + if (component.NextExtinguish > curTime) + args.PushMarkup(Loc.GetString("self-extinguisher-examine-cooldown", ("cooldown", (component.NextExtinguish - curTime).Seconds))); + } +} diff --git a/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs b/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs index 9ba0ee4b00a..2a494ca2115 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/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 91e8b2bf981..07c1140f167 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/Speech/EntitySystems/SkeletonAccentSystem.cs b/Content.Server/Speech/EntitySystems/SkeletonAccentSystem.cs index d143c25fdba..d8326295304 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 85f5662b421..2faf78bf371 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,55 @@ public EntityUid SpawnPlayerMob( if (prototype?.StartingGear != null) { var startingGear = _prototypeManager.Index(prototype.StartingGear); + + if (profile != null && prototype.ConditionalStartingGear != null) + { + foreach (var conditionalStartingGear in prototype.ConditionalStartingGear) + { + if (!_prototypeManager.TryIndex(conditionalStartingGear.Id, out var conditionalGear) || + !_characterRequirements.CheckRequirementsValid( + conditionalStartingGear.Requirements, prototype, profile, new Dictionary(), false, conditionalGear, + EntityManager, _prototypeManager, _configurationManager, + out _)) + continue; + + if (conditionalGear.InnerClothingSkirt != null) + startingGear.InnerClothingSkirt = conditionalGear.InnerClothingSkirt; + + if (conditionalGear.Satchel != null) + startingGear.Satchel = conditionalGear.Satchel; + + if (conditionalGear.Duffelbag != null) + startingGear.Duffelbag = conditionalGear.Duffelbag; + + foreach (var (slot, entProtoId) in conditionalGear.Equipment) + { + // Don't remove items in pockets, instead put them in the backpack or hands + if (slot == "pocket1" && startingGear.Equipment.TryGetValue("pocket1", out var pocket1) || + slot == "pocket2" && startingGear.Equipment.TryGetValue("pocket2", out var pocket2)) + { + var pocketProtoId = slot == "pocket1" ? pocket1 : pocket2; + + if (!string.IsNullOrEmpty(startingGear.GetGear("back", null))) + { + if (!startingGear.Storage.ContainsKey("back")) + startingGear.Storage["back"] = new(); + startingGear.Storage["back"].Add(pocketProtoId); + } + else + startingGear.Inhand.Add(pocketProtoId); + } + + startingGear.Equipment[slot] = entProtoId; + } + + startingGear.Inhand.AddRange(conditionalGear.Inhand); + + foreach (var (slot, entProtoIds) in conditionalGear.Storage) + startingGear.Storage[slot].AddRange(entProtoIds); + } + } + EquipStartingGear(entity.Value, startingGear, raiseEvent: false); if (profile != null) EquipIdCard(entity.Value, profile.Name, prototype, station); diff --git a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs index ecb3c3fd6c5..bb1440e3a86 100644 --- a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs +++ b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs @@ -1,4 +1,5 @@ using Content.Shared.Customization.Systems; +using Content.Shared.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.Manager; @@ -15,6 +16,9 @@ public sealed partial class LoadoutPrototype : IPrototype [DataField] public ProtoId Category = "Uncategorized"; + [DataField] + public List> Groups = new(); + [DataField(required: true)] public List> Items = new(); diff --git a/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs index 865908c7069..63ac0f6d130 100644 --- a/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs +++ b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Inventory; using Content.Shared.Paint; using Content.Shared.Preferences; +using Content.Shared.Prototypes; using Content.Shared.Roles; using Content.Shared.Station; using Robust.Shared.Configuration; @@ -25,11 +26,16 @@ public sealed class SharedLoadoutSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedTransformSystem _sharedTransformSystem = default!; + private List _groupProtosWithMinItems = new(); + public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnMapInit); + + _groupProtosWithMinItems = _prototype.EnumeratePrototypes() + .Where(g => g.MinItems > 0).ToList(); } private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent args) @@ -78,20 +84,10 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a if (!job.SpawnLoadout) return (failedLoadouts, allLoadouts); - foreach (var loadout in profile.LoadoutPreferences) - { - var slot = ""; - - // Ignore loadouts that don't exist - if (!_prototype.TryIndex(loadout.LoadoutName, out var loadoutProto)) - continue; - - if (!_characterRequirements.CheckRequirementsValid( - loadoutProto.Requirements, job, profile, playTimes, whitelisted, loadoutProto, - EntityManager, _prototype, _configuration, - out _)) - continue; + var preferencesAndPrototypes = DetermineItems(uid, job, profile, playTimes, whitelisted); + foreach (var (loadout, loadoutProto) in preferencesAndPrototypes) + { // Spawn the loadout items var spawned = EntityManager.SpawnEntities( _sharedTransformSystem.GetMapCoordinates(uid), @@ -100,6 +96,8 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a var i = 0; // If someone wants to add multi-item support to the editor foreach (var item in spawned) { + var slots = new List(); + allLoadouts.Add((item, loadout, i)); if (loadout.CustomHeirloom == true) heirlooms.Add((item, loadout)); @@ -109,14 +107,13 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a && _characterRequirements.CanEntityWearItem(uid, item, true) && _inventory.TryGetSlots(uid, out var slotDefinitions)) { - var deleted = false; foreach (var curSlot in slotDefinitions) { - // If the loadout can't equip here or we've already deleted an item from this slot, skip it - if (!clothingComp.Slots.HasFlag(curSlot.SlotFlags) || deleted) + // If the loadout can't equip here, skip it + if (!clothingComp.Slots.HasFlag(curSlot.SlotFlags)) continue; - slot = curSlot.Name; + slots.Add(curSlot.Name); // If the loadout is exclusive delete the equipped item if (loadoutProto.Exclusive) @@ -126,7 +123,7 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a continue; EntityManager.DeleteEntity(slotItem.Value); - deleted = true; + break; } } } @@ -143,17 +140,212 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a } // Equip the loadout - if (!_inventory.TryEquip(uid, item, slot, true, !string.IsNullOrEmpty(slot), true)) + var equipped = false; + foreach (var slot in slots) + { + if (_inventory.TryEquip(uid, item, slot, true, !string.IsNullOrEmpty(slot), true)) + { + equipped = true; + break; + } + } + + if (!equipped) failedLoadouts.Add(item); i++; } } + var ev = new StartingGearEquippedEvent(uid); + RaiseLocalEvent(uid, ref ev); + // Return a list of items that couldn't be equipped so the server can handle it if it wants // The server has more information about the inventory system than the client does and the client doesn't need to put loadouts in backpacks return (failedLoadouts, allLoadouts); } + + /// + /// Returns a list with all items validated using the user's profile, + /// adding items based on MinItems and removing items based on MaxItems from . + /// + private List<(LoadoutPreference, LoadoutPrototype)> DetermineItems( + EntityUid uid, + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted) + { + var groupIDToGroup = new Dictionary(); + var groupIDToLoadoutIDToItem = new Dictionary>(); + var groupIDToGroupItems = new Dictionary>(); + + var loadoutIDToPreferenceAndProto = new Dictionary(); + + foreach (var (loadoutID, loadout) in profile.LoadoutPreferences.ToDictionary(l => l.LoadoutName, l => l)) + { + if (!_prototype.TryIndex(loadout.LoadoutName, out var loadoutProto) || + !_characterRequirements.CheckRequirementsValid( + loadoutProto.Requirements, job, profile, playTimes, whitelisted, loadoutProto, + EntityManager, _prototype, _configuration, + out _)) + continue; + + var skip = false; + var requirementsSucceeded = loadoutProto.Groups.Count == 0; + + foreach (var groupID in loadoutProto.Groups) + { + if (!_prototype.TryIndex(groupID, out var groupProto)) + continue; + + // Right now you only need one group requirement to pass to be eligible for the item + if (groupIDToGroup.ContainsKey(groupID)) + { + requirementsSucceeded = true; + } + else + { + if (_characterRequirements.CheckRequirementsValid( + groupProto.Requirements, job, profile, playTimes, whitelisted, groupProto, + EntityManager, _prototype, _configuration, + out _)) + requirementsSucceeded = true; + + groupIDToGroup[groupID] = groupProto; + groupIDToLoadoutIDToItem[groupID] = groupProto.Items.ToDictionary(i => i.ID, i => i); + groupIDToGroupItems[groupID] = new HashSet(); + } + + if (!groupIDToLoadoutIDToItem[groupID].TryGetValue(loadoutProto.ID, out var groupItem)) + { + Log.Error($"Expected loadout item '{loadoutProto.ID}' to be part of the items in the prototype of group '{groupID}'"); + skip = true; + } + else + { + groupIDToGroupItems[groupID].Add(groupItem); + } + } + + if (!requirementsSucceeded || skip) + continue; + + loadoutIDToPreferenceAndProto[loadoutID] = (loadout, loadoutProto); + } + + // Add groups with minimum items + foreach (var groupProto in _groupProtosWithMinItems) + { + if (groupIDToGroup.ContainsKey(groupProto.ID) || + !_characterRequirements.CheckRequirementsValid( + groupProto.Requirements, job, profile, playTimes, whitelisted, groupProto, + EntityManager, _prototype, _configuration, out _)) + continue; + + groupIDToGroup[groupProto.ID] = groupProto; + groupIDToLoadoutIDToItem[groupProto.ID] = groupProto.Items.ToDictionary(i => i.ID, i => i); + groupIDToGroupItems[groupProto.ID] = new HashSet(); + } + + if (groupIDToGroup.Count == 0) + return loadoutIDToPreferenceAndProto.Values.ToList(); + + // Use a clone for the foreach loop since we are modifying the original + var originalGroupIDToGroupItems = new Dictionary>(groupIDToGroupItems); + + // Start modifying the loadout preferences based on MinItems/MaxItems + foreach (var (groupID, items) in originalGroupIDToGroupItems) + { + if (!groupIDToGroup.TryGetValue(groupID, out var groupProto)) + continue; + + var count = items.Count; + // Remove items, prioritizing removing the higher priority items first + if (count > groupProto.MaxItems) + { + var sortedItems = items.OrderByDescending(i => i.Priority).ThenBy(i => i.ID); + + foreach (var itemToRemove in sortedItems) + { + loadoutIDToPreferenceAndProto.Remove(itemToRemove.ID); + count--; + + if (count <= groupProto.MaxItems) + break; + } + } + // For each loadout group that doesn't have enough items, add until MinItems is satisfied + else if (count < groupProto.MinItems) + { + foreach (var itemToAdd in groupProto.Items) + { + if (!_prototype.TryIndex(itemToAdd.ID, out var loadoutProto)) + continue; + + if (!_characterRequirements.CheckRequirementsValid( + loadoutProto.Requirements, job, profile, playTimes, whitelisted, loadoutProto, + EntityManager, _prototype, _configuration, + out _)) + continue; + + var skip = false; + var requirementsSucceeded = false; + + foreach (var otherGroupID in loadoutProto.Groups) + { + if (groupIDToGroup.ContainsKey(otherGroupID)) + { + requirementsSucceeded = true; + } + else + { + if (!_prototype.TryIndex(otherGroupID, out var otherGroupProto)) + continue; + + if (_characterRequirements.CheckRequirementsValid( + otherGroupProto.Requirements, job, profile, playTimes, whitelisted, otherGroupProto, + EntityManager, _prototype, _configuration, + out _)) + requirementsSucceeded = true; + + groupIDToGroup[otherGroupID] = otherGroupProto; + groupIDToLoadoutIDToItem[otherGroupID] = otherGroupProto.Items.ToDictionary(i => i.ID, i => i); + groupIDToGroupItems[otherGroupID] = new HashSet(); + } + + if (!groupIDToLoadoutIDToItem[otherGroupID].TryGetValue(loadoutProto.ID, out var _)) + { + Log.Error($"Expected loadout item '{loadoutProto.ID}' to be part of the items in the prototype of group '{otherGroupID}'"); + skip = true; + continue; + } + + // If adding this item would make other groups have more than the maximum items, don't add it + if (groupIDToGroupItems[otherGroupID].Count + 1 > groupIDToGroup[otherGroupID].MaxItems) + skip = true; + } + + if (!requirementsSucceeded || skip) + continue; + + // Add this item to other groups for the sake of counting + foreach (var otherGroupID in loadoutProto.Groups) + { + groupIDToGroupItems[otherGroupID].Add(groupIDToLoadoutIDToItem[otherGroupID][loadoutProto.ID]); + } + + loadoutIDToPreferenceAndProto[itemToAdd.ID] = (new LoadoutPreference(itemToAdd.ID), loadoutProto); + count++; + + if (count >= groupProto.MaxItems) + break; + } + } + } + + return loadoutIDToPreferenceAndProto.Values.ToList(); + } } [Serializable, NetSerializable, ImplicitDataDefinitionForInheritors] diff --git a/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs b/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs index 586fc139a02..533975f7409 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/Extinguisher/SelfExtinguisherEvents.cs b/Content.Shared/Extinguisher/SelfExtinguisherEvents.cs new file mode 100644 index 00000000000..30065ef9bf4 --- /dev/null +++ b/Content.Shared/Extinguisher/SelfExtinguisherEvents.cs @@ -0,0 +1,5 @@ +using Content.Shared.Actions; + +namespace Content.Shared.Extinguisher; + +public sealed partial class SelfExtinguishEvent : InstantActionEvent {} diff --git a/Content.Shared/Inventory/InventorySystem.Equip.cs b/Content.Shared/Inventory/InventorySystem.Equip.cs index 9e45547beed..cfcb156455b 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 91accec8c93..ae1269cbd0b 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/Prototypes/CharacterItemGroupPrototype.cs b/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs index 995ffa7ac05..a424582ea11 100644 --- a/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs +++ b/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs @@ -19,6 +19,14 @@ public sealed partial class CharacterItemGroupPrototype : IPrototype [DataField] public int MaxItems = 1; + /// The minimum amount of items required from this group. + [DataField] + public int MinItems = 0; + + /// The character requirements applied to all items in this group. + [DataField] + public List Requirements = new(); + /// An arbitrary list of traits, loadouts, etc [DataField] public List Items = new(); @@ -33,6 +41,12 @@ public sealed partial class CharacterItemGroupItem [DataField("id", required: true)] public string ID; + /// The priority for this item to be selected as the default item. + /// The higher priority items will always be selected first over + /// lower-priority items. + [DataField] + public int Priority = 0; + /// Tries to get Value from whatever Type maps to on a character profile //TODO: Make a test for this public bool TryGetValue(HumanoidCharacterProfile profile, IPrototypeManager protoMan, [NotNullWhen(true)] out object? value) diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs index 5ea9da02247..6e73ad8dec8 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? ConditionalStartingGear { get; private set; } + /// /// Use this to spawn in as a non-humanoid (borg, test subject, etc.) /// Starting gear will be ignored. @@ -142,6 +148,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, customTypeSerializer: typeof(PrototypeIdSerializer))] + public string 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 61ad7940d71..4f25bc1208f 100644 --- a/Content.Shared/Roles/StartingGearPrototype.cs +++ b/Content.Shared/Roles/StartingGearPrototype.cs @@ -8,6 +8,7 @@ namespace Content.Shared.Roles; public sealed partial class StartingGearPrototype : IPrototype, IInheritingPrototype { [DataField] + [AlwaysPushInheritance] public Dictionary Equipment = new(); /// @@ -23,12 +24,14 @@ 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(); [ViewVariables] diff --git a/Resources/Audio/Voice/Plasmaman/attributions.yml b/Resources/Audio/Voice/Plasmaman/attributions.yml new file mode 100644 index 00000000000..b61d31b2408 --- /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" + 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 00000000000..af5cbbf3c60 Binary files /dev/null and b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_1.ogg differ 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 00000000000..5824166d9f4 Binary files /dev/null and b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_2.ogg differ 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 00000000000..2aa74d10d03 Binary files /dev/null and b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_3.ogg differ diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-Bold.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-Bold.ttf new file mode 100644 index 00000000000..5bd2ad387d6 Binary files /dev/null and b/Resources/Fonts/LDFComicSans/LDFComicSans-Bold.ttf differ diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-HairlineMedium.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-HairlineMedium.ttf new file mode 100644 index 00000000000..4da200d1541 Binary files /dev/null and b/Resources/Fonts/LDFComicSans/LDFComicSans-HairlineMedium.ttf differ diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-Light.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-Light.ttf new file mode 100644 index 00000000000..d041f189811 Binary files /dev/null and b/Resources/Fonts/LDFComicSans/LDFComicSans-Light.ttf differ diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-Medium.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-Medium.ttf new file mode 100644 index 00000000000..38b3abf939e Binary files /dev/null and b/Resources/Fonts/LDFComicSans/LDFComicSans-Medium.ttf differ diff --git a/Resources/Fonts/LDFComicSans/LICENSE.txt b/Resources/Fonts/LDFComicSans/LICENSE.txt new file mode 100644 index 00000000000..f979389d95e --- /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 b9d3b6269dc..d771ddc952d 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 00c41130eaa..078d930fd1d 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 = Scapulan 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 7f224256854..d8356dfa2de 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 00000000000..e69de29bb2d diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index fb3b1a1d046..0040436899d 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 = Scapulan +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/metabolism/metabolizer-types.ftl b/Resources/Locale/en-US/metabolism/metabolizer-types.ftl index d0f57e2bc0b..97d5c068c41 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 aa348ce6274..213fbb74431 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/examine.ftl b/Resources/Locale/en-US/self-extinguisher/examine.ftl new file mode 100644 index 00000000000..032ac10f801 --- /dev/null +++ b/Resources/Locale/en-US/self-extinguisher/examine.ftl @@ -0,0 +1,9 @@ +self-extinguisher-examine-charges = There { $charges -> + [1] is + *[other] are +} [color=magenta]{$charges}[/color] extinguisher { $charges -> + [1] charge + *[other] charges +} left. + +self-extinguisher-examine-cooldown = The extinguisher is recharging for [color=teal]{$cooldown}[/color] seconds. 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 00000000000..36ac1b0140e --- /dev/null +++ b/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl @@ -0,0 +1,13 @@ +self-extinguisher-verb = Self-Extinguish + +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-immune-to-fire-self = You are not insulated against fire! + +self-extinguisher-not-on-fire-other = {$target} {CONJUGATE-BE($target)} not on 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}! diff --git a/Resources/Locale/en-US/species/species.ftl b/Resources/Locale/en-US/species/species.ftl index bfebc705c56..6ffc9ac2bd5 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/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 92fa6f74a22..92517e07b90 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. @@ -180,7 +183,7 @@ trait-description-Feeble = trait-name-MartialArtist = Martial Artist trait-description-MartialArtist = You have received formal training in unarmed combat, whether with Fists, Feet, or Claws. - Your unarmed melee attacks have a small range increase, and deal 50% more damage. + Your unarmed melee attacks have a small range increase, and deal 50% more [color=red]Brute[/color] damage. This does not apply to any form of armed melee, only the weapons you were naturally born with. trait-name-Vigor = Vigor @@ -198,6 +201,18 @@ trait-description-SignLanguage = You can understand and use Tau-Ceti Basic Sign Language (TCB-SL). If you are mute for any reason, you can still communicate with sign language. +trait-name-PlasmafirePunch = Plasmafire Punch +trait-description-PlasmafirePunch = + Infuse your fists with plasma dust that combusts upon a burst of force. + Your unarmed attack deals [color=gray]6[/color] [color=orange]Heat[/color] and [color=gray]1.5[/color] [color=red]Blunt[/color] damage. + However, each combustion deals [color=gray]1.2[/color] [color=orange]Heat[/color] damage to your hands. + +trait-name-ToxoplasmicPunch = Toxoplasmic Punch +trait-description-ToxoplasmicPunch = + Infuse your fists with sharp plasma shards that poison on contact. + Your unarmed attack deals [color=gray]6.5[/color] [color=green]Poison[/color] and [color=gray]1.5[/color] [color=red]Slash[/color] damage. + However, the shards cut into your hands and each attack deals [color=gray]1.5[/color] [color=red]Slash[/color] damage to your hands. + trait-name-SolCommon = Sol Common trait-description-SolCommon = With its roots in Mandarin Chinese - Common evolved as the official language of the Sol Alliance - with officials working to tie it together with a common tongue. diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 0a57157f1b2..121fe65f358 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -197,6 +197,17 @@ useDelay: 1 # equip noise spam. event: !type:ToggleClothingEvent +- type: entity + id: ActionSelfExtinguish + name: Self-Extinguish + description: Puts out the fire in you. + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + itemIconStyle: BigItem + useDelay: 1 + event: !type:SelfExtinguishEvent + - type: entity id: ActionCombatModeToggle name: "[color=red]Combat Mode[/color]" @@ -443,4 +454,3 @@ components: - type: InstantAction useDelay: 4 - diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index 449f40a2123..b9655de9883 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 00000000000..5965c615ca5 --- /dev/null +++ b/Resources/Prototypes/Body/Organs/plasmaman.yml @@ -0,0 +1,122 @@ +- type: entity + id: OrganPlasmamanLungs + parent: 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 + sprite: Mobs/Species/Plasmaman/organs.rsi + state: lungs + layers: [] + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Lung + alert: LowPlasma + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanStomach + parent: OrganHumanStomach + name: plasmaman stomach + description: "Why do plasmamen have stomachs if they don't need to eat?" + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanEyes + parent: OrganHumanEyes + name: plasmaman eyes + components: # TODO: add plasmaman eyes sprite + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanLiver + parent: OrganHumanLiver + name: plasmaman liver + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanTongue + parent: OrganHumanTongue + name: plasmaman tongue + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanKidneys + parent: OrganHumanKidneys + name: plasmaman kidneys + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + state: kidneys + layers: [] + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanHeart + parent: OrganHumanHeart + name: plasmaman heart + description: "It pulses with plasma even outside the body." + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Butcherable + butcheringType: Knife + butcherDelay: 5.0 + spawned: + - id: SheetPlasma1 + amount: 1 + +- type: entity + id: OrganPlasmamanBrain + parent: OrganHumanBrain + name: plasmaman brain + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi diff --git a/Resources/Prototypes/Body/Parts/plasmaman.yml b/Resources/Prototypes/Body/Parts/plasmaman.yml new file mode 100644 index 00000000000..08a4e802ad3 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/plasmaman.yml @@ -0,0 +1,130 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartPlasmaman + parent: [BaseItem, BasePart] + name: "plasmaman body part" + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Plasma + Quantity: 3 + - type: IgniteFromGasPart + gas: Oxygen + +- type: entity + id: TorsoPlasmaman + name: "plasmaman torso" + parent: [PartPlasmaman, BaseTorso] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Plasma + Quantity: 6 + - type: IgniteFromGasPart + fireStacks: 0.06 + +- type: entity + id: HeadPlasmaman + name: "plasmaman head" + parent: [PartPlasmaman, BaseHead] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "head_m" + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftArmPlasmaman + name: "left plasmaman arm" + parent: [PartPlasmaman, BaseLeftArm] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "l_arm" + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: RightArmPlasmaman + name: "right plasmaman arm" + parent: [PartPlasmaman, BaseRightArm] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "r_arm" + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftHandPlasmaman + name: "left plasmaman hand" + parent: [PartPlasmaman, BaseLeftHand] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "l_hand" + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: RightHandPlasmaman + name: "right plasmaman hand" + parent: [PartPlasmaman, BaseRightHand] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "r_hand" + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: LeftLegPlasmaman + name: "left plasmaman leg" + parent: [PartPlasmaman, BaseLeftLeg] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "l_leg" + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: RightLegPlasmaman + name: "right plasmaman leg" + parent: [PartPlasmaman, BaseRightLeg] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "r_leg" + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftFootPlasmaman + name: "left plasmaman foot" + parent: [PartPlasmaman, BaseLeftFoot] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "l_foot" + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: RightFootPlasmaman + name: "right plasmaman foot" + parent: [PartPlasmaman, BaseRightFoot] + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + state: "r_foot" + - 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 00000000000..a41ad0802a9 --- /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 c04e49f413c..1157eea4ca4 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml @@ -68,6 +68,16 @@ category: cargoproduct-category-name-emergency group: market +- type: cargoProduct + id: EmergencyPlasmamanLifeSupport + icon: + sprite: Objects/Tanks/plasmaman.rsi + state: icon + product: CratePlasmamanLifeSupport + cost: 500 + 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 52f231d1a67..3e99c3a61b4 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 9532fbf74e6..04800719dc8 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml @@ -50,6 +50,8 @@ amount: 3 - id: NitrogenTankFilled amount: 3 + - id: PlasmaTankFilled + amount: 3 - id: ClothingOuterSuitEmergency amount: 3 @@ -69,6 +71,8 @@ amount: 6 - id: NitrogenTankFilled amount: 6 + - id: PlasmaTankFilled + amount: 6 - id: ClothingOuterSuitEmergency amount: 6 @@ -87,6 +91,23 @@ - id: NitrogenTankFilled amount: 4 +- type: entity + id: CratePlasmamanLifeSupport + parent: CrateInternals + name: plasmaman life support crate + description: Contains four breath masks, four envirosuits, four envirosuit helmets and eight plasma internals tanks. + components: + - type: StorageFill + contents: + - id: ClothingMaskBreath + amount: 4 + - id: ClothingUniformEnvirosuit + amount: 4 + - id: ClothingHeadEnvirohelm + amount: 4 + - id: DoubleEmergencyPlasmaTankFilled + amount: 8 + - 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 ba97af39250..82f5bd6aa69 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/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml index 2cf1354c143..b547287863e 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: + # 4 minutes + 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: + # 9 minutes + 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: + # 15 minutes + 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 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml index fce18024a7e..7dbcce131b0 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/CharacterItemGroups/Species/Plasmaman/envirogloves.yml b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirogloves.yml new file mode 100644 index 00000000000..425624df61c --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirogloves.yml @@ -0,0 +1,13 @@ +- type: characterItemGroup + id: LoadoutPlasmamanEnvirogloves + minItems: 0 + maxItems: 1 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - type: loadout + id: LoadoutSpeciesHandsGlovesEnvirogloves + priority: 0 + # TODO add the rest of the envirogloves diff --git a/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirohelm.yml b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirohelm.yml new file mode 100644 index 00000000000..bceb7fd4132 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirohelm.yml @@ -0,0 +1,19 @@ +- type: characterItemGroup + id: LoadoutPlasmamanEnvirohelm + minItems: 0 + maxItems: 1 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - type: loadout + id: LoadoutSpeciesHeadEnvirohelm + priority: 0 + - type: loadout + id: LoadoutSpeciesHeadEnvirohelmCaptain + priority: 10 + - type: loadout + id: LoadoutSpeciesHeadEnvirohelmHoP + priority: 10 + # TODO add the rest of the envirohelms diff --git a/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirosuit.yml b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirosuit.yml new file mode 100644 index 00000000000..215869cf28e --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/envirosuit.yml @@ -0,0 +1,19 @@ +- type: characterItemGroup + id: LoadoutPlasmamanEnvirosuit + minItems: 0 + maxItems: 1 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - type: loadout + id: LoadoutSpeciesUniformEnvirosuit + priority: 0 + - type: loadout + id: LoadoutSpeciesUniformEnvirosuitCaptain + priority: 10 + - type: loadout + id: LoadoutSpeciesUniformEnvirosuitHoP + priority: 10 + # TODO add the rest of the envirosuits diff --git a/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/plasmatank.yml b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/plasmatank.yml new file mode 100644 index 00000000000..09ad4f95c28 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Species/Plasmaman/plasmatank.yml @@ -0,0 +1,12 @@ +- type: characterItemGroup + id: LoadoutPlasmamanPlasmaTank + minItems: 0 + maxItems: 1 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - type: loadout + id: LoadoutSpeciesDoubleEmergencyPlasmaTank + priority: 0 diff --git a/Resources/Prototypes/Chemistry/metabolizer_types.yml b/Resources/Prototypes/Chemistry/metabolizer_types.yml index 80f69893c6e..38126135849 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 3cc2bb4fd7d..f4ac6d9b74e 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -372,6 +372,16 @@ 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 + Radiation: 0 + - 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 00000000000..470811d5e71 --- /dev/null +++ b/Resources/Prototypes/Datasets/Names/plasmaman.yml @@ -0,0 +1,254 @@ +- 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 diff --git a/Resources/Prototypes/Datasets/Names/plasmaman_last.yml b/Resources/Prototypes/Datasets/Names/plasmaman_last.yml new file mode 100644 index 00000000000..a2d2c0a6d67 --- /dev/null +++ b/Resources/Prototypes/Datasets/Names/plasmaman_last.yml @@ -0,0 +1,124 @@ +- type: dataset + id: names_plasmaman_last + values: + - I + - II + - III + - IV + - V + - VI + - VII + - VIII + - IX + - X + - XI + - XII + - XIII + - XIV + - XV + - XVI + - XVII + - XVIII + - XIX + - XX + - XXI + - XXII + - XXIII + - XXIV + - XXV + - XXVI + - XXVII + - XXVIII + - XXIX + - XXX + - XXXI + - XXXII + - XXXIII + - XXXIV + - XXXV + - XXXVI + - XXXVII + - XXXVIII + - XXXIX + - XL + - XLI + - XLII + - XLIII + - XLIV + - XLV + - XLVI + - XLVII + - XLVIII + - XLIX + - L + - LI + - LII + - LIII + - LIV + - LV + - LVI + - LVII + - LVIII + - LIX + - LX + - LXI + - LXII + - LXIII + - LXIV + - LXV + - LXVI + - LXVII + - LXVIII + - LXIX + - LXX + - LXXI + - LXXII + - LXXIII + - LXXIV + - LXXV + - LXXVI + - LXXVII + - LXXVIII + - LXXIX + - LXXX + - LXXXI + - LXXXII + - LXXXIII + - LXXXIV + - LXXXV + - LXXXVI + - LXXXVII + - LXXXVIII + - LXXXIX + - XC + - XCI + - XCII + - XCIII + - XCIV + - XCV + - XCVI + - XCVII + - XCVIII + - XCIX + # Milestones + # TODO: might actually use a function to generate roman numerals with 1-100 having much bigger weight + - C + - CI + - CV + - CX + - CL + - CC + - CD + - D + - DI + - DV + - DX + - DL + - DC + - CM + - M + - MI + - MV + - MX + - ML + - MC diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml index 1483d646605..dad82de8abb 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml @@ -26,6 +26,11 @@ department: Epistemics min: 10800 # 3 hours startingGear: AdminAssistantGear + conditionalStartingGear: + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconAdminAssitant" supervisors: job-supervisors-command canBeAntag: false @@ -46,4 +51,4 @@ id: AdminAssistantPDA ears: ClothingHeadsetAdminAssist shoes: ClothingShoesLeather - innerClothingSkirt: ClothingUniformJumpskirtAdminAssistant \ No newline at end of file + innerClothingSkirt: ClothingUniformJumpskirtAdminAssistant diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml index 8f76050d882..7896d62f947 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml @@ -18,6 +18,11 @@ - !type:CharacterWhitelistRequirement # whitelist requirement because I don't want any dingus judges weight: 20 startingGear: CJGear + conditionalStartingGear: + - id: LawyerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconChiefJustice" requireAdminNotify: true supervisors: job-supervisors-captain diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml index c2032b67ebe..e68a5664380 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml @@ -17,6 +17,11 @@ startingGear: ClerkGear + conditionalStartingGear: + - id: LawyerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconClerk" requireAdminNotify: true supervisors: job-supervisors-cj diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml index e0cebc4417a..1d041088b77 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 36000 # 10 hrs startingGear: ProsecutorGear + conditionalStartingGear: + - id: LawyerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconProsecutor" supervisors: job-supervisors-cj access: diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml index 44f32ffc8d7..01e0a953760 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml @@ -11,6 +11,11 @@ department: Security min: 18000 # 4 hrs startingGear: CorpsmanGear + conditionalStartingGear: # TODO: corpsman plasmaman gear + - id: SecurityOfficerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconBrigmedic" supervisors: job-supervisors-hos canBeAntag: false diff --git a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml index 02cf0ab6f67..37d9ed485fe 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml @@ -44,3 +44,14 @@ - 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 diff --git a/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml new file mode 100644 index 00000000000..2f0790f6adb --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml @@ -0,0 +1,450 @@ +- 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: TODO + description: TODO + 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: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/nitrile.rsi + - type: Clothing + sprite: Clothing/Hands/Gloves/nitrile.rsi + - type: Fiber + fiberMaterial: fibers-nitrile + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesWhite + name: TODO + description: TODO + 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: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesRoboticist + name: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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: TODO + description: TODO + 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 # TODO add HoP envirogloves sprite + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#0000ff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#0000ff" + right: + - state: inhand-right + color: "#0000ff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#0000ff" + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesChiefEngineer + name: TODO + description: TODO + 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: TODO + description: TODO + 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 diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml index 08a3eb568fe..24e33af3db5 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml @@ -126,6 +126,7 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.2 + - type: IgniteFromGasImmunity - type: IngestionBlocker - type: Clothing #Copies ClothingHeadHardsuitBase behavior @@ -135,6 +136,7 @@ tags: - WhitelistChameleon - HelmetEVA + - PlasmamanSafe - type: IdentityBlocker - type: HideLayerClothing slots: @@ -165,6 +167,7 @@ coefficient: 0.1 - type: FireProtection reduction: 0.2 + - type: IgniteFromGasImmunity - type: Armor modifiers: coefficients: @@ -178,12 +181,77 @@ - type: Tag tags: - WhitelistChameleon + - PlasmamanSafe - type: IdentityBlocker - type: HideLayerClothing slots: - Hair - Snout +- type: entity + abstract: true + id: ClothingHeadEnvirohelmBase + parent: ClothingHeadBase + name: base envirosuit helmet + components: + - type: IgniteFromGasImmunity + - 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 + - PlasmamanSafe + - type: HideLayerClothing + slots: + - Hair + - Snout + - type: ToggleableLightVisuals + - type: PointLight + enabled: false + radius: 3 + energy: 2 + 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: Battery + maxCharge: 300 #lights drain 3/s but recharge of 2 makes this 1/s. Therefore 300 is 5 minutes of light. + startingCharge: 300 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 2 #recharge of 2 makes total drain 1w / s so max charge is 1:1 with time. Time to fully charge should be 2.5 minutes. Having recharge gives light an extended flicker period which gives you some warning to return to light area. + - type: Armor + modifiers: + coefficients: + Caustic: 0.90 + - 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 00000000000..877a1158072 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml @@ -0,0 +1,307 @@ +- 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: Clothing + sprite: Clothing/Head/Envirohelms/plain.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmAtmos + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/atmos.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/atmos.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCargo + name: TODO + description: TODO + 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: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/ce.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/ce.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChaplain + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/chaplain.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/chaplain.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmDetective + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/white.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/white.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmWhite + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/white.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/white.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChemist + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/chemist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/chemist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmClown + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/clown.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/clown.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCMO + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/cmo.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/cmo.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmEngineering + name: TODO + description: TODO + 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: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hos.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hos.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHydroponics + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hydroponics.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hydroponics.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmJanitor + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/janitor.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/janitor.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmLibrarian + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/librarian.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/librarian.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmMedicalDoctor + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/medical.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/medical.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmMime + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/mime.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/mime.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmParamedic + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/paramedic.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/paramedic.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmPrisoner + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/prisoner.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/prisoner.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmResearchDirector + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/rd.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/rd.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmRoboticist + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/roboticist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/roboticist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmSalvage + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/salvage.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/salvage.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmScientist + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/scientist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/scientist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmSec + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/security.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/security.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmVirology + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/virology.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/virology.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmWarden + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/warden.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/warden.rsi diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 1d938911a1a..d550c5c1674 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -137,6 +137,7 @@ coefficient: 0.01 - type: FireProtection reduction: 0.75 # almost perfectly sealed, atmos firesuit is better + - type: IgniteFromGasImmunity - type: ClothingSpeedModifier walkModifier: 0.4 sprintModifier: 0.6 @@ -164,6 +165,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 +206,7 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.01 # Not complete protection from fire + - type: IgniteFromGasImmunity - type: ClothingSpeedModifier walkModifier: 0.8 sprintModifier: 0.8 @@ -214,6 +217,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 0a8e440e5b3..cd6cdd0cb02 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml @@ -152,3 +152,29 @@ - state: icon_flipped map: ["foldedLayer"] visible: true + +- type: entity + abstract: true + parent: [ClothingUniformBase, AllowSuitStorageClothing] # suit storage is a temporary stopgap before we get more clever tank storage ways + id: ClothingUniformEnvirosuitBase + components: + - type: IgniteFromGasImmunity + - type: Item + size: Huge + - type: Clothing + equipDelay: 1 + unequipDelay: 0.75 + - type: SelfExtinguisher + maxCharges: 5 + cooldown: 100 + requiresIgniteFromGasImmune: true + sound: + path: /Audio/Effects/extinguish.ogg + - type: Armor + modifiers: + coefficients: + Caustic: 0.85 + - type: Tag + tags: + - WhitelistChameleon + - PlasmamanSafe diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml new file mode 100644 index 00000000000..1e77e19ed84 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml @@ -0,0 +1,310 @@ +- 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. Despite being airtight, it's not spaceworthy. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitAtmos + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/atmos.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/atmos.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCargo + name: TODO + description: TODO + 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: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/ce.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/ce.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChaplain + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chaplain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chaplain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChef + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chef.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chef.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChemist + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chemist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chemist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitClown + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/clown.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/clown.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCMO + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/cmo.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/cmo.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitEngineering + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/engineering.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/engineering.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitEnviroslacks + name: enviroslacks + description: The pet project of a posh plasmaman. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/enviroslacks.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/enviroslacks.rsi + +- 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: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hos.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hos.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHydroponics + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hydroponics.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hydroponics.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitJanitor + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/janitor.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/janitor.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitLibrarian + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/librarian.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/librarian.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitMedicalDoctor + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/medical.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/medical.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitMime + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/mime.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/mime.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitParamedic + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/paramedic.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/paramedic.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitPrisoner + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/prisoner.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/prisoner.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitResearchDirector + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/rd.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/rd.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitRoboticist + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/roboticist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/roboticist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitSalvage + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/salvage.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/salvage.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitScientist + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/scientist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/scientist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitSec + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/security.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/security.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitVirology + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/virology.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/virology.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitWarden + name: TODO + description: TODO + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/warden.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/warden.rsi + +# TODO deal with adding commander, official and intern, using their equivalent ss14 CC jumpsuit names +# TODO add enviroslacks diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 794d0fb90c7..90ea582271b 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/Player/plasmaman.yml b/Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml new file mode 100644 index 00000000000..7fa3bf2f869 --- /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 00000000000..c785e27ab85 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml @@ -0,0 +1,92 @@ +- type: entity + parent: BaseMobSpeciesOrganic + id: BaseMobPlasmaman + name: Urist McPlasma + abstract: true + components: + - type: Icon + sprite: Mobs/Species/Skeleton/parts.rsi + state: full + - type: Carriable + - type: Body + prototype: Plasmaman + requiredLegs: 2 + - 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: TemperatureProtection + coefficient: 0.1 # Since plasmaman are immune to cold this just prevents the Too Cold alert from showing up + - type: DamageVisuals + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#555555AA" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + - type: Speech + speechVerb: Skeleton + - type: Vocal + sounds: + Male: UnisexPlasmaman + Female: UnisexPlasmaman + Unsexed: UnisexPlasmaman + - type: Butcherable + butcheringType: Spike + spawned: + - id: SheetPlasma1 + amount: 4 + - type: Inventory + templateId: plasmaman + - type: Temperature + heatDamageThreshold: 313 # 40 celsius + # coldDamageThreshold: 195 # -78.5 celsius # Just set this to default cause it wont make a difference + currentTemperature: 270.15 # -3 celsius + specificHeat: 46 + coldDamage: + types: + Cold: 0.00 + 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 5f9812f4909..60606a92fc9 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/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index 4db76a97968..f4beaef8612 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 + - 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 + - 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/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index f7b77b7ec6f..c463783fcfa 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -13,6 +13,7 @@ - IPCs - Harpy - Shadowkin + - Plasmaman - type: guideEntry id: Arachnid @@ -58,8 +59,13 @@ 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: 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 00000000000..c295cf120b1 --- /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 00000000000..840f00850e8 --- /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/species.yml b/Resources/Prototypes/Loadouts/Generic/species.yml index e7455a00fbe..8a2f050f6a9 100644 --- a/Resources/Prototypes/Loadouts/Generic/species.yml +++ b/Resources/Prototypes/Loadouts/Generic/species.yml @@ -39,3 +39,111 @@ group: LoadoutAirTank items: - DoubleEmergencyNitrogenTankFilled + +- type: loadout + id: LoadoutSpeciesDoubleEmergencyPlasmaTank + category: Species + groups: [ LoadoutPlasmamanPlasmaTank ] + cost: 0 + items: + - DoubleEmergencyPlasmaTankFilled + +# Envirosuit + +- type: loadout + id: LoadoutSpeciesUniformEnvirosuit + category: Uniform + groups: [ LoadoutPlasmamanEnvirosuit ] + cost: 0 + exclusive: true + items: + - ClothingUniformEnvirosuit + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + +- type: loadout + id: LoadoutSpeciesUniformEnvirosuitCaptain + category: Uniform + groups: [ LoadoutPlasmamanEnvirosuit ] + cost: 0 + exclusive: true + items: + - ClothingUniformEnvirosuitCaptain + requirements: + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutSpeciesUniformEnvirosuitHoP + category: Uniform + groups: [ LoadoutPlasmamanEnvirosuit ] + cost: 0 + exclusive: true + items: + - ClothingUniformEnvirosuitHoP + requirements: + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + +# Envirohelm + +- type: loadout + id: LoadoutSpeciesHeadEnvirohelm + category: Head + groups: [ LoadoutPlasmamanEnvirohelm ] + cost: 0 + exclusive: true + items: + - ClothingHeadEnvirohelm + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + +- type: loadout + id: LoadoutSpeciesHeadEnvirohelmCaptain + category: Head + groups: [ LoadoutPlasmamanEnvirohelm ] + cost: 0 + exclusive: true + items: + - ClothingHeadEnvirohelmCaptain + requirements: + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutSpeciesHeadEnvirohelmHoP + category: Head + groups: [ LoadoutPlasmamanEnvirohelm ] + cost: 0 + exclusive: true + items: + - ClothingHeadEnvirohelmHoP + requirements: + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + +- type: loadout + id: LoadoutSpeciesHandsGlovesEnvirogloves + category: Hands + groups: [ LoadoutPlasmamanEnvirogloves ] + cost: 0 + exclusive: true + items: + - ClothingHandsGlovesEnvirogloves + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + +# TODO add the rest of the envirosuits, envirohelms, envirogloves diff --git a/Resources/Prototypes/Mood/genericPositiveEffects.yml b/Resources/Prototypes/Mood/genericPositiveEffects.yml index 3af8ec052a6..3f71622bcd1 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: HeirloomLost + +- 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 5a90e77a58a..055ebec8bf2 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml @@ -3,6 +3,11 @@ name: job-name-mail-carrier description: job-description-mail-carrier startingGear: CourierGear + conditionalStartingGear: # TODO: courier-unique plasmaman gear + - id: CargoTechPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] playTimeTracker: JobMailCarrier icon: "JobIconMailCarrier" supervisors: job-supervisors-qm diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index 961bbf05fd0..a530e64c320 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -19,6 +19,11 @@ traits: - AnomalousPositronics startingGear: ForensicMantisGear + conditionalStartingGear: # TODO: forensic mantis plasmaman gear + - id: ScientistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconForensicMantis" supervisors: job-supervisors-rd antagAdvantage: 5 # DeltaV - From 4 to 5 diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml index fec6ac685ed..a9a409b2128 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml @@ -10,6 +10,11 @@ department: Security min: 14400 startingGear: PrisonGuardGear + conditionalStartingGear: # TODO: prison guard plasmaman gear + - id: SecurityOfficerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] alwaysUseSpawner: true canBeAntag: false icon: "JobIconPrisonGuard" diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml index 3651d223d77..fa197c35c3a 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml @@ -4,6 +4,11 @@ description: job-description-gladiator playTimeTracker: JobGladiator startingGear: NyanoGladiatorGear + conditionalStartingGear: # TODO: gladiator plasmaman gear + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] alwaysUseSpawner: true canBeAntag: false icon: "JobIconGladiator" diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml index 8c3c80c72fd..1c445b69f5e 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 #2 hours startingGear: MartialArtistGear + conditionalStartingGear: # TODO: martial artist plasmaman gear + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconMartialArtist" supervisors: job-supervisors-hop setPreference: true diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml index 4f5551a2b3e..d0f6f728110 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml @@ -4,6 +4,11 @@ description: job-description-prisoner playTimeTracker: JobPrisoner startingGear: PrisonerGear + conditionalStartingGear: + - id: PrisonerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] alwaysUseSpawner: true canBeAntag: false # whitelistRequired: true @@ -26,3 +31,11 @@ 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 891067b1c1f..2502441d6c2 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 3f9fb7b53d2..52b65331534 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 caa2e5acdc6..cf827dd7e9c 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: + CarbonDioxide: 1.0 # TODO: evaluate gas type for plasmaman exhale + 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: 5 + moodPrototype: PlasmamanIngestPlasma reactiveEffects: Flammable: methods: [ Touch ] diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index f79a30e5fd6..28b0e60e316 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -5,6 +5,11 @@ playTimeTracker: JobCargoTechnician antagAdvantage: 2 # DeltaV - Reduced TC: External Access startingGear: CargoTechGear + conditionalStartingGear: + - id: CargoTechPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconCargoTechnician" supervisors: job-supervisors-qm access: @@ -27,3 +32,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 ee1a101154a..d3ed4fc7583 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -21,6 +21,11 @@ min: 144000 #40 hrs weight: 10 startingGear: QuartermasterGear + conditionalStartingGear: # Quartermasters have the same gear as cargo techs. Ouch. + - id: CargoTechPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconQuarterMaster" supervisors: job-supervisors-captain canBeAntag: false diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml index 8b806009ef8..d51fd95c4af 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml @@ -12,6 +12,11 @@ # time: 36000 #10 hrs icon: "JobIconShaftMiner" startingGear: SalvageSpecialistGear + conditionalStartingGear: + - id: SalvageSpecialistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] supervisors: job-supervisors-qm access: - Cargo @@ -29,3 +34,11 @@ ears: ClothingHeadsetCargo satchel: ClothingBackpackSatchelSalvageFilled duffelbag: ClothingBackpackDuffelSalvageFilled + +- type: startingGear + id: SalvageSpecialistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSalvage + head: ClothingHeadEnvirohelmSalvage + gloves: ClothingHandsGlovesEnviroglovesSalvage diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml index 5cf4fd9449b..cadff6a3c74 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml @@ -4,6 +4,11 @@ description: job-description-passenger playTimeTracker: JobPassenger startingGear: PassengerGear + conditionalStartingGear: + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconPassenger" supervisors: job-supervisors-everyone access: @@ -20,3 +25,11 @@ innerClothingSkirt: ClothingUniformJumpskirtColorGrey satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: PassengerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuit + head: ClothingHeadEnvirohelm + gloves: ClothingHandsGlovesEnvirogloves diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index 85a86dabce3..a4bd4183d60 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -8,6 +8,11 @@ department: Civilian min: 3600 #DeltaV startingGear: BartenderGear + conditionalStartingGear: + - id: BartenderPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconBartender" supervisors: job-supervisors-hop access: @@ -31,3 +36,11 @@ innerClothingSkirt: ClothingUniformJumpskirtBartender satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: BartenderPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml index 35b858fb388..fae143ccab1 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml @@ -4,6 +4,11 @@ description: job-description-botanist playTimeTracker: JobBotanist startingGear: BotanistGear + conditionalStartingGear: + - id: BotanistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconBotanist" supervisors: job-supervisors-hop access: @@ -27,3 +32,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 fe7175172d2..27a2ee9fde4 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml @@ -23,6 +23,11 @@ species: - Shadowkin startingGear: ChaplainGear + conditionalStartingGear: + - id: ChaplainPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconChaplain" supervisors: job-supervisors-rd access: @@ -52,3 +57,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 0837f1f3907..985e14856e2 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -8,6 +8,11 @@ department: Civilian min: 3600 #DeltaV 1 hour startingGear: ChefGear + conditionalStartingGear: + - id: ChefPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconChef" supervisors: job-supervisors-hop access: @@ -37,3 +42,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChef satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ChefPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChef + head: ClothingHeadEnvirohelmWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index 8cc8f5c6a72..bedc58506b3 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement # DeltaV - Playtime requirement min: 7200 #2 hrs startingGear: ClownGear + conditionalStartingGear: + - id: ClownPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconClown" supervisors: job-supervisors-hop access: @@ -43,3 +48,11 @@ ears: ClothingHeadsetService satchel: ClothingBackpackSatchelClownFilled duffelbag: ClothingBackpackDuffelClownFilled + +- type: startingGear + id: ClownPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitClown + head: ClothingHeadEnvirohelmClown + gloves: ClothingHandsGlovesEnviroglovesClown diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index bf11532ddbf..081f55c5ae1 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -4,6 +4,11 @@ description: job-description-janitor playTimeTracker: JobJanitor startingGear: JanitorGear + conditionalStartingGear: + - id: JanitorPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconJanitor" supervisors: job-supervisors-hop access: @@ -30,6 +35,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 b8e37c2bebf..6f211a0ebd4 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -10,6 +10,11 @@ - !type:CharacterDepartmentTimeRequirement # DeltaV - Security dept time requirement department: Security min: 14400 # 4 hours + conditionalStartingGear: + - id: LawyerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] startingGear: LawyerGear icon: "JobIconLawyer" supervisors: job-supervisors-cj # Delta V - Change supervisor to chief justice @@ -32,3 +37,11 @@ innerClothingSkirt: ClothingUniformJumpskirtLawyerBlack satchel: ClothingBackpackSatchelLawyerFilled #DeltaV - stamp included duffelbag: ClothingBackpackDuffelLawyerFilled #DeltaV - stamp included + +- type: startingGear + id: LawyerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml index 3468d10f278..c5d9e639247 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml @@ -23,6 +23,11 @@ species: - Shadowkin startingGear: LibrarianGear + conditionalStartingGear: + - id: LibrarianPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconLibrarian" supervisors: job-supervisors-rd access: @@ -53,3 +58,11 @@ innerClothingSkirt: ClothingUniformJumpskirtLibrarian satchel: ClothingBackpackSatchelLibrarianFilled duffelbag: ClothingBackpackDuffelLibrarianFilled + +- type: startingGear + id: LibrarianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitLibrarian + head: ClothingHeadEnvirohelmLibrarian + gloves: ClothingHandsGlovesEnviroglovesPrototype diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index 6aa6d02aecb..995b310ab5b 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 # DeltaV - 2 hours startingGear: MimeGear + conditionalStartingGear: + - id: MimePlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconMime" supervisors: job-supervisors-hop access: @@ -37,6 +42,14 @@ satchel: ClothingBackpackSatchelMimeFilled duffelbag: ClothingBackpackDuffelMimeFilled +- type: startingGear + id: MimePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMime + head: ClothingHeadEnvirohelmMime + gloves: ClothingHandsGlovesEnviroglovesWhite + - 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 28f9c597e58..09a279a6067 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 # DeltaV - 2 hours startingGear: MusicianGear + conditionalStartingGear: # TODO: musician plasmaman gear + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconMusician" supervisors: job-supervisors-hire access: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml index 8bfd05ad014..e2a1a5b4dad 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 @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 # DeltaV - 2 hours startingGear: ServiceWorkerGear + conditionalStartingGear: # TODO: service worker plasmaman gear + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconServiceWorker" supervisors: job-supervisors-service canBeAntag: true # DeltaV - Can be antagonist diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml index d16be5c350a..2bcba6e517c 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml @@ -3,6 +3,11 @@ name: job-name-visitor description: job-description-visitor playTimeTracker: JobVisitor + conditionalStartingGear: + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] canBeAntag: false icon: JobIconVisitor setPreference: false diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 30b9a69d12f..14ff15c03b7 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -27,7 +27,12 @@ - !type:CharacterWhitelistRequirement weight: 20 startingGear: CaptainGear - icon: JobIconCaptain + conditionalStartingGear: + - id: CaptainPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + icon: "JobIconCaptain" requireAdminNotify: true joinNotifyCrew: true supervisors: job-supervisors-centcom @@ -52,3 +57,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/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index feda9c0f466..ac3ce537d55 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -21,6 +21,11 @@ min: 90000 # 25 hours weight: 10 # DeltaV - Changed HoP weight from 20 to 10 due to them not being more important than other Heads startingGear: HoPGear + conditionalStartingGear: + - id: HoPPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconHeadOfPersonnel" requireAdminNotify: true supervisors: job-supervisors-captain @@ -78,3 +83,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 a3bba1547a4..e5a14a10638 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -9,6 +9,11 @@ department: Engineering min: 36000 # DeltaV - 10 hours startingGear: AtmosphericTechnicianGear + conditionalStartingGear: + - id: AtmosphericTechnicianPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconAtmosphericTechnician" supervisors: job-supervisors-ce access: @@ -28,3 +33,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 74ba2ae68d1..f3a29e50f10 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -17,6 +17,11 @@ # time: 72000 # DeltaV - 20 hours weight: 10 startingGear: ChiefEngineerGear + conditionalStartingGear: + - id: ChiefEngineerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconChiefEngineer" requireAdminNotify: true supervisors: job-supervisors-captain @@ -47,3 +52,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 128779db94d..f50f3db170b 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml @@ -14,6 +14,11 @@ department: Engineering min: 216000 # 60 hrs startingGear: SeniorEngineerGear + conditionalStartingGear: + - id: StationEngineerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconSeniorEngineer" supervisors: job-supervisors-ce access: diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index dc590045191..be069331bd5 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -9,6 +9,11 @@ department: Engineering min: 14400 #4 hrs startingGear: StationEngineerGear + conditionalStartingGear: + - id: StationEngineerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconStationEngineer" supervisors: job-supervisors-ce access: @@ -31,3 +36,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 668af727519..62b2f47207b 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml @@ -12,6 +12,11 @@ # time: 54000 #15 hrs # inverted: true # stop playing intern if you're good at engineering! startingGear: TechnicalAssistantGear + conditionalStartingGear: # TODO: technical assistant plasmaman gear + - id: StationEngineerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconTechnicalAssistant" supervisors: job-supervisors-engineering canBeAntag: true # DeltaV - Can be antagonist diff --git a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml index b2cf3b87930..f5f2828eba4 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml @@ -307,3 +307,9 @@ shoes: ClothingShoesClownBanana jumpsuit: ClothingUniformJumpsuitClownBanana mask: ClothingMaskClownBanana + +# Plasmaman +- type: startingGear + id: BasePlasmamanGear + equipment: + pocket2: DoubleEmergencyPlasmaTankFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index 12e457ac2e1..16bd418f707 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -8,6 +8,11 @@ department: Medical min: 28800 # DeltaV - 8 hours startingGear: ChemistGear + conditionalStartingGear: + - id: ChemistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconChemist" supervisors: job-supervisors-cmo access: @@ -32,3 +37,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 ee57445cdf3..65fb5d2a86d 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -20,6 +20,11 @@ min: 72000 # DeltaV - 20 hours weight: 10 startingGear: CMOGear + conditionalStartingGear: + - id: CMOPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconChiefMedicalOfficer" requireAdminNotify: true supervisors: job-supervisors-captain @@ -57,3 +62,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 8d37afdc51a..e91c2752838 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -8,6 +8,11 @@ department: Medical min: 14400 #4 hrs startingGear: DoctorGear + conditionalStartingGear: + - id: DoctorPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconMedicalDoctor" supervisors: job-supervisors-cmo access: @@ -34,3 +39,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 5492d02e09e..03badbf4c49 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 @@ -9,6 +9,11 @@ # time: 54000 # 15 hrs # inverted: true # stop playing intern if you're good at med! startingGear: MedicalInternGear + conditionalStartingGear: # TODO: medical intern plasmaman gear + - id: DoctorPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconMedicalIntern" supervisors: job-supervisors-medicine canBeAntag: true # DeltaV - Can be antagonist diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index 92c5b1857c5..9914c887254 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -14,6 +14,11 @@ # - !type:OverallPlaytimeRequirement # DeltaV - No playtime requirement # time: 54000 # 15 hrs startingGear: ParamedicGear + conditionalStartingGear: + - id: ParamedicPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconParamedic" supervisors: job-supervisors-cmo access: @@ -44,3 +49,11 @@ innerClothingSkirt: ClothingUniformJumpskirtParamedic satchel: ClothingBackpackSatchelParamedicFilledDV duffelbag: ClothingBackpackDuffelParamedicFilledDV + +- type: startingGear + id: ParamedicPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitParamedic + head: ClothingHeadEnvirohelmParamedic + gloves: ClothingHandsGlovesEnviroglovesNitrile diff --git a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml index 4ff52e14490..b2514582e8d 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml @@ -14,6 +14,11 @@ department: Medical min: 216000 # 60 hrs startingGear: SeniorPhysicianGear + conditionalStartingGear: + - id: DoctorPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconSeniorPhysician" supervisors: job-supervisors-cmo access: diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml index 4d4038d7c02..5b65ea63ea4 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 @@ -9,6 +9,11 @@ # time: 54000 #15 hrs # inverted: true # stop playing intern if you're good at science! startingGear: ResearchAssistantGear + conditionalStartingGear: # TODO: research assistant plasmaman gear + - id: ScientistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconResearchAssistant" supervisors: job-supervisors-science canBeAntag: true # DeltaV - Can be antagonist diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 46d91ee00ee..2a0e3d3e341 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -21,6 +21,11 @@ - AnomalousPositronics weight: 10 startingGear: ResearchDirectorGear + conditionalStartingGear: + - id: ScientistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconResearchDirector" requireAdminNotify: true supervisors: job-supervisors-captain diff --git a/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml b/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml index 1d2434a4e0c..34423aa6b0d 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml @@ -8,6 +8,11 @@ department: Epistemics min: 14400 # 4 hours - same as scientist startingGear: RoboticistGear + conditionalStartingGear: + - id: RoboticistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconRoboticist" supervisors: job-supervisors-rd access: @@ -26,3 +31,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 2d91e0e6ef9..a1b7d566069 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -8,6 +8,11 @@ department: Epistemics # DeltaV - Epistemics Department replacing Science min: 14400 #4 hrs startingGear: ScientistGear + conditionalStartingGear: + - id: ScientistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconScientist" supervisors: job-supervisors-rd access: @@ -26,3 +31,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 ecb61b36f4a..618a6a276c0 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml @@ -8,6 +8,11 @@ department: Epistemics # DeltaV - Epistemics Department replacing Science min: 216000 #60 hrs startingGear: SeniorResearcherGear + conditionalStartingGear: + - id: ScientistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconSeniorResearcher" supervisors: job-supervisors-rd access: diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index 04dc55bc1f0..46cd9034cb2 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -8,6 +8,11 @@ department: Security min: 36000 # DeltaV - 10 hours startingGear: DetectiveGear + conditionalStartingGear: + - id: DetectivePlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconDetective" supervisors: job-supervisors-hos canBeAntag: false @@ -38,3 +43,11 @@ innerClothingSkirt: ClothingUniformJumpskirtDetective satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: DetectivePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmWhite + 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 a815ed32e6d..8bc54188a61 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -18,6 +18,11 @@ - !type:CharacterWhitelistRequirement weight: 10 startingGear: HoSGear + conditionalStartingGear: + - id: HoSPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconHeadOfSecurity" requireAdminNotify: true supervisors: job-supervisors-captain @@ -55,3 +60,11 @@ innerClothingSkirt: ClothingUniformJumpskirtHoS satchel: ClothingBackpackSatchelHOSFilled duffelbag: ClothingBackpackDuffelHOSFilled + +- type: startingGear + id: HoSPlasmamanGear + parent: BasePlasmamanGear + 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 6596c2142d0..9e3846cdf49 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -11,6 +11,11 @@ # time: 54000 #15 hrs # inverted: true # stop playing intern if you're good at security! startingGear: SecurityCadetGear + conditionalStartingGear: # TODO: technical assistant plasmaman gear + - id: SecurityOfficerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconSecurityCadet" supervisors: job-supervisors-security canBeAntag: false diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 18f6d04022c..b1d2eacf7fa 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -7,6 +7,11 @@ - !type:CharacterDepartmentTimeRequirement department: Security startingGear: SecurityOfficerGear + conditionalStartingGear: + - id: SecurityOfficerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconSecurityOfficer" supervisors: job-supervisors-hos canBeAntag: false @@ -36,3 +41,11 @@ innerClothingSkirt: ClothingUniformJumpskirtSec satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: SecurityOfficerPlasmamanGear + parent: BasePlasmamanGear + 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 d395e0f5cdc..69565c174f5 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml @@ -18,6 +18,11 @@ department: Security min: 216000 # 60 hrs startingGear: SeniorOfficerGear + conditionalStartingGear: + - id: SecurityOfficerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconSeniorOfficer" supervisors: job-supervisors-hos canBeAntag: false diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 5f68518b084..253b5d4f8d0 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -12,6 +12,11 @@ min: 14400 # DeltaV - 4 hours - !type:CharacterWhitelistRequirement startingGear: WardenGear + conditionalStartingGear: + - id: WardenPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconWarden" supervisors: job-supervisors-hos canBeAntag: false @@ -43,3 +48,11 @@ innerClothingSkirt: ClothingUniformJumpskirtWarden satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: WardenPlasmamanGear + parent: BasePlasmamanGear + 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 33def38bb08..cf3f5f95f93 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 #DeltaV 2 hours startingGear: BoxerGear + conditionalStartingGear: + - id: BoxerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconBoxer" supervisors: job-supervisors-hop access: @@ -36,3 +41,11 @@ innerClothingSkirt: UniformShortsRedWithTop satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: BoxerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuit + head: ClothingHeadEnvirohelm + # No envirogloves, use the boxing gloves diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml index a2974c6eb7a..05d3bc8ebae 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml @@ -10,6 +10,11 @@ department: Medical min: 14400 #DeltaV 4 hrs startingGear: PsychologistGear + conditionalStartingGear: + - id: PsychologistPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconPsychologist" supervisors: job-supervisors-cmo access: @@ -30,3 +35,11 @@ innerClothingSkirt: ClothingUniformJumpsuitPsychologist satchel: ClothingBackpackSatchelPsychologistFilled #DeltaV - stamp included duffelbag: ClothingBackpackDuffelPsychologistFilled #DeltaV - stamp included + +- type: startingGear + id: PsychologistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmMedicalDoctor + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml index ad810e970e9..b2b2ad0dfe4 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 #DeltaV 2 hours startingGear: ReporterGear + conditionalStartingGear: + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconReporter" supervisors: job-supervisors-hop access: diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml index 1686e3290fa..d08b9570538 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml @@ -7,6 +7,11 @@ - !type:CharacterOverallTimeRequirement min: 7200 #DeltaV 2 hours startingGear: ZookeeperGear + conditionalStartingGear: + - id: PassengerPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] icon: "JobIconZookeeper" supervisors: job-supervisors-hop access: diff --git a/Resources/Prototypes/SoundCollections/screams.yml b/Resources/Prototypes/SoundCollections/screams.yml index 518bbf72bb7..99a0d343d55 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 00000000000..be21c73e04e --- /dev/null +++ b/Resources/Prototypes/Species/plasmaman.yml @@ -0,0 +1,167 @@ +- type: species + id: Plasmaman + name: species-name-plasmaman + roundStart: true + prototype: MobPlasmaman + sprites: MobPlasmamanSprites + defaultSkinTone: "#ffffff" + markingLimits: MobPlasmamanMarkingLimits + dollPrototype: MobPlasmamanDummy + skinColoration: Hues + youngAge: 60 + oldAge: 120 + maxAge: 180 + maleFirstNames: names_plasmaman + femaleFirstNames: names_plasmaman + lastNames: names_plasmaman_last + +- type: speciesBaseSprites + id: MobPlasmamanSprites + sprites: + Head: MobPlasmamanHead + Chest: MobPlasmamanTorso + Eyes: MobPlasmamanEyes + LArm: MobPlasmamanLArm + RArm: MobPlasmamanRArm + LHand: MobPlasmamanLHand + RHand: MobPlasmamanRHand + LLeg: MobPlasmamanLLeg + RLeg: MobPlasmamanRLeg + LFoot: MobPlasmamanLFoot + RFoot: MobPlasmamanRFoot + +- type: markingPoints + id: MobPlasmamanMarkingLimits + 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 ff97bdefb62..7506f5ff5af 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -235,6 +235,7 @@ inverted: true species: - IPC + - Plasmaman functions: - !type:TraitAddComponent components: @@ -255,6 +256,7 @@ inverted: true species: - IPC + - Plasmaman functions: - !type:TraitAddComponent components: diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index 8ea7006c0c8..a13e8ee10e5 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 81ae6715d77..eb88e773b2b 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -409,6 +409,7 @@ - Human - Oni - SlimePerson + - Plasmaman - !type:CharacterTraitRequirement inverted: true traits: @@ -464,6 +465,74 @@ types: Blunt: 6 +- type: trait + id: PlasmafirePunch + category: Physical + points: -3 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterTraitRequirement + inverted: true + traits: + - Claws + - Talons + - ToxoplasmicPunch + functions: + - !type:TraitReplaceComponent + components: + - type: MeleeWeapon + soundHit: + collection: Punch + angle: 30 + animation: WeaponArcFist + damage: + types: + Heat: 6 + Blunt: 1.5 + - !type:TraitAddComponent + components: + - type: DamageOnHit + damage: + types: + Heat: 1.2 + targetParts: [ RightHand, LeftHand ] + +- type: trait + id: ToxoplasmicPunch + category: Physical + points: -5 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterTraitRequirement + inverted: true + traits: + - Claws + - Talons + - PlasmafirePunch + functions: + - !type:TraitReplaceComponent + components: + - type: MeleeWeapon + soundHit: + collection: Punch + angle: 30 + animation: WeaponArcFist + damage: + types: + Poison: 6.5 + Slash: 1.5 + - !type:TraitAddComponent + components: + - type: DamageOnHit + damage: + types: + Slash: 1.5 + targetParts: [ RightHand, LeftHand ] + - type: trait id: Spinarette category: Physical diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index 04845764ada..3402b0b7248 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 3f0a4c10fce..6f9db71a5f1 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/fonts.yml b/Resources/Prototypes/fonts.yml index c61a5fb8041..2b85a4afe95 100644 --- a/Resources/Prototypes/fonts.yml +++ b/Resources/Prototypes/fonts.yml @@ -69,3 +69,15 @@ - type: font id: Cambria path: /Fonts/Cambria.ttf + +- type: font + id: PatrickHand + path: /Fonts/PatrickHand/PatrickHand-Regular.ttf + +- type: font + id: Chilanka + path: /Fonts/Chilanka/Chilanka-Regular.ttf + +- type: font + id: LDFComicSans + path: /Fonts/LDFComicSans/LDFComicSans-Medium.ttf diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 48358ca4964..6b3ec6e634c 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1427,3 +1427,6 @@ - type: Tag id: UnathiEmotes + +- type: Tag + id: PlasmamanSafe diff --git a/Resources/Prototypes/typing_indicator.yml b/Resources/Prototypes/typing_indicator.yml index 7e8c92787fe..11f339454f2 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 00000000000..b358f280f03 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml @@ -0,0 +1,46 @@ + + # Plasmamen + + + + + + They breathe plasma, and oxygen is highly toxic when inhaled. + Being exposed to oxygen sets them on fire, forcing them to wear envirosuits, EVA suits or hardsuits. + + They come with a [bold]spaceworthy[/bold] envirosuit helmet that provides a flashlight and welding protection. + However, they cannot eat nor drink without taking off their envirosuit helmet. + + + + + + + + They don't have blood and cannot bleed out. + They don't experience hunger nor thirst. + + 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 than Milk, except Cellular. + + + + + + + They take [color=#1e90ff]15% less Slash and 25% less Piercing damage[/color], + and are [color=#1e90ff]immune to Radiation and Cold damage[/color], + but take [color=#ffa500]50% more Blunt and 50% more Heat damage[/color]. + + ## Medical Treatment + + + + + To perform surgery on a Plasmaman, you need to take off their envirosuit first, which can be disastrous in an oxygenated environment. + + To get around this, you can buckle the Plasmaman to a [bold]stasis bed[/bold] before removing their envirosuit to prevent them from self-igniting throughout the surgery. + + Their envirosuit helmet prevents them from eating pills, so it's recommended to use a syringe to administer chemicals. + + diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi/icon.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi/icon.png new file mode 100644 index 00000000000..829245180bd Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi/meta.json b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi/meta.json new file mode 100644 index 00000000000..7e9c39f891c --- /dev/null +++ b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "TODO from tgstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] +} 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 00000000000..96206bc10cd Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon.png new file mode 100644 index 00000000000..1abcea97c4d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..6c3e99f1114 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/off-equipped-HELMET.png differ 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 00000000000..be0ce3d764e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon-flash.png new file mode 100644 index 00000000000..372c602e8f6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon.png new file mode 100644 index 00000000000..d80db50bd1a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..2e9179fb49e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/off-equipped-HELMET.png differ 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 00000000000..364df9f5978 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon-flash.png new file mode 100644 index 00000000000..3560110b45c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon.png new file mode 100644 index 00000000000..e7a4d554b27 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/cargo.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..b3376898981 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..17635e05dfc Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/on-equipped-HELMET.png differ 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 00000000000..f2d82aa162e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon.png new file mode 100644 index 00000000000..2644d0774c8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..baf8c4a5ed0 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/off-equipped-HELMET.png differ 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 00000000000..b793e52c3de Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/on-equipped-HELMET.png differ 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 00000000000..4dd6c085650 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon.png new file mode 100644 index 00000000000..216c812a237 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..51e2292e5fc Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/off-equipped-HELMET.png differ 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 00000000000..3c3da7d9200 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/on-equipped-HELMET.png differ 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 00000000000..01d3b2a735e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon.png new file mode 100644 index 00000000000..17b1b704af0 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..3c845ae012f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/off-equipped-HELMET.png differ 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 00000000000..67cf04e32cd Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/on-equipped-HELMET.png differ 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 00000000000..aa3b7459a65 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon-flash.png differ 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 00000000000..f5ad4ede171 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/clown.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..bbe11f6c75d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..fe591ee8b33 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/on-equipped-HELMET.png differ 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 00000000000..c70f684a4df Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon.png new file mode 100644 index 00000000000..0dd662f8b18 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/cmo.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..3a6e85f8a9f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..da3011cb767 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/icon-flash.png new file mode 100644 index 00000000000..e966c2281fc Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/icon.png new file mode 100644 index 00000000000..2d8f37ab002 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/commander.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..ff26b7a61c9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..925e13fa20d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/commander.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon-flash.png new file mode 100644 index 00000000000..fa89d56424f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon.png new file mode 100644 index 00000000000..b2f56d60032 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..1ed81414a25 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/off-equipped-HELMET.png differ 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 00000000000..888a5d61107 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/on-equipped-HELMET.png differ 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 00000000000..90857bd7273 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon.png new file mode 100644 index 00000000000..a3eb92f19a6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..5c947d4bbde Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/off-equipped-HELMET.png differ 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 00000000000..a8017181240 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/icon-flash.png new file mode 100644 index 00000000000..d27e7093c64 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/icon.png new file mode 100644 index 00000000000..8677f71e46e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..10a0987784c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..26f263ca77f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi/on-equipped-HELMET.png differ 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 00000000000..1de4b69d52c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon.png new file mode 100644 index 00000000000..fe9eeb31887 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..9ed1e3eb799 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/off-equipped-HELMET.png differ 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 00000000000..91a859a432f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/on-equipped-HELMET.png differ 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 00000000000..d60218ad7b9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon.png new file mode 100644 index 00000000000..9c39ef411ce Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..1d55bd52700 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/off-equipped-HELMET.png differ 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 00000000000..887a3ec549b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/on-equipped-HELMET.png differ 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 00000000000..1f24373c3bc Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon.png new file mode 100644 index 00000000000..2a4b193b2bf Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..350de2ebc73 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/off-equipped-HELMET.png differ 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 00000000000..0d458e5fdd5 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/icon-flash.png new file mode 100644 index 00000000000..a5c195bad06 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/icon.png new file mode 100644 index 00000000000..6f7c4bdc549 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/intern.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..1786d88729f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..9349c431edc Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/intern.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon-flash.png new file mode 100644 index 00000000000..8403807315b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon.png new file mode 100644 index 00000000000..0236e6542fb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/janitor.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..4a05589b5f2 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..69ffdfb161b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/icon-flash.png new file mode 100644 index 00000000000..982f4081023 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/icon.png new file mode 100644 index 00000000000..982f4081023 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/librarian.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..e27bc0790c9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..e27bc0790c9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon-flash.png new file mode 100644 index 00000000000..de5618769b5 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon.png new file mode 100644 index 00000000000..b0461d14935 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/medical.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..f826d404a9b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..8f7cb4c54e6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon-flash.png new file mode 100644 index 00000000000..ba71f97dd44 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon.png new file mode 100644 index 00000000000..f1b689db8c7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/mime.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..06e5cb09fbb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..ed814d0fb16 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/icon-flash.png new file mode 100644 index 00000000000..26f594fd07d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/icon.png new file mode 100644 index 00000000000..ebf672af7a9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..43ced855d88 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..5268b74ed07 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/official.rsi/on-equipped-HELMET.png differ 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 00000000000..72e4eb2552b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon.png new file mode 100644 index 00000000000..0c95650ed03 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..ee7ed609580 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/off-equipped-HELMET.png differ 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 00000000000..42198bae066 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/on-equipped-HELMET.png differ 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 00000000000..36b043196b4 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon.png new file mode 100644 index 00000000000..474e3fba57c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/plain.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..59f1e4f8ea8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/off-equipped-HELMET.png differ 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 00000000000..7f99154fde1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/icon-flash.png new file mode 100644 index 00000000000..241f56711b1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/icon.png new file mode 100644 index 00000000000..25a9833337c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..a7007adb3b1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..711238e05c6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon-flash.png new file mode 100644 index 00000000000..e7c65cff7ee Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon.png new file mode 100644 index 00000000000..2d5d6c394a5 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..5af3beb5a40 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/off-equipped-HELMET.png differ 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 00000000000..d74522c4014 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon-flash.png new file mode 100644 index 00000000000..498c98bf96d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon.png new file mode 100644 index 00000000000..4a39bcf7c6f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..8ed2259d5f7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..7bcdf461a45 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/on-equipped-HELMET.png differ 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 00000000000..01f44910109 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon-flash.png differ 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 00000000000..ce4c2d0022c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..a826d42142d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/off-equipped-HELMET.png differ 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 00000000000..6aa916ad57d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon-flash.png new file mode 100644 index 00000000000..0b9220f166f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon.png new file mode 100644 index 00000000000..7e08f6d19da Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/scientist.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..63154766a73 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..af631a90e92 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/icon-flash.png new file mode 100644 index 00000000000..a862c646cac Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/icon.png new file mode 100644 index 00000000000..0282f02e172 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/security.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..5d3dbc5e378 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..ab37949871c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/security.rsi/on-equipped-HELMET.png differ 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 00000000000..13dc3f46799 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon.png new file mode 100644 index 00000000000..13dc3f46799 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..bb70ade7054 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/off-equipped-HELMET.png differ 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 00000000000..1a49a398bc3 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/on-equipped-HELMET.png differ 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 00000000000..5d165affbd3 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon.png new file mode 100644 index 00000000000..2cba69dd88b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..db8cc9f8351 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/off-equipped-HELMET.png differ 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 00000000000..eaad0d46f23 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon-flash.png new file mode 100644 index 00000000000..7510f6b5c01 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon.png new file mode 100644 index 00000000000..dae944c5ef9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/meta.json new file mode 100644 index 00000000000..9f7af4a28db --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/warden.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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..c18f183d46d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/off-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/on-equipped-HELMET.png new file mode 100644 index 00000000000..6a2cd919af2 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/on-equipped-HELMET.png differ 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 00000000000..ac71ea5ebb4 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon.png new file mode 100644 index 00000000000..3c2f355d66f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/icon.png differ 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 00000000000..9f7af4a28db --- /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", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/off-equipped-HELMET.png new file mode 100644 index 00000000000..e73142d46f8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/off-equipped-HELMET.png differ 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 00000000000..78174218818 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..43ddf4a5781 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..08a25d0bce6 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.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/captain.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..bd635705709 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/icon.png new file mode 100644 index 00000000000..203a7a3c7dd Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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", + "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 00000000000..d31317d5e5e Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/icon.png new file mode 100644 index 00000000000..465c819c206 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..d71154821f0 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..759670ef07d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/ce.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 00000000000..6cae82165fa Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/icon.png new file mode 100644 index 00000000000..7f6c7ee109a Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.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/chef.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..7810f37d2cd Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/icon.png new file mode 100644 index 00000000000..c9d6114ea7e Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..b9c4c0327e5 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..8e0dad6a3b9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.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/clown.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..5b1d0f39d51 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..f28976a3daf Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..4e8be768c7d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/icon.png new file mode 100644 index 00000000000..7eb85c8dd2b Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.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/commander.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..2b169155c90 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/icon.png new file mode 100644 index 00000000000..c8f010a368b Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/commander.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/coroner.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..c48495a6d50 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..dc5dc934c59 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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/engineering.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..2a894006031 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/icon.png new file mode 100644 index 00000000000..144ee7b6397 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/engineering.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/enviroslacks.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..7d9aa8981bc Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..7b4a2760e25 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/enviroslacks.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/geneticist.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..1db56bb0c69 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/icon.png new file mode 100644 index 00000000000..a6bf5e77048 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/geneticist.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 00000000000..6599aa9df8d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/icon.png new file mode 100644 index 00000000000..897b70669b4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..51a9fdac333 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/icon.png new file mode 100644 index 00000000000..b0a96449895 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/hos.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/hydroponics.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..8d6ac5e7fab Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/icon.png new file mode 100644 index 00000000000..e7bf4945f99 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/hydroponics.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/intern.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..c57ecfe5eb2 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/icon.png new file mode 100644 index 00000000000..4a7e1f31bd7 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/intern.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/janitor.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..ad1c6cbbc18 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/icon.png new file mode 100644 index 00000000000..18a829b6555 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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/librarian.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..16d3ec02c5f Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/icon.png new file mode 100644 index 00000000000..92774231518 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/librarian.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 00000000000..cdac2806073 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..933083422d9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..37c44411706 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/icon.png new file mode 100644 index 00000000000..eb0d90d7c65 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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/official.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..c74fe2b8002 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/icon.png new file mode 100644 index 00000000000..6a9940326d7 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/official.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/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/paramedic.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..711f6fe61bd Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..4ef99e18f51 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.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/plain.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..f9a9cf18548 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..7cbe2a556d9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.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/prisoner.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..b9adc0162e4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/icon.png new file mode 100644 index 00000000000..a6041fdcbcb Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/prisoner.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/rd.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..e738b9d2bfd Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/equipped-INNERCLOTHING.png differ 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 00000000000..5a36575bb44 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/rd.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/roboticist.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..34bcb2bbd6a Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/icon.png new file mode 100644 index 00000000000..8e38f72012c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/roboticist.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/salvage.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..726b862a568 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/icon.png new file mode 100644 index 00000000000..8775c1a3e05 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..7199bf41fb9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/icon.png new file mode 100644 index 00000000000..4d3dcb91ea1 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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/security.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..6c4545b6ad0 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/icon.png new file mode 100644 index 00000000000..648a887ff06 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/security.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/security.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 00000000000..f613ef03271 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/icon.png new file mode 100644 index 00000000000..6370d1483d4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/meta.json new file mode 100644 index 00000000000..7881ed5501f --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.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/virology.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..7f5881cd570 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/icon.png new file mode 100644 index 00000000000..f2a1071bc56 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/virology.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 00000000000..5482b7a4dd9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/icon.png new file mode 100644 index 00000000000..d48c2be0fa8 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/warden.rsi/icon.png differ 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 00000000000..7881ed5501f --- /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 1ec1219b0f8..e3644f147b0 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 00000000000..fb6cf1ad252 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/plasmaman0.png differ diff --git a/Resources/Textures/Effects/speech.rsi/plasmaman1.png b/Resources/Textures/Effects/speech.rsi/plasmaman1.png new file mode 100644 index 00000000000..4a3cb354ff5 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/plasmaman1.png differ diff --git a/Resources/Textures/Effects/speech.rsi/plasmaman2.png b/Resources/Textures/Effects/speech.rsi/plasmaman2.png new file mode 100644 index 00000000000..9f86cb268c3 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/plasmaman2.png differ diff --git a/Resources/Textures/Effects/speech.rsi/skeleton0.png b/Resources/Textures/Effects/speech.rsi/skeleton0.png new file mode 100644 index 00000000000..8695d90baf6 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/skeleton0.png differ diff --git a/Resources/Textures/Effects/speech.rsi/skeleton1.png b/Resources/Textures/Effects/speech.rsi/skeleton1.png new file mode 100644 index 00000000000..3943f597671 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/skeleton1.png differ diff --git a/Resources/Textures/Effects/speech.rsi/skeleton2.png b/Resources/Textures/Effects/speech.rsi/skeleton2.png new file mode 100644 index 00000000000..64bb33c7137 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/skeleton2.png differ diff --git a/Resources/Textures/Mobs/Customization/plasmaman.rsi/eyes.png b/Resources/Textures/Mobs/Customization/plasmaman.rsi/eyes.png new file mode 100644 index 00000000000..28ce6d9e9e9 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/plasmaman.rsi/eyes.png differ 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 00000000000..f0bed207c09 --- /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 00000000000..06fb867f807 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/brain.png differ 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 00000000000..5205aa64743 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-off.png differ 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 00000000000..99c5641d5b1 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/heart-on.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/kidneys.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/kidneys.png new file mode 100644 index 00000000000..bf117e4d55e Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/kidneys.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/liver.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/liver.png new file mode 100644 index 00000000000..453945a519f Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/liver.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/lungs.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/lungs.png new file mode 100644 index 00000000000..6982b741c2a Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/lungs.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/meta.json b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/meta.json new file mode 100644 index 00000000000..9251d0cd12f --- /dev/null +++ b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "stomach/tongue taken from TG station at commit https://github.com/tgstation/tgstation/commit/df00d853564efc80a8d10528bbf77ca6960742c4, liver/lungs/kidneys/heart/brain taken from Paradise Station at commit https://github.com/ParadiseSS13/Paradise/commit/bd91a1b962fe9bd38e346e9fafd4ebb10784fcb3", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "stomach" + }, + { + "name": "tongue" + }, + { + "name": "liver" + }, + { + "name": "lungs" + }, + { + "name": "kidneys" + }, + { + "name": "heart-off" + }, + { + "name": "heart-on", + "delays": [ + [ + 0.6, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "brain", + "delays": [ + [ + 3, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/stomach.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/stomach.png new file mode 100644 index 00000000000..de6fbbe192b Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/stomach.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/tongue.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/tongue.png new file mode 100644 index 00000000000..fd246dbfda9 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/tongue.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/full.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/full.png new file mode 100644 index 00000000000..5f05678dcfa Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/full.png differ 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 00000000000..8f3536d29f2 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_f.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_m.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_m.png new file mode 100644 index 00000000000..8f3536d29f2 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/head_m.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_arm.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_arm.png new file mode 100644 index 00000000000..04dc37a6b09 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_arm.png differ 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 00000000000..a6f9609d254 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_foot.png differ 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 00000000000..0b425344431 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_leg.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_leg.png new file mode 100644 index 00000000000..ae6c73240eb Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/l_leg.png differ 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 00000000000..af089f61a70 --- /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", + "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 00000000000..0c627e66a71 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_foot.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_foot.png new file mode 100644 index 00000000000..b6b4ffa1939 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_hand.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_hand.png new file mode 100644 index 00000000000..859862d0461 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_leg.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_leg.png new file mode 100644 index 00000000000..d9539fbbc19 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_leg.png differ 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 00000000000..37c67806390 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_m.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_m.png new file mode 100644 index 00000000000..37c67806390 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_m.png differ