diff --git a/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs b/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs index 57bd34ed06..ff4bd0b710 100644 --- a/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs +++ b/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs @@ -30,8 +30,6 @@ protected override void Open() // Setup static button actions. _window.InputEjectButton.OnPressed += _ => SendMessage( new ItemSlotButtonPressedEvent(SharedChemMaster.InputSlotName)); - _window.OutputEjectButton.OnPressed += _ => SendMessage( - new ItemSlotButtonPressedEvent(SharedChemMaster.OutputSlotName)); _window.BufferTransferButton.OnPressed += _ => SendMessage( new ChemMasterSetModeMessage(ChemMasterMode.Transfer)); _window.BufferDiscardButton.OnPressed += _ => SendMessage( @@ -49,11 +47,9 @@ protected override void Open() _window.PillTypeButtons[i].OnPressed += _ => SendMessage(new ChemMasterSetPillTypeMessage(pillType)); } - _window.OnReagentButtonPressed += (_, button, amount) => SendMessage(new ChemMasterReagentAmountButtonMessage(button.Id, amount, button.IsBuffer)); + _window.OnReagentButtonPressed += (_, button, amount, isOutput) => SendMessage(new ChemMasterReagentAmountButtonMessage(button.Id, amount, button.IsBuffer, isOutput)); _window.OnSortMethodChanged += sortMethod => SendMessage(new ChemMasterSortMethodUpdated(sortMethod)); _window.OnTransferAmountChanged += amount => SendMessage(new ChemMasterTransferringAmountUpdated(amount)); - - } /// diff --git a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml index 94e7a0e84b..99dee58735 100644 --- a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml +++ b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml @@ -2,136 +2,147 @@ xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client" - MinSize="500 770" + MinSize="800 00" Title="{Loc 'chem-master-bound-user-interface-title'}"> - - - - - + /// [DataField, ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 DamageCap = FixedPoint2.New(8); @@ -79,7 +69,7 @@ public float HeatCapacity /// Used to keep track of when damage starts/stops. Useful for logs. /// [DataField] - public bool TakingDamage = false; + public bool TakingDamage; [DataField] public ProtoId HotAlert = "Hot"; diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index ee13cb96a5..be6dc78240 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -208,11 +208,18 @@ private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureCha if (args.CurrentTemperature <= idealTemp) { + // If there's no risk to being cold there's no reason to show a Cold alert + if (!temperature.ColdDamage.AnyPositive()) + return; + type = temperature.ColdAlert; threshold = temperature.ColdDamageThreshold; } else { + if (!temperature.HeatDamage.AnyPositive()) + return; + type = temperature.HotAlert; threshold = temperature.HeatDamageThreshold; } @@ -414,17 +421,3 @@ private void RecalculateAndApplyParentThresholds(EntityUid uid, return (newHeatThreshold, newColdThreshold); } } - -public sealed class OnTemperatureChangeEvent : EntityEventArgs -{ - public float CurrentTemperature { get; } - public float LastTemperature { get; } - public float TemperatureDelta { get; } - - public OnTemperatureChangeEvent(float current, float last, float delta) - { - CurrentTemperature = current; - LastTemperature = last; - TemperatureDelta = delta; - } -} diff --git a/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs b/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs index 133876bd75..8ff49b4d10 100644 --- a/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs +++ b/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs @@ -1,8 +1,12 @@ using Content.Server.Thief.Components; +using Content.Shared.Customization.Systems; +using Content.Shared.Humanoid; +using Content.Shared.Roles; using Content.Shared.Item; using Content.Shared.Thief; using Robust.Server.GameObjects; using Robust.Server.Audio; +using Robust.Shared.Configuration; using Robust.Shared.Prototypes; namespace Content.Server.Thief.Systems; @@ -15,8 +19,10 @@ public sealed class ThiefUndeterminedBackpackSystem : EntitySystem { [Dependency] private readonly AudioSystem _audio = default!; [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly IConfigurationManager _config = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly UserInterfaceSystem _ui = default!; + [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; private const int MaxSelectedSets = 2; public override void Initialize() @@ -30,7 +36,7 @@ public override void Initialize() private void OnUIOpened(Entity backpack, ref BoundUIOpenedEvent args) { - UpdateUI(backpack.Owner, backpack.Comp); + UpdateUI(backpack.Owner, args.Actor, backpack.Comp); } private void OnApprove(Entity backpack, ref ThiefBackpackApproveMessage args) @@ -57,10 +63,10 @@ private void OnChangeSet(Entity backpack, re if (!backpack.Comp.SelectedSets.Remove(args.SetNumber)) backpack.Comp.SelectedSets.Add(args.SetNumber); - UpdateUI(backpack.Owner, backpack.Comp); + UpdateUI(backpack.Owner, args.Actor, backpack.Comp); } - private void UpdateUI(EntityUid uid, ThiefUndeterminedBackpackComponent? component = null) + private void UpdateUI(EntityUid uid, EntityUid user, ThiefUndeterminedBackpackComponent? component = null) { if (!Resolve(uid, ref component)) return; @@ -70,6 +76,15 @@ private void UpdateUI(EntityUid uid, ThiefUndeterminedBackpackComponent? compone for (int i = 0; i < component.PossibleSets.Count; i++) { var set = _proto.Index(component.PossibleSets[i]); + + if (set.Requirements.Count != 0 && + TryComp(user, out var appearance) && + appearance.LastProfileLoaded != null && + !_characterRequirements.CheckRequirementsValid( + set.Requirements, new JobPrototype() /* not gonna bother with jobs */, + appearance.LastProfileLoaded, new(), false, set, EntityManager, _proto, _config, out _)) + continue; + var selected = component.SelectedSets.Contains(i); var info = new ThiefBackpackSetInfo( set.Name, diff --git a/Content.Server/Traits/TraitSystem.Functions.cs b/Content.Server/Traits/TraitSystem.Functions.cs index 8306105b93..deb3102d4b 100644 --- a/Content.Server/Traits/TraitSystem.Functions.cs +++ b/Content.Server/Traits/TraitSystem.Functions.cs @@ -673,5 +673,7 @@ public override void OnPlayerSpawn(EntityUid uid, if (AttackRateModifier != null) melee.AttackRate *= AttackRateModifier.Value; + + entityManager.Dirty(uid, melee); } } diff --git a/Content.Server/_DV/Abilities/Chitinid/BlockInjectionComponent.cs b/Content.Server/_DV/Abilities/Chitinid/BlockInjectionComponent.cs new file mode 100644 index 0000000000..8ba332ce76 --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/BlockInjectionComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Server.Abilities.Chitinid; + + +[RegisterComponent] +public sealed partial class BlockInjectionComponent : Component +{ + [DataField] + public string BlockReason { get; set; } = string.Empty; +} diff --git a/Content.Server/_DV/Abilities/Chitinid/ChitinidComponent.cs b/Content.Server/_DV/Abilities/Chitinid/ChitinidComponent.cs new file mode 100644 index 0000000000..871d10a7c2 --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/ChitinidComponent.cs @@ -0,0 +1,41 @@ +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Abilities.Chitinid; + +[RegisterComponent] +public sealed partial class ChitinidComponent : Component +{ + [DataField] + public EntProtoId ChitzitePrototype = "Chitzite"; + + [DataField] + public EntProtoId ChitziteActionId = "ActionChitzite"; + + [DataField] + public EntityUid? ChitziteAction; + + [DataField] + public FixedPoint2 AmountAbsorbed = 0f; + + [DataField] + public DamageSpecifier Healing = new() + { + DamageDict = new() + { + { "Radiation", -0.5 }, + } + }; + + [DataField] + public FixedPoint2 MaximumAbsorbed = 30f; + + [DataField] + public TimeSpan UpdateInterval = TimeSpan.FromSeconds(1); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan NextUpdate; +} diff --git a/Content.Server/_DV/Abilities/Chitinid/ChitinidSystem.cs b/Content.Server/_DV/Abilities/Chitinid/ChitinidSystem.cs new file mode 100644 index 0000000000..34d8244d5c --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/ChitinidSystem.cs @@ -0,0 +1,97 @@ +using Content.Server.Nutrition.Components; +using Content.Shared.Actions; +using Content.Shared.Actions.Events; +using Content.Shared.Audio; +using Content.Shared.Damage; +using Content.Shared.IdentityManagement; +using Content.Shared.Inventory; +using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Server.Abilities.Chitinid; + +public sealed partial class ChitinidSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnChitzite); + SubscribeLocalEvent(OnMapInit); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var chitinid, out var damageable)) + { + if (_timing.CurTime < chitinid.NextUpdate) + continue; + + chitinid.NextUpdate += chitinid.UpdateInterval; + + if (chitinid.AmountAbsorbed >= chitinid.MaximumAbsorbed || _mobState.IsDead(uid)) + continue; + + if (_damageable.TryChangeDamage(uid, chitinid.Healing, damageable: damageable) is {} delta) + { + chitinid.AmountAbsorbed += -delta.GetTotal().Float(); + if (chitinid.ChitziteAction != null && chitinid.AmountAbsorbed >= chitinid.MaximumAbsorbed) + { + _actions.SetCharges(chitinid.ChitziteAction, 1); // You get the charge back and that's it. Tough. + _actions.SetEnabled(chitinid.ChitziteAction, true); + } + } + } + + var entQuery = EntityQueryEnumerator(); + while (entQuery.MoveNext(out var ent, out var chitzite, out var chitinid)) + { + if (_timing.CurTime < chitzite.NextCough) + continue; + + Spawn(chitinid.ChitzitePrototype, Transform(ent).Coordinates); + chitinid.AmountAbsorbed = 0f; + RemCompDeferred(ent, chitzite); + } + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (ent.Comp.ChitziteAction != null) + return; + + ent.Comp.NextUpdate = _timing.CurTime + ent.Comp.UpdateInterval; + + _actions.AddAction(ent, ref ent.Comp.ChitziteAction, ent.Comp.ChitziteActionId); + } + + private void OnChitzite(Entity ent, ref ChitziteActionEvent args) + { + if (_inventory.TryGetSlotEntity(ent, "mask", out var maskUid) && + TryComp(maskUid, out var blocker) && + blocker.Enabled) + { + _popup.PopupEntity(Loc.GetString("chitzite-mask", ("mask", maskUid)), ent, ent); + return; + } + + _popup.PopupEntity(Loc.GetString("chitzite-cough", ("name", Identity.Entity(ent, EntityManager))), ent); + _audio.PlayPvs("/Audio/Animals/cat_hiss.ogg", ent, AudioHelpers.WithVariation(0.15f)); + + var chitzite = EnsureComp(ent); + chitzite.NextCough = _timing.CurTime + chitzite.CoughUpTime; + args.Handled = true; + } +} diff --git a/Content.Server/_DV/Abilities/Chitinid/CoughingUpChitziteComponent.cs b/Content.Server/_DV/Abilities/Chitinid/CoughingUpChitziteComponent.cs new file mode 100644 index 0000000000..1dae46b943 --- /dev/null +++ b/Content.Server/_DV/Abilities/Chitinid/CoughingUpChitziteComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Abilities.Chitinid; + +[RegisterComponent, AutoGenerateComponentPause] +public sealed partial class CoughingUpChitziteComponent : Component +{ + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + [AutoPausedField] + public TimeSpan NextCough; + + [DataField] + public TimeSpan CoughUpTime = TimeSpan.FromSeconds(2.15); +} diff --git a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs new file mode 100644 index 0000000000..5af24b34d8 --- /dev/null +++ b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Storage; +using Robust.Shared.Prototypes; + +namespace Content.Server._EstacaoPirata.OpenTriggeredStorageFill; + +/// +/// This is used for storing an item prototype to be inserted into a container when the trigger is activated. This is deleted from the entity after the item is inserted. +/// +[RegisterComponent] +public sealed partial class OpenTriggeredStorageFillComponent : Component +{ + [DataField] + public List Contents = new(); +} diff --git a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs new file mode 100644 index 0000000000..bb2123cc89 --- /dev/null +++ b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs @@ -0,0 +1,67 @@ +using Content.Server.Popups; +using Content.Server.Spawners.Components; +using Content.Shared.Examine; +using Content.Shared.Interaction; +using Content.Shared.Item; +using Content.Shared.Localizations; +using Content.Shared.Prototypes; +using Content.Shared.Storage; +using Content.Shared.Storage.EntitySystems; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server._EstacaoPirata.OpenTriggeredStorageFill; + +/// +/// This handles... +/// +public sealed class OpenTriggeredStorageFillSystem : EntitySystem +{ + + [Dependency] private readonly SharedStorageSystem _storage = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnOpenEvent); + SubscribeLocalEvent(OnExamineEvent); + } + + private void OnExamineEvent(EntityUid uid, OpenTriggeredStorageFillComponent component, ExaminedEvent args) + { + args.PushText(Loc.GetString("container-sealed")); + } + + //Yes, that's a copy of StorageSystem StorageFill method + private void OnOpenEvent(EntityUid uid, OpenTriggeredStorageFillComponent comp, ActivateInWorldEvent args) + { + Log.Debug($"Processing storage fill trigger for entity {ToPrettyString(uid)}"); + + var coordinates = Transform(uid).Coordinates; + + var spawnItems = EntitySpawnCollection.GetSpawns(comp.Contents); + foreach (var item in spawnItems) + { + DebugTools.Assert(!_prototype.Index(item) + .HasComponent(typeof(RandomSpawnerComponent))); + var ent = Spawn(item, coordinates); + + if (!TryComp(ent, out var itemComp)) + { + Log.Error($"Tried to fill {ToPrettyString(uid)} with non-item {item}."); + Del(ent); + continue; + } + if (!_storage.Insert(uid, ent, out var remainingEnt, out var reason, playSound: false)) + { + Log.Error($"Failed to fill {ToPrettyString(uid)} with {ToPrettyString(ent)}. Reason: {reason}"); + // Clean up the spawned entity if insertion fails + Del(ent); + } + } + _popup.PopupEntity(Loc.GetString("container-unsealed"), args.Target); + RemComp(uid, comp); + } +} diff --git a/Content.Server/_Goobstation/Clothing/Systems/PoweredSealableClothingSystem.cs b/Content.Server/_Goobstation/Clothing/Systems/PoweredSealableClothingSystem.cs new file mode 100644 index 0000000000..3e7a9d7d9f --- /dev/null +++ b/Content.Server/_Goobstation/Clothing/Systems/PoweredSealableClothingSystem.cs @@ -0,0 +1,112 @@ +using Content.Server.Power.EntitySystems; +using Content.Server.PowerCell; +using Content.Shared._Goobstation.Clothing.Components; +using Content.Shared._Goobstation.Clothing.Systems; +using Content.Shared.Alert; +using Content.Shared.Inventory; +using Content.Shared.Movement.Systems; +using Content.Shared.PowerCell; +using Content.Shared.PowerCell.Components; +using Content.Shared.Rounding; + +namespace Content.Server._Goobstation.Clothing.Systems; + +public sealed partial class PoweredSealableClothingSystem : SharedPoweredSealableClothingSystem +{ + [Dependency] private readonly AlertsSystem _alertsSystem = default!; + [Dependency] private readonly PowerCellSystem _powerCellSystem = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(OnMovementSpeedChange); + SubscribeLocalEvent(OnPowerCellChanged); + SubscribeLocalEvent(OnPowerCellEmpty); + SubscribeLocalEvent(OnRequiresPowerSealCompleteEvent); + SubscribeLocalEvent>(OnFindInventoryBatteryEvent); + } + + private void OnPowerCellChanged(Entity entity, ref PowerCellChangedEvent args) + { + if (!entity.Comp.IsPowered && _powerCellSystem.HasDrawCharge(entity)) + { + entity.Comp.IsPowered = true; + Dirty(entity); + + ModifySpeed(entity); + } + + UpdateClothingPowerAlert(entity); + } + + private void OnPowerCellEmpty(Entity entity, ref PowerCellSlotEmptyEvent args) + { + entity.Comp.IsPowered = false; + Dirty(entity); + + ModifySpeed(entity); + } + + /// Enables or disables power cell draw on seal/unseal complete + private void OnRequiresPowerSealCompleteEvent(Entity entity, ref ClothingControlSealCompleteEvent args) + { + if (!TryComp(entity, out PowerCellDrawComponent? drawComp)) + return; + + _powerCellSystem.SetDrawEnabled((entity.Owner, drawComp), args.IsSealed); + + UpdateClothingPowerAlert(entity); + ModifySpeed(entity); + } + + private void OnMovementSpeedChange(Entity entity, ref InventoryRelayedEvent args) + { + if (!TryComp(entity, out SealableClothingControlComponent? controlComp)) + return; + + // If suit is unsealed - don't care about penalty + if (!controlComp.IsCurrentlySealed) + return; + + if (!entity.Comp.IsPowered) + args.Args.ModifySpeed(entity.Comp.MovementSpeedPenalty); + } + + private void ModifySpeed(EntityUid uid) + { + if (!TryComp(uid, out SealableClothingControlComponent? controlComp) || controlComp.WearerEntity == null) + return; + + _movementSpeed.RefreshMovementSpeedModifiers(controlComp.WearerEntity.Value); + } + + /// Sets power alert to wearer when clothing is sealed + private void UpdateClothingPowerAlert(Entity entity) + { + var (uid, comp) = entity; + + if (!TryComp(uid, out var controlComp) || controlComp.WearerEntity == null) + return; + + if (!_powerCellSystem.TryGetBatteryFromSlot(entity, out var battery) || !controlComp.IsCurrentlySealed) + { + _alertsSystem.ClearAlert(controlComp.WearerEntity.Value, comp.SuitPowerAlert); + return; + } + + var severity = ContentHelpers.RoundToLevels(MathF.Max(0f, battery.CurrentCharge), battery.MaxCharge, 6); + _alertsSystem.ShowAlert(controlComp.WearerEntity.Value, comp.SuitPowerAlert, (short) severity); + } + + /// Tries to find battery for charger + private void OnFindInventoryBatteryEvent(Entity entity, ref InventoryRelayedEvent args) + { + if (args.Args.FoundBattery != null) + return; + + if (_powerCellSystem.TryGetBatteryFromSlot(entity, out var batteryEnt, out var battery)) + args.Args.FoundBattery = (batteryEnt.Value, battery); + } +} diff --git a/Content.Server/_Goobstation/Clothing/Systems/SealableClothingSystem.cs b/Content.Server/_Goobstation/Clothing/Systems/SealableClothingSystem.cs new file mode 100644 index 0000000000..09f0d9dbfc --- /dev/null +++ b/Content.Server/_Goobstation/Clothing/Systems/SealableClothingSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._Goobstation.Clothing.Systems; + +namespace Content.Server._Goobstation.Clothing.Systems; + +public sealed partial class SealableClothingSystem : SharedSealableClothingSystem { } diff --git a/Content.Shared/Actions/BaseActionComponent.cs b/Content.Shared/Actions/BaseActionComponent.cs index 720900b784..481c4e8075 100644 --- a/Content.Shared/Actions/BaseActionComponent.cs +++ b/Content.Shared/Actions/BaseActionComponent.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Audio; +using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -26,6 +26,16 @@ public abstract partial class BaseActionComponent : Component /// [DataField("iconOn")] public SpriteSpecifier? IconOn; + /// + /// For actions with a cooldown, icon to show when the action is on cooldown. + /// + [DataField] public SpriteSpecifier? IconCooldown; + + /// + /// For actions with a cooldown, icon to show when the action is disabled. + /// + [DataField] public SpriteSpecifier? IconDisabled; + /// /// For toggle actions only, background to show when toggled on. /// diff --git a/Content.Shared/Actions/ConfirmableActionComponent.cs b/Content.Shared/Actions/ConfirmableActionComponent.cs index 6c208f47c6..ca7a15eb5a 100644 --- a/Content.Shared/Actions/ConfirmableActionComponent.cs +++ b/Content.Shared/Actions/ConfirmableActionComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Popups; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; @@ -15,8 +16,15 @@ public sealed partial class ConfirmableActionComponent : Component /// /// Warning popup shown when priming the action. /// - [DataField(required: true)] - public LocId Popup = string.Empty; + // Goobstation - Modsuits - Removed required string + [DataField] + public LocId? Popup = null; + + /// + /// Type of warning popup - Goobstaiton - Modsuits + /// + [DataField("popupType")] + public PopupType PopupFontType = PopupType.LargeCaution; /// /// If not null, this is when the action can be confirmed at. diff --git a/Content.Shared/Actions/ConfirmableActionSystem.cs b/Content.Shared/Actions/ConfirmableActionSystem.cs index 26cc7111d2..8a567fa971 100644 --- a/Content.Shared/Actions/ConfirmableActionSystem.cs +++ b/Content.Shared/Actions/ConfirmableActionSystem.cs @@ -10,6 +10,7 @@ namespace Content.Shared.Actions; public sealed class ConfirmableActionSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; // Goobstation [Dependency] private readonly SharedPopupSystem _popup = default!; public override void Initialize() @@ -67,7 +68,12 @@ private void Prime(Entity ent, EntityUid user) comp.NextUnprime = comp.NextConfirm + comp.PrimeTime; Dirty(uid, comp); - _popup.PopupClient(Loc.GetString(comp.Popup), user, user, PopupType.LargeCaution); + // Goobstation - Confirmable action with changed icon - Start + if (!string.IsNullOrEmpty(comp.Popup)) + _popup.PopupClient(Loc.GetString(comp.Popup), user, user, comp.PopupFontType); + + _actions.SetToggled(ent, true); + // Goobstation - Confirmable action with changed icon - End } private void Unprime(Entity ent) @@ -75,6 +81,9 @@ private void Unprime(Entity ent) var (uid, comp) = ent; comp.NextConfirm = null; comp.NextUnprime = null; + + _actions.SetToggled(ent, false); // Goobstation - Confirmable action with changed icon + Dirty(uid, comp); } } diff --git a/Content.Shared/Actions/SharedActionsSystem.cs b/Content.Shared/Actions/SharedActionsSystem.cs index 8cede391a8..3181635e41 100644 --- a/Content.Shared/Actions/SharedActionsSystem.cs +++ b/Content.Shared/Actions/SharedActionsSystem.cs @@ -340,6 +340,17 @@ public void ResetCharges(EntityUid? actionId) Dirty(actionId.Value, action); } + public void SetMaxCharges(EntityUid? actionId, int? maxCharges) + { + if (!TryGetActionData(actionId, out var action) || + action.MaxCharges == maxCharges) + return; + + action.MaxCharges = maxCharges; + UpdateAction(actionId, action); + Dirty(actionId.Value, action); + } + private void OnActionsGetState(EntityUid uid, ActionsComponent component, ref ComponentGetState args) { args.State = new ActionsComponentState(GetNetEntitySet(component.Actions)); diff --git a/Content.Shared/Armor/ArmorComponent.cs b/Content.Shared/Armor/ArmorComponent.cs index fd04c5d29c..06e4c48e87 100644 --- a/Content.Shared/Armor/ArmorComponent.cs +++ b/Content.Shared/Armor/ArmorComponent.cs @@ -1,5 +1,6 @@ using Content.Shared.Damage; using Robust.Shared.GameStates; +using Robust.Shared.Serialization; using Robust.Shared.Utility; namespace Content.Shared.Armor; @@ -7,20 +8,20 @@ namespace Content.Shared.Armor; /// /// Used for clothing that reduces damage when worn. /// -[RegisterComponent, NetworkedComponent, Access(typeof(SharedArmorSystem))] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // Goobstation - remove access restrictions public sealed partial class ArmorComponent : Component { /// /// The damage reduction /// - [DataField(required: true)] + [DataField(required: true), AutoNetworkedField] public DamageModifierSet Modifiers = default!; /// /// A multiplier applied to the calculated point value /// to determine the monetary value of the armor /// - [DataField] + [DataField, AutoNetworkedField] public float PriceMultiplier = 1; } diff --git a/Content.Shared/CCVar/CCVars.Hud.cs b/Content.Shared/CCVar/CCVars.Hud.cs index f1adbb1851..cf3a8e995f 100644 --- a/Content.Shared/CCVar/CCVars.Hud.cs +++ b/Content.Shared/CCVar/CCVars.Hud.cs @@ -24,4 +24,7 @@ public sealed partial class CCVars public static readonly CVarDef HudFpsCounterVisible = CVarDef.Create("hud.fps_counter_visible", false, CVar.CLIENTONLY | CVar.ARCHIVE); + + public static readonly CVarDef ModernProgressBar = + CVarDef.Create("hud.modern_progress_bar", true, CVar.CLIENTONLY | CVar.ARCHIVE); } diff --git a/Content.Shared/Charges/Systems/SharedChargesSystem.cs b/Content.Shared/Charges/Systems/SharedChargesSystem.cs index 7f95ef184e..ce47fee4f4 100644 --- a/Content.Shared/Charges/Systems/SharedChargesSystem.cs +++ b/Content.Shared/Charges/Systems/SharedChargesSystem.cs @@ -80,6 +80,23 @@ public bool TryUseCharge(Entity ent) return true; } + /// + /// Sets the charges and max charges. + /// + public void SetCharges(Entity ent, int? charges, int? maxCharges) + { + if (!Query.Resolve(ent, ref ent.Comp, false)) + return; + + if (charges != null) + ent.Comp.Charges = charges.Value; + + if (maxCharges != null) + ent.Comp.MaxCharges = maxCharges.Value; + + Dirty(ent, ent.Comp); + } + /// /// Gets the limited charges component and returns true if the number of charges remaining is less than the specified value. /// Will return false if there is no limited charges component. diff --git a/Content.Shared/Chemistry/SharedChemMaster.cs b/Content.Shared/Chemistry/SharedChemMaster.cs index b98a337204..c79a362a9d 100644 --- a/Content.Shared/Chemistry/SharedChemMaster.cs +++ b/Content.Shared/Chemistry/SharedChemMaster.cs @@ -11,6 +11,7 @@ public sealed class SharedChemMaster { public const uint PillTypes = 20; public const string BufferSolutionName = "buffer"; + public const string PillBufferSolutionName = "pillBuffer"; public const string InputSlotName = "beakerSlot"; public const string OutputSlotName = "outputSlot"; public const string PillSolutionName = "food"; @@ -46,12 +47,14 @@ public sealed class ChemMasterReagentAmountButtonMessage : BoundUserInterfaceMes public readonly ReagentId ReagentId; public readonly int Amount; public readonly bool FromBuffer; + public readonly bool IsOutput; - public ChemMasterReagentAmountButtonMessage(ReagentId reagentId, int amount, bool fromBuffer) + public ChemMasterReagentAmountButtonMessage(ReagentId reagentId, int amount, bool fromBuffer, bool isOutput) { ReagentId = reagentId; Amount = amount; FromBuffer = fromBuffer; + IsOutput = isOutput; } } @@ -101,34 +104,6 @@ public enum ChemMasterMode Discard, } - public enum ChemMasterReagentAmount - { - U1 = 1, - U5 = 5, - U10 = 10, - U15 = 15, - U20 = 20, - U25 = 25, - U30 = 30, - U45 = 45, - U50 = 50, - U75 = 75, - U90 = 90, - U100 = 100, - All, - } - - public static class ChemMasterReagentAmountToFixedPoint - { - public static FixedPoint2 GetFixedPoint(this ChemMasterReagentAmount amount) - { - if (amount == ChemMasterReagentAmount.All) - return FixedPoint2.MaxValue; - else - return FixedPoint2.New((int)amount); - } - } - /// /// Information about the capacity and contents of a container for display in the UI /// @@ -166,44 +141,44 @@ public ContainerInfo(string displayName, FixedPoint2 currentVolume, FixedPoint2 } [Serializable, NetSerializable] - public sealed class ChemMasterBoundUserInterfaceState : BoundUserInterfaceState + public sealed class ChemMasterBoundUserInterfaceState( + ChemMasterMode mode, + ContainerInfo? containerInfo, + IReadOnlyList bufferReagents, + IReadOnlyList pillBufferReagents, + FixedPoint2 bufferCurrentVolume, + FixedPoint2 pillBufferCurrentVolume, + uint selectedPillType, + uint pillDosageLimit, + bool updateLabel, + int sortMethod, + int transferringAmount) + : BoundUserInterfaceState { - public readonly ContainerInfo? InputContainerInfo; - public readonly ContainerInfo? OutputContainerInfo; + public readonly ContainerInfo? ContainerInfo = containerInfo; /// /// A list of the reagents and their amounts within the buffer, if applicable. /// - public readonly IReadOnlyList BufferReagents; + public readonly IReadOnlyList BufferReagents = bufferReagents; - public readonly ChemMasterMode Mode; + /// + /// A list of the reagents and their amounts within the buffer, if applicable. + /// + public readonly IReadOnlyList PillBufferReagents = pillBufferReagents; - public readonly FixedPoint2? BufferCurrentVolume; - public readonly uint SelectedPillType; + public readonly ChemMasterMode Mode = mode; - public readonly uint PillDosageLimit; + public readonly FixedPoint2? BufferCurrentVolume = bufferCurrentVolume; + public readonly FixedPoint2? PillBufferCurrentVolume = pillBufferCurrentVolume; + public readonly uint SelectedPillType = selectedPillType; - public readonly bool UpdateLabel; + public readonly uint PillDosageLimit = pillDosageLimit; - public readonly int SortMethod; - public readonly int TransferringAmount; + public readonly bool UpdateLabel = updateLabel; - public ChemMasterBoundUserInterfaceState( - ChemMasterMode mode, ContainerInfo? inputContainerInfo, ContainerInfo? outputContainerInfo, - IReadOnlyList bufferReagents, FixedPoint2 bufferCurrentVolume, - uint selectedPillType, uint pillDosageLimit, bool updateLabel, int sortMethod, int transferringAmount) - { - InputContainerInfo = inputContainerInfo; - OutputContainerInfo = outputContainerInfo; - BufferReagents = bufferReagents; - Mode = mode; - BufferCurrentVolume = bufferCurrentVolume; - SelectedPillType = selectedPillType; - PillDosageLimit = pillDosageLimit; - UpdateLabel = updateLabel; - SortMethod = sortMethod; - TransferringAmount = transferringAmount; - } + public readonly int SortMethod = sortMethod; + public readonly int TransferringAmount = transferringAmount; } [Serializable, NetSerializable] diff --git a/Content.Shared/Clothing/Components/AttachedClothingComponent.cs b/Content.Shared/Clothing/Components/AttachedClothingComponent.cs index c52c875952..fbe462ed42 100644 --- a/Content.Shared/Clothing/Components/AttachedClothingComponent.cs +++ b/Content.Shared/Clothing/Components/AttachedClothingComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Clothing.EntitySystems; +using Robust.Shared.Containers; using Robust.Shared.GameStates; namespace Content.Shared.Clothing.Components; @@ -13,9 +14,21 @@ namespace Content.Shared.Clothing.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class AttachedClothingComponent : Component { + // Goobstation - Modsuits changes this system entirely + public const string DefaultClothingContainerId = "replaced-clothing"; + /// /// The Id of the piece of clothing that this entity belongs to. /// [DataField, AutoNetworkedField] public EntityUid AttachedUid; + + /// + /// Container ID for clothing that will be replaced with this one + /// + [DataField, AutoNetworkedField] + public string ClothingContainerId = DefaultClothingContainerId; + + [ViewVariables, NonSerialized] + public ContainerSlot? ClothingContainer; } diff --git a/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs b/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs index c76214f131..304dd2a3e8 100644 --- a/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs +++ b/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs @@ -16,6 +16,12 @@ public sealed partial class HideLayerClothingComponent : Component [DataField] public HashSet Slots = new(); + /// + /// The clothing layers to hide. + /// + [DataField] + public HashSet? ClothingSlots = new(); + /// /// If true, the layer will only hide when the item is in a toggled state (e.g. masks) /// diff --git a/Content.Shared/Clothing/Components/ToggleableClothingComponent.cs b/Content.Shared/Clothing/Components/ToggleableClothingComponent.cs index 3053efe89a..4e9dd91e38 100644 --- a/Content.Shared/Clothing/Components/ToggleableClothingComponent.cs +++ b/Content.Shared/Clothing/Components/ToggleableClothingComponent.cs @@ -3,7 +3,7 @@ using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Serialization; namespace Content.Shared.Clothing.Components; @@ -25,18 +25,31 @@ public sealed partial class ToggleableClothingComponent : Component [DataField, AutoNetworkedField] public EntityUid? ActionEntity; + // Goobstation - ClothingPrototype and Slot Fields saved for compatibility with old prototype /// /// Default clothing entity prototype to spawn into the clothing container. /// - [DataField(required: true), AutoNetworkedField] - public EntProtoId ClothingPrototype = default!; + [DataField, AutoNetworkedField] + public EntProtoId? ClothingPrototype; /// /// The inventory slot that the clothing is equipped to. /// [ViewVariables(VVAccess.ReadWrite)] [DataField, AutoNetworkedField] - public string Slot = "head"; + public string Slot = string.Empty; + + /// + /// Dictionary of inventory slots and entity prototypes to spawn into the clothing container. + /// + [DataField, AutoNetworkedField] + public Dictionary ClothingPrototypes = new(); + + /// + /// Dictionary of clothing uids and slots + /// + [DataField, AutoNetworkedField] + public Dictionary ClothingUids = new(); /// /// The inventory slot flags required for this component to function. @@ -51,14 +64,7 @@ public sealed partial class ToggleableClothingComponent : Component public string ContainerId = DefaultClothingContainerId; [ViewVariables] - public ContainerSlot? Container; - - /// - /// The Id of the piece of clothing that belongs to this component. Required for map-saving if the clothing is - /// currently not inside of the container. - /// - [DataField, AutoNetworkedField] - public EntityUid? ClothingUid; + public Container? Container; /// /// Time it takes for this clothing to be toggled via the stripping menu verbs. Null prevents the verb from even showing up. @@ -71,4 +77,39 @@ public sealed partial class ToggleableClothingComponent : Component /// [DataField, AutoNetworkedField] public string? VerbText; + + /// + /// If true it will block unequip of this entity until all attached clothing are removed + /// + [DataField, AutoNetworkedField] + public bool BlockUnequipWhenAttached = false; + + /// + /// If true all attached will replace already equipped clothing on equip attempt + /// + [DataField, AutoNetworkedField] + public bool ReplaceCurrentClothing = false; + + [DataField, AutoNetworkedField] + public string AttachTooltip = "toggleable-clothing-attach-tooltip"; + + [DataField, AutoNetworkedField] + public string UnattachTooltip = "toggleable-clothing-unattach-tooltip"; +} + +[Serializable, NetSerializable] +public enum ToggleClothingUiKey : byte +{ + Key +} + +[Serializable, NetSerializable] +public sealed class ToggleableClothingUiMessage : BoundUserInterfaceMessage +{ + public NetEntity AttachedClothingUid; + + public ToggleableClothingUiMessage(NetEntity attachedClothingUid) + { + AttachedClothingUid = attachedClothingUid; + } } diff --git a/Content.Shared/Clothing/EntitySystems/ToggleableClothingSystem.cs b/Content.Shared/Clothing/EntitySystems/ToggleableClothingSystem.cs index 4cb127bb10..63f817f9bb 100644 --- a/Content.Shared/Clothing/EntitySystems/ToggleableClothingSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/ToggleableClothingSystem.cs @@ -13,9 +13,11 @@ using Robust.Shared.Serialization; using Robust.Shared.Timing; using Robust.Shared.Utility; +using System.Linq; namespace Content.Shared.Clothing.EntitySystems; +// GOOBSTATION - MODSUITS - THIS SYSTEM FULLY CHANGED public sealed class ToggleableClothingSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; @@ -27,19 +29,22 @@ public sealed class ToggleableClothingSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly SharedStrippableSystem _strippable = default!; - [Dependency] private readonly ThievingSystem _thieving = default!; + [Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnToggleableInit); SubscribeLocalEvent(OnMapInit); - SubscribeLocalEvent(OnToggleClothing); + SubscribeLocalEvent(OnToggleClothingAction); SubscribeLocalEvent(OnGetActions); SubscribeLocalEvent(OnRemoveToggleable); SubscribeLocalEvent(OnToggleableUnequip); + SubscribeLocalEvent(OnToggleClothingMessage); + SubscribeLocalEvent(OnToggleableUnequipAttempt); + SubscribeLocalEvent(OnAttachedInit); SubscribeLocalEvent(OnInteractHand); SubscribeLocalEvent(OnAttachedUnequip); SubscribeLocalEvent(OnRemoveAttached); @@ -51,62 +56,64 @@ public override void Initialize() SubscribeLocalEvent(OnDoAfterComplete); } - private void GetRelayedVerbs(EntityUid uid, ToggleableClothingComponent component, InventoryRelayedEvent> args) + private void GetRelayedVerbs(Entity toggleable, ref InventoryRelayedEvent> args) { - OnGetVerbs(uid, component, args.Args); + OnGetVerbs(toggleable, ref args.Args); } - private void OnGetVerbs(EntityUid uid, ToggleableClothingComponent component, GetVerbsEvent args) + private void OnGetVerbs(Entity toggleable, ref GetVerbsEvent args) { - if (!args.CanAccess || !args.CanInteract || component.ClothingUid == null || component.Container == null) + var comp = toggleable.Comp; + + if (!args.CanAccess || !args.CanInteract || args.Hands == null || comp.ClothingUids.Count == 0 || comp.Container == null) return; - var text = component.VerbText ?? (component.ActionEntity == null ? null : Name(component.ActionEntity.Value)); + var text = comp.VerbText ?? (comp.ActionEntity == null ? null : Name(comp.ActionEntity.Value)); if (text == null) return; - if (!_inventorySystem.InSlotWithFlags(uid, component.RequiredFlags)) + if (!_inventorySystem.InSlotWithFlags(toggleable.Owner, comp.RequiredFlags)) return; - var wearer = Transform(uid).ParentUid; - if (args.User != wearer && component.StripDelay == null) + var wearer = Transform(toggleable).ParentUid; + if (args.User != wearer && comp.StripDelay == null) return; + var user = args.User; + var verb = new EquipmentVerb() { Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/outfit.svg.192dpi.png")), Text = Loc.GetString(text), }; - if (args.User == wearer) + if (user == wearer) { - verb.EventTarget = uid; - verb.ExecutionEventArgs = new ToggleClothingEvent() { Performer = args.User }; + verb.Act = () => ToggleClothing(user, toggleable); } else { - verb.Act = () => StartDoAfter(args.User, uid, Transform(uid).ParentUid, component); + verb.Act = () => StartDoAfter(user, toggleable, wearer); } args.Verbs.Add(verb); } - private void StartDoAfter(EntityUid user, EntityUid item, EntityUid wearer, ToggleableClothingComponent component) + private void StartDoAfter(EntityUid user, Entity toggleable, EntityUid wearer) { - if (component.StripDelay == null) + var comp = toggleable.Comp; + + if (comp.StripDelay == null) return; - var (time, stealth) = _strippable.GetStripTimeModifiers(user, wearer, component.StripDelay.Value); + var (time, stealth) = _strippable.GetStripTimeModifiers(user, wearer, comp.StripDelay.Value); - bool hidden = (stealth == ThievingStealth.Hidden); + bool hidden = stealth == ThievingStealth.Hidden; - var args = new DoAfterArgs(EntityManager, user, time, new ToggleClothingDoAfterEvent(), item, wearer, item) + var args = new DoAfterArgs(EntityManager, user, time, new ToggleClothingDoAfterEvent(), toggleable, wearer, toggleable) { BreakOnDamage = true, BreakOnMove = true, - // This should just re-use the BUI range checks & cancel the do after if the BUI closes. But that is all - // server-side at the moment. - // TODO BUI REFACTOR. DistanceThreshold = 2, }; @@ -114,189 +121,404 @@ private void StartDoAfter(EntityUid user, EntityUid item, EntityUid wearer, Togg return; if (!hidden) - _strippable.StripPopup("strippable-component-alert-owner-interact", stealth, wearer, user: Identity.Entity(user, EntityManager), item: item); + { + var popup = Loc.GetString("strippable-component-alert-owner-interact", ("user", Identity.Entity(user, EntityManager)), ("item", toggleable)); + _popupSystem.PopupEntity(popup, wearer, wearer, PopupType.Large); + } } - private void OnGetAttachedStripVerbsEvent(EntityUid uid, AttachedClothingComponent component, GetVerbsEvent args) + private void OnGetAttachedStripVerbsEvent(Entity attached, ref GetVerbsEvent args) { + var comp = attached.Comp; + + if (!TryComp(comp.AttachedUid, out var toggleableComp)) + return; + // redirect to the attached entity. - OnGetVerbs(component.AttachedUid, Comp(component.AttachedUid), args); + OnGetVerbs((comp.AttachedUid, toggleableComp), ref args); } - private void OnDoAfterComplete(EntityUid uid, ToggleableClothingComponent component, ToggleClothingDoAfterEvent args) + private void OnDoAfterComplete(Entity toggleable, ref ToggleClothingDoAfterEvent args) { if (args.Cancelled) return; - ToggleClothing(args.User, uid, component); + ToggleClothing(args.User, toggleable); } - private void OnInteractHand(EntityUid uid, AttachedClothingComponent component, InteractHandEvent args) + private void OnInteractHand(Entity attached, ref InteractHandEvent args) { + var comp = attached.Comp; + if (args.Handled) return; - if (!TryComp(component.AttachedUid, out ToggleableClothingComponent? toggleCom) - || toggleCom.Container == null) + if (!TryComp(comp.AttachedUid, out ToggleableClothingComponent? toggleableComp) + || toggleableComp.Container == null) return; - if (!_inventorySystem.TryUnequip(Transform(uid).ParentUid, toggleCom.Slot, force: true)) + // Get slot from dictionary of uid-slot + if (!toggleableComp.ClothingUids.TryGetValue(attached.Owner, out var attachedSlot)) return; - _containerSystem.Insert(uid, toggleCom.Container); + if (!_inventorySystem.TryUnequip(Transform(attached.Owner).ParentUid, attachedSlot, force: true)) + return; + + _containerSystem.Insert(attached.Owner, toggleableComp.Container); args.Handled = true; } + /// + /// Prevents from unequipping entity if all attached not unequipped + /// + private void OnToggleableUnequipAttempt(Entity toggleable, ref BeingUnequippedAttemptEvent args) + { + var comp = toggleable.Comp; + + if (!comp.BlockUnequipWhenAttached) + return; + + if (GetAttachedToggleStatus(toggleable) == ToggleableClothingAttachedStatus.NoneToggled) + return; + + _popupSystem.PopupClient(Loc.GetString("toggleable-clothing-remove-all-attached-first"), args.Unequipee, args.Unequipee); + + args.Cancel(); + } + /// /// Called when the suit is unequipped, to ensure that the helmet also gets unequipped. /// - private void OnToggleableUnequip(EntityUid uid, ToggleableClothingComponent component, GotUnequippedEvent args) + private void OnToggleableUnequip(Entity toggleable, ref GotUnequippedEvent args) { + var comp = toggleable.Comp; + // If it's a part of PVS departure then don't handle it. if (_timing.ApplyingState) return; - // If the attached clothing is not currently in the container, this just assumes that it is currently equipped. - // This should maybe double check that the entity currently in the slot is actually the attached clothing, but - // if its not, then something else has gone wrong already... - if (component.Container != null && component.Container.ContainedEntity == null && component.ClothingUid != null) - _inventorySystem.TryUnequip(args.Equipee, component.Slot, force: true); + // Check if container exists and we have linked clothings + if (comp.Container == null || comp.ClothingUids.Count == 0) + return; + + var parts = comp.ClothingUids; + + foreach (var part in parts) + { + // Check if entity in container what means it already unequipped + if (comp.Container.Contains(part.Key) || part.Value == null) + continue; + + _inventorySystem.TryUnequip(args.Equipee, part.Value, force: true); + } } - private void OnRemoveToggleable(EntityUid uid, ToggleableClothingComponent component, ComponentRemove args) + private void OnRemoveToggleable(Entity toggleable, ref ComponentRemove args) { // If the parent/owner component of the attached clothing is being removed (entity getting deleted?) we will // delete the attached entity. We do this regardless of whether or not the attached entity is currently // "outside" of the container or not. This means that if a hardsuit takes too much damage, the helmet will also // automatically be deleted. - _actionsSystem.RemoveAction(component.ActionEntity); + var comp = toggleable.Comp; + + _actionsSystem.RemoveAction(comp.ActionEntity); + + if (comp.ClothingUids == null || _netMan.IsClient) + return; - if (component.ClothingUid != null && !_netMan.IsClient) - QueueDel(component.ClothingUid.Value); + foreach (var clothing in comp.ClothingUids.Keys) + QueueDel(clothing); } - private void OnAttachedUnequipAttempt(EntityUid uid, AttachedClothingComponent component, BeingUnequippedAttemptEvent args) + private void OnAttachedUnequipAttempt(Entity attached, ref BeingUnequippedAttemptEvent args) { args.Cancel(); } - private void OnRemoveAttached(EntityUid uid, AttachedClothingComponent component, ComponentRemove args) + private void OnRemoveAttached(Entity attached, ref ComponentRemove args) { // if the attached component is being removed (maybe entity is being deleted?) we will just remove the // toggleable clothing component. This means if you had a hard-suit helmet that took too much damage, you would // still be left with a suit that was simply missing a helmet. There is currently no way to fix a partially // broken suit like this. - if (!TryComp(component.AttachedUid, out ToggleableClothingComponent? toggleComp)) + var comp = attached.Comp; + + if (!TryComp(comp.AttachedUid, out ToggleableClothingComponent? toggleableComp) + || toggleableComp.LifeStage > ComponentLifeStage.Running) + return; + + var clothingUids = toggleableComp.ClothingUids; + + if (!clothingUids.Remove(attached.Owner) || clothingUids.Count > 0) return; - if (toggleComp.LifeStage > ComponentLifeStage.Running) + // If no attached clothing left - remove component and action + if (clothingUids.Count > 0) return; - _actionsSystem.RemoveAction(toggleComp.ActionEntity); - RemComp(component.AttachedUid, toggleComp); + _actionsSystem.RemoveAction(toggleableComp.ActionEntity); + RemComp(comp.AttachedUid, toggleableComp); } /// - /// Called if the helmet was unequipped, to ensure that it gets moved into the suit's container. + /// Called if the clothing was unequipped, to ensure that it gets moved into the suit's container. /// - private void OnAttachedUnequip(EntityUid uid, AttachedClothingComponent component, GotUnequippedEvent args) + private void OnAttachedUnequip(Entity attached, ref GotUnequippedEvent args) { - // Let containers worry about it. - if (_timing.ApplyingState) - return; - - if (component.LifeStage > ComponentLifeStage.Running) + var comp = attached.Comp; + + // Death told me to do this- if you need to figure out why each of these are here, idk, figure it out. + if (_timing.ApplyingState + || comp.LifeStage > ComponentLifeStage.Running + || !TryComp(comp.AttachedUid, out ToggleableClothingComponent? toggleableComp) + || toggleableComp.LifeStage > ComponentLifeStage.Running + || !toggleableComp.ClothingUids.ContainsKey(attached.Owner)) return; - if (!TryComp(component.AttachedUid, out ToggleableClothingComponent? toggleComp)) - return; + if (toggleableComp.Container != null) + _containerSystem.Insert(attached.Owner, toggleableComp.Container); + } - if (toggleComp.LifeStage > ComponentLifeStage.Running) - return; + /// + /// Equip or unequip toggle clothing with ui message + /// + private void OnToggleClothingMessage(Entity toggleable, ref ToggleableClothingUiMessage args) + { + var attachedUid = GetEntity(args.AttachedClothingUid); - // As unequipped gets called in the middle of container removal, we cannot call a container-insert without causing issues. - // So we delay it and process it during a system update: - if (toggleComp.ClothingUid != null && toggleComp.Container != null) - _containerSystem.Insert(toggleComp.ClothingUid.Value, toggleComp.Container); + ToggleClothing(args.Actor, toggleable, attachedUid); } /// /// Equip or unequip the toggleable clothing. /// - private void OnToggleClothing(EntityUid uid, ToggleableClothingComponent component, ToggleClothingEvent args) + private void OnToggleClothingAction(Entity toggleable, ref ToggleClothingEvent args) { + var comp = toggleable.Comp; + if (args.Handled) return; + if (comp.Container == null || comp.ClothingUids.Count == 0) + return; + args.Handled = true; - ToggleClothing(args.Performer, uid, component); + + // If clothing have only one attached clothing (like helmets) action will just toggle it + // If it have more attached clothings, it'll open radial menu + if (comp.ClothingUids.Count == 1) + ToggleClothing(args.Performer, toggleable, comp.ClothingUids.First().Key); + else + _uiSystem.OpenUi(toggleable.Owner, ToggleClothingUiKey.Key, args.Performer); } - private void ToggleClothing(EntityUid user, EntityUid target, ToggleableClothingComponent component) + /// + /// Toggle function for single clothing + /// + private void ToggleClothing(EntityUid user, Entity toggleable, EntityUid attachedUid) { - if (component.Container == null || component.ClothingUid == null) + var comp = toggleable.Comp; + var attachedClothings = comp.ClothingUids; + var container = comp.Container; + + if (!CanToggleClothing(user, toggleable)) return; - var parent = Transform(target).ParentUid; - if (component.Container.ContainedEntity == null) - _inventorySystem.TryUnequip(user, parent, component.Slot, force: true); - else if (_inventorySystem.TryGetSlotEntity(parent, component.Slot, out var existing)) - { - _popupSystem.PopupClient(Loc.GetString("toggleable-clothing-remove-first", ("entity", existing)), - user, user); - } + if (!attachedClothings.TryGetValue(attachedUid, out var slot) || string.IsNullOrEmpty(slot)) + return; + + if (!container!.Contains(attachedUid)) + UnequipClothing(user, toggleable, attachedUid, slot!); + else + EquipClothing(user, toggleable, attachedUid, slot!); + } + + /// + /// Toggle function for toggling multiple clothings at once + /// + private void ToggleClothing(EntityUid user, Entity toggleable) + { + var comp = toggleable.Comp; + var attachedClothings = comp.ClothingUids; + var container = comp.Container; + + if (!CanToggleClothing(user, toggleable)) + return; + + if (GetAttachedToggleStatus(toggleable, comp) == ToggleableClothingAttachedStatus.NoneToggled) + foreach (var clothing in attachedClothings) + EquipClothing(user, toggleable, clothing.Key, clothing.Value); else - _inventorySystem.TryEquip(user, parent, component.ClothingUid.Value, component.Slot); + foreach (var clothing in attachedClothings) + if (!container!.Contains(clothing.Key)) + UnequipClothing(user, toggleable, clothing.Key, clothing.Value); } - private void OnGetActions(EntityUid uid, ToggleableClothingComponent component, GetItemActionsEvent args) + private bool CanToggleClothing(EntityUid user, Entity toggleable) { - if (component.ClothingUid != null - && component.ActionEntity != null - && (args.SlotFlags & component.RequiredFlags) == component.RequiredFlags) + var comp = toggleable.Comp; + var attachedClothings = comp.ClothingUids; + var container = comp.Container; + + if (container == null || attachedClothings.Count == 0) + return false; + + var ev = new ToggleClothingAttemptEvent(user, toggleable); + RaiseLocalEvent(toggleable, ev); + + return !ev.Cancelled; + } + + private void UnequipClothing(EntityUid user, Entity toggleable, EntityUid clothing, string slot) + { + var parent = Transform(toggleable.Owner).ParentUid; + + _inventorySystem.TryUnequip(user, parent, slot, force: true); + + // If attached have clothing in container - equip it + if (!TryComp(clothing, out var attachedComp) || attachedComp.ClothingContainer == null) + return; + + var storedClothing = attachedComp.ClothingContainer.ContainedEntity; + + if (storedClothing != null) + _inventorySystem.TryEquip(parent, storedClothing.Value, slot, force: true); + } + private void EquipClothing(EntityUid user, Entity toggleable, EntityUid clothing, string slot) + { + var parent = Transform(toggleable.Owner).ParentUid; + var comp = toggleable.Comp; + + if (_inventorySystem.TryGetSlotEntity(parent, slot, out var currentClothing)) { - args.AddAction(component.ActionEntity.Value); + // Check if we need to replace current clothing + if (!TryComp(clothing, out var attachedComp) || !comp.ReplaceCurrentClothing) + { + _popupSystem.PopupClient(Loc.GetString("toggleable-clothing-remove-first", ("entity", currentClothing)), user, user); + return; + } + + // Check if attached clothing have container or this container not empty + if (attachedComp.ClothingContainer == null || attachedComp.ClothingContainer.ContainedEntity != null) + return; + + if (_inventorySystem.TryUnequip(user, parent, slot)) + _containerSystem.Insert(currentClothing.Value, attachedComp.ClothingContainer); } + + _inventorySystem.TryEquip(user, parent, clothing, slot); } - private void OnInit(EntityUid uid, ToggleableClothingComponent component, ComponentInit args) + private void OnGetActions(Entity toggleable, ref GetItemActionsEvent args) { - component.Container = _containerSystem.EnsureContainer(uid, component.ContainerId); + var comp = toggleable.Comp; + + if (comp.ClothingUids.Count == 0 || comp.ActionEntity == null || args.SlotFlags != comp.RequiredFlags) + return; + + args.AddAction(comp.ActionEntity.Value); + } + + private void OnToggleableInit(Entity toggleable, ref ComponentInit args) + { + var comp = toggleable.Comp; + + comp.Container = _containerSystem.EnsureContainer(toggleable, comp.ContainerId); + } + + private void OnAttachedInit(Entity attached, ref ComponentInit args) + { + var comp = attached.Comp; + + comp.ClothingContainer = _containerSystem.EnsureContainer(attached, comp.ClothingContainerId); } /// /// On map init, either spawn the appropriate entity into the suit slot, or if it already exists, perform some /// sanity checks. Also updates the action icon to show the toggled-entity. /// - private void OnMapInit(EntityUid uid, ToggleableClothingComponent component, MapInitEvent args) + private void OnMapInit(Entity toggleable, ref MapInitEvent args) { - if (component.Container!.ContainedEntity is {} ent) + var comp = toggleable.Comp; + + if (comp.Container!.Count != 0) { - DebugTools.Assert(component.ClothingUid == ent, "Unexpected entity present inside of a toggleable clothing container."); + DebugTools.Assert(comp.ClothingUids.Count != 0, "Unexpected entity present inside of a toggleable clothing container."); return; } - if (component.ClothingUid != null && component.ActionEntity != null) + if (comp.ClothingUids.Count != 0 && comp.ActionEntity != null) + return; + + // Add prototype from ClothingPrototype and Slot field to ClothingPrototypes dictionary + if (comp.ClothingPrototype != null && !string.IsNullOrEmpty(comp.Slot) && !comp.ClothingPrototypes.ContainsKey(comp.Slot)) { - DebugTools.Assert(Exists(component.ClothingUid), "Toggleable clothing is missing expected entity."); - DebugTools.Assert(TryComp(component.ClothingUid, out AttachedClothingComponent? comp), "Toggleable clothing is missing an attached component"); - DebugTools.Assert(comp?.AttachedUid == uid, "Toggleable clothing uid mismatch"); + comp.ClothingPrototypes.Add(comp.Slot, comp.ClothingPrototype.Value); } - else + + var xform = Transform(toggleable.Owner); + + if (comp.ClothingPrototypes == null) + return; + + var prototypes = comp.ClothingPrototypes; + + foreach (var prototype in prototypes) { - var xform = Transform(uid); - component.ClothingUid = Spawn(component.ClothingPrototype, xform.Coordinates); - var attachedClothing = EnsureComp(component.ClothingUid.Value); - attachedClothing.AttachedUid = uid; - Dirty(component.ClothingUid.Value, attachedClothing); - _containerSystem.Insert(component.ClothingUid.Value, component.Container, containerXform: xform); - Dirty(uid, component); + var spawned = Spawn(prototype.Value, xform.Coordinates); + var attachedClothing = EnsureComp(spawned); + attachedClothing.AttachedUid = toggleable; + EnsureComp(spawned); + + comp.ClothingUids.Add(spawned, prototype.Key); + _containerSystem.Insert(spawned, comp.Container, containerXform: xform); + + Dirty(spawned, attachedClothing); } - if (_actionContainer.EnsureAction(uid, ref component.ActionEntity, out var action, component.Action)) - _actionsSystem.SetEntityIcon(component.ActionEntity.Value, component.ClothingUid, action); + Dirty(toggleable, comp); + + if (_actionContainer.EnsureAction(toggleable, ref comp.ActionEntity, out var action, comp.Action)) + _actionsSystem.SetEntityIcon(comp.ActionEntity.Value, toggleable, action); + } + + // Checks status of all attached clothings toggle status + public ToggleableClothingAttachedStatus GetAttachedToggleStatus(EntityUid toggleable, ToggleableClothingComponent? component = null) + { + if (!Resolve(toggleable, ref component)) + return ToggleableClothingAttachedStatus.NoneToggled; + + var container = component.Container; + var attachedClothings = component.ClothingUids; + + // If entity don't have any attached clothings it means none toggled + if (container == null || attachedClothings.Count == 0) + return ToggleableClothingAttachedStatus.NoneToggled; + + var toggledCount = attachedClothings.Count(c => !container.Contains(c.Key)); + + if (toggledCount == 0) + return ToggleableClothingAttachedStatus.NoneToggled; + + if (toggledCount < attachedClothings.Count) + return ToggleableClothingAttachedStatus.PartlyToggled; + + return ToggleableClothingAttachedStatus.AllToggled; + } + + public List? GetAttachedClothingsList(EntityUid toggleable, ToggleableClothingComponent? component = null) + { + if (!Resolve(toggleable, ref component) || component.ClothingUids.Count == 0) + return null; + + var newList = new List(); + + foreach (var attachee in component.ClothingUids) + newList.Add(attachee.Key); + + return newList; } } @@ -308,3 +530,29 @@ public sealed partial class ToggleClothingEvent : InstantActionEvent public sealed partial class ToggleClothingDoAfterEvent : SimpleDoAfterEvent { } + +/// +/// Event raises on toggleable clothing when someone trying to toggle it +/// +public sealed class ToggleClothingAttemptEvent : CancellableEntityEventArgs +{ + public EntityUid User { get; } + public EntityUid Target { get; } + + public ToggleClothingAttemptEvent(EntityUid user, EntityUid target) + { + User = user; + Target = target; + } +} + +/// +/// Status of toggleable clothing attachee +/// +[Serializable, NetSerializable] +public enum ToggleableClothingAttachedStatus : byte +{ + NoneToggled, + PartlyToggled, + AllToggled +} diff --git a/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs index 67aabbd1ed..12466dcf89 100644 --- a/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs +++ b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Shared.Body.Systems; using Content.Shared.Clothing.Components; using Content.Shared.Clothing.Loadouts.Prototypes; using Content.Shared.Customization.Systems; @@ -32,7 +33,8 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnMapInit); + // Wait until the character has all their organs before we give them their loadout to activate internals + SubscribeLocalEvent(OnMapInit, after: [typeof(SharedBodySystem)]); _sawmill = _log.GetSawmill("loadouts"); } @@ -112,7 +114,7 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a } allLoadouts.Add((item, loadout, i)); - if (loadout.CustomHeirloom == true) + if (i == 0 && loadout.CustomHeirloom == true) // Only the first item can be an heirloom heirlooms.Add((item, loadout)); // Equip it diff --git a/Content.Shared/Content.Shared.csproj b/Content.Shared/Content.Shared.csproj index 4cca399b28..c7f779f1c2 100644 --- a/Content.Shared/Content.Shared.csproj +++ b/Content.Shared/Content.Shared.csproj @@ -10,6 +10,7 @@ + diff --git a/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs b/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs index 586fc139a0..533975f740 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/DoAfter/DoAfterArgs.cs b/Content.Shared/DoAfter/DoAfterArgs.cs index d88f72c965..97d9e42d74 100644 --- a/Content.Shared/DoAfter/DoAfterArgs.cs +++ b/Content.Shared/DoAfter/DoAfterArgs.cs @@ -19,14 +19,14 @@ public sealed partial class DoAfterArgs /// /// How long does the do_after require to complete /// - [DataField("delay", required: true)] + [DataField(required: true)] public TimeSpan Delay; /// /// Applicable target (if relevant) /// [NonSerialized] - [DataField("target")] + [DataField] public EntityUid? Target; public NetEntity? NetTarget; @@ -40,17 +40,28 @@ public sealed partial class DoAfterArgs public NetEntity? NetUsed; + // Goobstation - Show doAfter progress bar to another entity + [NonSerialized] + [DataField] + public EntityUid? ShowTo; + + public NetEntity? NetShowTo; + /// /// Whether the progress bar for this DoAfter should be hidden from other players. /// [DataField] public bool Hidden; + /// Whether the delay multiplier event should be raised + [DataField] + public bool MultiplyDelay = true; + #region Event options /// /// The event that will get raised when the DoAfter has finished. If null, this will simply raise a /// - [DataField("event", required: true)] + [DataField(required: true)] public DoAfterEvent Event = default!; /// @@ -64,7 +75,7 @@ public sealed partial class DoAfterArgs /// Entity which will receive the directed event. If null, no directed event will be raised. /// [NonSerialized] - [DataField("eventTarget")] + [DataField] public EntityUid? EventTarget; public NetEntity? NetEventTarget; @@ -72,7 +83,7 @@ public sealed partial class DoAfterArgs /// /// Should the DoAfter event broadcast? If this is false, then should be a valid entity. /// - [DataField("broadcast")] + [DataField] public bool Broadcast; #endregion @@ -81,16 +92,24 @@ public sealed partial class DoAfterArgs /// /// Whether or not this do after requires the user to have hands. /// - [DataField("needHand")] + [DataField] public bool NeedHand; /// /// Whether we need to keep our active hand as is (i.e. can't change hand or change item). This also covers /// requiring the hand to be free (if applicable). This does nothing if is false. /// - [DataField("breakOnHandChange")] + [DataField] public bool BreakOnHandChange = true; + /// + /// Whether the do-after should get interrupted if we drop the + /// active item we started the do-after with + /// This does nothing if is false. + /// + [DataField] + public bool BreakOnDropItem = true; + /// /// If do_after stops when the user or target moves /// @@ -107,31 +126,31 @@ public sealed partial class DoAfterArgs /// /// Threshold for user and target movement /// - [DataField("movementThreshold")] + [DataField] public float MovementThreshold = 0.3f; /// /// Threshold for distance user from the used OR target entities. /// - [DataField("distanceThreshold")] + [DataField] public float? DistanceThreshold; /// /// Whether damage will cancel the DoAfter. See also . /// - [DataField("breakOnDamage")] + [DataField] public bool BreakOnDamage; /// /// Threshold for user damage. This damage has to be dealt in a single event, not over time. /// - [DataField("damageThreshold")] + [DataField] public FixedPoint2 DamageThreshold = 1; /// /// If true, this DoAfter will be canceled if the user can no longer interact with the target. /// - [DataField("requireCanInteract")] + [DataField] public bool RequireCanInteract = true; #endregion @@ -143,7 +162,7 @@ public sealed partial class DoAfterArgs /// Note that this will block even if the duplicate is cancelled because either DoAfter had /// enabled. /// - [DataField("blockDuplicate")] + [DataField] public bool BlockDuplicate = true; //TODO: User pref to not cancel on second use on specific doafters @@ -151,7 +170,7 @@ public sealed partial class DoAfterArgs /// If true, this will cancel any duplicate DoAfters when attempting to add a new DoAfter. See also /// . /// - [DataField("cancelDuplicate")] + [DataField] public bool CancelDuplicate = true; /// @@ -162,7 +181,7 @@ public sealed partial class DoAfterArgs /// Note that both DoAfters may have their own conditions, and they will be considered duplicated if either set /// of conditions is satisfied. /// - [DataField("duplicateCondition")] + [DataField] public DuplicateConditions DuplicateCondition = DuplicateConditions.All; #endregion @@ -184,6 +203,7 @@ public sealed partial class DoAfterArgs /// The entity at which the event will be directed. If null, the event will not be directed. /// The entity being targeted by the DoAFter. Not the same as . /// The entity being used during the DoAfter. E.g., a tool + /// Goobstation - The entity that should see doafter progress bar except doAfter entity public DoAfterArgs( IEntityManager entManager, EntityUid user, @@ -191,7 +211,8 @@ public DoAfterArgs( DoAfterEvent @event, EntityUid? eventTarget, EntityUid? target = null, - EntityUid? used = null) + EntityUid? used = null, + EntityUid? showTo = null) // Goobstation - Show doAfter popup to another entity { User = user; Delay = delay; @@ -199,18 +220,12 @@ public DoAfterArgs( Used = used; EventTarget = eventTarget; Event = @event; + ShowTo = showTo; // Goobstation NetUser = entManager.GetNetEntity(User); NetTarget = entManager.GetNetEntity(Target); NetUsed = entManager.GetNetEntity(Used); - } - - /// - /// An empty do-after constructor. This WILL cause runtime errors if used to create a do-after. Only use this if you really know what you're doing! - /// - [Obsolete("Use the other constructors if possible.")] - public DoAfterArgs() - { + NetShowTo = entManager.GetNetEntity(ShowTo); // Goobstation - Show doAfter popup to another entity } /// @@ -248,6 +263,7 @@ public DoAfterArgs(DoAfterArgs other) Broadcast = other.Broadcast; NeedHand = other.NeedHand; BreakOnHandChange = other.BreakOnHandChange; + BreakOnDropItem = other.BreakOnDropItem; BreakOnMove = other.BreakOnMove; BreakOnWeightlessMove = other.BreakOnWeightlessMove; MovementThreshold = other.MovementThreshold; @@ -259,12 +275,16 @@ public DoAfterArgs(DoAfterArgs other) BlockDuplicate = other.BlockDuplicate; CancelDuplicate = other.CancelDuplicate; DuplicateCondition = other.DuplicateCondition; + ShowTo = other.ShowTo; // Goobstation - Show doAfter popup to another entity + + MultiplyDelay = other.MultiplyDelay; // Goobstation // Networked NetUser = other.NetUser; NetTarget = other.NetTarget; NetUsed = other.NetUsed; NetEventTarget = other.NetEventTarget; + NetShowTo = other.NetShowTo; // Goobstation - Show doAfter popup to another entity Event = other.Event.Clone(); } diff --git a/Content.Shared/DoAfter/SharedDoAfterSystem.cs b/Content.Shared/DoAfter/SharedDoAfterSystem.cs index ed8be1ad65..48051e0a30 100644 --- a/Content.Shared/DoAfter/SharedDoAfterSystem.cs +++ b/Content.Shared/DoAfter/SharedDoAfterSystem.cs @@ -130,6 +130,7 @@ private void OnDoAfterHandleState(EntityUid uid, DoAfterComponent comp, ref Comp doAfterArgs.Used = EnsureEntity(doAfterArgs.NetUsed, uid); doAfterArgs.User = EnsureEntity(doAfterArgs.NetUser, uid); doAfterArgs.EventTarget = EnsureEntity(doAfterArgs.NetEventTarget, uid); + doAfterArgs.ShowTo = EnsureEntity(doAfterArgs.NetShowTo, uid); // Goobstation - Show doAfter popup to another entity } comp.NextId = state.NextId; diff --git a/Content.Shared/Effects/ColorFlashEffectEvent.cs b/Content.Shared/Effects/ColorFlashEffectEvent.cs index 06043d3c00..0a4e2c1812 100644 --- a/Content.Shared/Effects/ColorFlashEffectEvent.cs +++ b/Content.Shared/Effects/ColorFlashEffectEvent.cs @@ -15,9 +15,15 @@ public sealed class ColorFlashEffectEvent : EntityEventArgs public List Entities; - public ColorFlashEffectEvent(Color color, List entities) + /// + /// The length of the flash animation. + /// + public float? AnimationLength; + + public ColorFlashEffectEvent(Color color, List entities, float? animationLength = null) { Color = color; Entities = entities; + AnimationLength = animationLength; } } diff --git a/Content.Shared/Effects/SharedColorFlashEffectSystem.cs b/Content.Shared/Effects/SharedColorFlashEffectSystem.cs index e1d5735550..3b5940b677 100644 --- a/Content.Shared/Effects/SharedColorFlashEffectSystem.cs +++ b/Content.Shared/Effects/SharedColorFlashEffectSystem.cs @@ -4,5 +4,5 @@ namespace Content.Shared.Effects; public abstract class SharedColorFlashEffectSystem : EntitySystem { - public abstract void RaiseEffect(Color color, List entities, Filter filter); + public abstract void RaiseEffect(Color color, List entities, Filter filter, float? animationLength = null); } diff --git a/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs b/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs index 8c1ecf833c..86b7d3b44c 100644 --- a/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs +++ b/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Shared.Humanoid.Markings; using Content.Shared.Humanoid.Prototypes; using Robust.Shared.Prototypes; @@ -106,6 +106,7 @@ public static HumanoidCharacterAppearance DefaultWithSpecies(string species) HumanoidSkinColor.Hues => speciesPrototype.DefaultSkinTone, HumanoidSkinColor.TintedHues => Humanoid.SkinColor.TintedHues(speciesPrototype.DefaultSkinTone), HumanoidSkinColor.VoxFeathers => Humanoid.SkinColor.ClosestVoxColor(speciesPrototype.DefaultSkinTone), + HumanoidSkinColor.AnimalFur => Humanoid.SkinColor.ClosestAnimalFurColor(speciesPrototype.DefaultSkinTone), // Einstein Engines - Tajaran HumanoidSkinColor.TintedHuesSkin => Humanoid.SkinColor.TintedHuesSkin(speciesPrototype.DefaultSkinTone, speciesPrototype.DefaultSkinTone), _ => Humanoid.SkinColor.ValidHumanSkinTone, }; @@ -176,6 +177,9 @@ public static HumanoidCharacterAppearance Random(string species, Sex sex) case HumanoidSkinColor.VoxFeathers: newSkinColor = Humanoid.SkinColor.ProportionalVoxColor(newSkinColor); break; + case HumanoidSkinColor.AnimalFur: // Einstein Engines - Tajaran + newSkinColor = Humanoid.SkinColor.ProportionalAnimalFurColor(newSkinColor); + break; } return new HumanoidCharacterAppearance(newHairStyle, newHairColor, newFacialHairStyle, newHairColor, newEyeColor, newSkinColor, new ()); diff --git a/Content.Shared/Humanoid/HumanoidVisualLayers.cs b/Content.Shared/Humanoid/HumanoidVisualLayers.cs index bda75c12c2..2a2e67e922 100644 --- a/Content.Shared/Humanoid/HumanoidVisualLayers.cs +++ b/Content.Shared/Humanoid/HumanoidVisualLayers.cs @@ -1,4 +1,4 @@ -using Content.Shared.Humanoid.Markings; +using Content.Shared.Humanoid.Markings; using Robust.Shared.Serialization; namespace Content.Shared.Humanoid @@ -8,6 +8,7 @@ public enum HumanoidVisualLayers : byte { Face, Tail, + Wings, Hair, FacialHair, Chest, diff --git a/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs b/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs index 17912e400a..de5509f932 100644 --- a/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs +++ b/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs @@ -73,6 +73,7 @@ public static IEnumerable Sublayers(HumanoidVisualLayers l break; case HumanoidVisualLayers.Chest: yield return HumanoidVisualLayers.Chest; + yield return HumanoidVisualLayers.Wings; yield return HumanoidVisualLayers.Tail; break; default: diff --git a/Content.Shared/Humanoid/Markings/MarkingCategories.cs b/Content.Shared/Humanoid/Markings/MarkingCategories.cs index 77e1ebb305..3bddcb8522 100644 --- a/Content.Shared/Humanoid/Markings/MarkingCategories.cs +++ b/Content.Shared/Humanoid/Markings/MarkingCategories.cs @@ -21,6 +21,7 @@ public enum MarkingCategories : byte RightFoot, LeftLeg, LeftFoot, + Wings, Tail, Overlay } @@ -47,6 +48,7 @@ public static MarkingCategories FromHumanoidVisualLayers(HumanoidVisualLayers la HumanoidVisualLayers.RLeg => MarkingCategories.RightLeg, HumanoidVisualLayers.LFoot => MarkingCategories.LeftFoot, HumanoidVisualLayers.RFoot => MarkingCategories.RightFoot, + HumanoidVisualLayers.Wings => MarkingCategories.Wings, HumanoidVisualLayers.Tail => MarkingCategories.Tail, _ => MarkingCategories.Overlay }; diff --git a/Content.Shared/Humanoid/NamingSystem.Roman.cs b/Content.Shared/Humanoid/NamingSystem.Roman.cs new file mode 100644 index 0000000000..2c254fff90 --- /dev/null +++ b/Content.Shared/Humanoid/NamingSystem.Roman.cs @@ -0,0 +1,70 @@ +using System.Text; +using Robust.Shared.Random; + +namespace Content.Shared.Humanoid; + +public sealed partial class NamingSystem : EntitySystem +{ + private static readonly Dictionary RomanMap = new() + { + { "M", 1000 }, + { "CM", 900 }, + { "D", 500 }, + { "CD", 400 }, + { "C", 100 }, + { "XC", 90 }, + { "L", 50 }, + { "XL", 40 }, + { "X", 10 }, + { "IX", 9 }, + { "V", 5 }, + { "IV", 4 }, + { "I", 1 } + }; + + // + // Generates a random Roman numeral with a length not exceeding 8 characters. + // All possible Roman numerals from 1 to 3,999 can be generated, + // but numbers from 1 to 100 have a higher chance of being rolled. + // + private string GenerateRomanNumeral() + { + (int, int) range; + while (true) + { + if (_random.Prob(0.8f)) // 80% chance for 1-100 + range = (1, 101); + else if (_random.Prob(0.6f)) // 12% chance for 101-500 + range = (101, 501); + else if (_random.Prob(0.75f)) // 6% chance for 501-1,000 + range = (501, 1001); + else // 2% chance for 1,001-3,999 + range = (1001, 4000); + + var numeral = IntToRomanNumeral(_random.Next(range.Item1, range.Item2)); + + // Reroll when the numeral length is greater than 8 to prevent lengthy Roman numerals + if (numeral.Length > 8) + continue; + + return numeral; + } + } + + // + // Converts an integer to a Roman numeral. + // + private static string IntToRomanNumeral(int number) + { + var sb = new StringBuilder(); + foreach (var (letters, equivalentNumber) in RomanMap) + { + while (number >= equivalentNumber) + { + sb.Append(letters); + number -= equivalentNumber; + } + } + return sb.ToString(); + } +} diff --git a/Content.Shared/Humanoid/NamingSystem.cs b/Content.Shared/Humanoid/NamingSystem.cs index 4800292598..6b40af22e1 100644 --- a/Content.Shared/Humanoid/NamingSystem.cs +++ b/Content.Shared/Humanoid/NamingSystem.cs @@ -9,7 +9,7 @@ namespace Content.Shared.Humanoid /// /// Figure out how to name a humanoid with these extensions. /// - public sealed class NamingSystem : EntitySystem + public sealed partial class NamingSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; @@ -46,6 +46,9 @@ public string GetName(string species, Gender? gender = null) case SpeciesNaming.FirstDashLast: return Loc.GetString("namepreset-firstdashlast", ("first", GetFirstName(speciesProto, gender)), ("last", GetLastName(speciesProto))); + case SpeciesNaming.FirstRoman: + return Loc.GetString("namepreset-firstlast", + ("first", GetFirstName(speciesProto, gender)), ("last", GenerateRomanNumeral())); case SpeciesNaming.FirstLast: default: return Loc.GetString("namepreset-firstlast", diff --git a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs index 76fb6e6cd6..eccfad43fc 100644 --- a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs +++ b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs @@ -193,4 +193,5 @@ public enum SpeciesNaming : byte TheFirstofLast, FirstDashLast, LastFirst, // DeltaV + FirstRoman, } diff --git a/Content.Shared/Humanoid/SkinColor.cs b/Content.Shared/Humanoid/SkinColor.cs index 64ad82ac98..023f80bfe1 100644 --- a/Content.Shared/Humanoid/SkinColor.cs +++ b/Content.Shared/Humanoid/SkinColor.cs @@ -17,6 +17,14 @@ public static class SkinColor public const float MinFeathersValue = 36f / 100; public const float MaxFeathersValue = 55f / 100; + // Einstein Engines - Tajaran + public const float MinAnimalFurHue = 20f / 360; + public const float MaxAnimalFurHue = 60f / 360; + public const float MinAnimalFurSaturation = 0f / 100; + public const float MaxAnimalFurSaturation = 100f / 100; + public const float MinAnimalFurValue = 0f / 100; + public const float MaxAnimalFurValue = 100f / 100; + public static Color ValidHumanSkinTone => Color.FromHsv(new Vector4(0.07f, 0.2f, 1f, 1f)); /// @@ -223,6 +231,60 @@ public static bool VerifyVoxFeathers(Color color) return true; } + /// + /// Converts a Color proportionally to the allowed animal fur color range. + /// Will NOT preserve the specific input color even if it is within the allowed animal fur color range. + /// + /// Color to convert + /// Vox feather coloration + public static Color ProportionalAnimalFurColor(Color color) + { + var newColor = Color.ToHsv(color); + + newColor.X = newColor.X * (MaxAnimalFurHue - MinAnimalFurHue) + MinAnimalFurHue; + newColor.Y = newColor.Y * (MaxAnimalFurSaturation - MinAnimalFurSaturation) + MinAnimalFurSaturation; + newColor.Z = newColor.Z * (MaxAnimalFurValue - MinAnimalFurValue) + MinAnimalFurValue; + + return Color.FromHsv(newColor); + } + + // /// + // /// Ensures the input Color is within the allowed animal fur color range. + // /// + // /// Color to convert + // /// The same Color if it was within the allowed range, or the closest matching Color otherwise + public static Color ClosestAnimalFurColor(Color color) + { + var hsv = Color.ToHsv(color); + + hsv.X = Math.Clamp(hsv.X, MinAnimalFurHue, MaxAnimalFurHue); + hsv.Y = Math.Clamp(hsv.Y, MinAnimalFurSaturation, MaxAnimalFurSaturation); + hsv.Z = Math.Clamp(hsv.Z, MinAnimalFurValue, MaxAnimalFurValue); + + return Color.FromHsv(hsv); + } + + /// + /// Verify if this color is a valid animal fur coloration, or not. + /// + /// The color to verify + /// True if valid, false otherwise + public static bool VerifyAnimalFur(Color color) + { + var colorHsv = Color.ToHsv(color); + + if (colorHsv.X < MinAnimalFurHue || colorHsv.X > MaxAnimalFurHue) + return false; + + if (colorHsv.Y < MinAnimalFurSaturation || colorHsv.Y > MaxAnimalFurSaturation) + return false; + + if (colorHsv.Z < MinAnimalFurValue || colorHsv.Z > MaxAnimalFurValue) + return false; + + return true; + } + /// /// This takes in a color, and returns a color guaranteed to be above MinHuesLightness /// @@ -254,6 +316,7 @@ public static bool VerifySkinColor(HumanoidSkinColor type, Color color) HumanoidSkinColor.TintedHuesSkin => true, // DeltaV - Tone blending HumanoidSkinColor.Hues => VerifyHues(color), HumanoidSkinColor.VoxFeathers => VerifyVoxFeathers(color), + HumanoidSkinColor.AnimalFur => VerifyAnimalFur(color), // Einsetin Engines - Tajaran _ => false, }; } @@ -267,6 +330,7 @@ public static Color ValidSkinTone(HumanoidSkinColor type, Color color) HumanoidSkinColor.TintedHuesSkin => ValidTintedHuesSkinTone(color), // DeltaV - Tone blending HumanoidSkinColor.Hues => MakeHueValid(color), HumanoidSkinColor.VoxFeathers => ClosestVoxColor(color), + HumanoidSkinColor.AnimalFur => ClosestAnimalFurColor(color), // Einsetin Engines - Tajaran _ => color }; } @@ -279,4 +343,5 @@ public enum HumanoidSkinColor : byte VoxFeathers, // Vox feathers are limited to a specific color range TintedHues, //This gives a color tint to a humanoid's skin (10% saturation with full hue range). TintedHuesSkin, // DeltaV - Default TintedHues assumes the texture will have the proper skin color, but moths dont + AnimalFur, // Einstein Engines - limits coloration to more or less what earthen animals might have } diff --git a/Content.Shared/Inventory/InventorySystem.Equip.cs b/Content.Shared/Inventory/InventorySystem.Equip.cs index 2b554651f1..2a5ea1e0c5 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/InventorySystem.Helpers.cs b/Content.Shared/Inventory/InventorySystem.Helpers.cs index 7e325abe21..8bb4cf8897 100644 --- a/Content.Shared/Inventory/InventorySystem.Helpers.cs +++ b/Content.Shared/Inventory/InventorySystem.Helpers.cs @@ -139,4 +139,17 @@ public void SpawnItemOnEntity(EntityUid entity, EntProtoId item) //Try insert into hands, or drop on the floor _handsSystem.PickupOrDrop(entity, itemToSpawn, false); } + + // Goobstation + public bool TryGetContainingEntity(Entity entity, [NotNullWhen(true)] out EntityUid? containingEntity) + { + if (!_containerSystem.TryGetContainingContainer(entity, out var container) || !HasComp(container.Owner)) + { + containingEntity = null; + return false; + } + + containingEntity = container.Owner; + return true; + } } diff --git a/Content.Shared/Inventory/InventoryTemplatePrototype.cs b/Content.Shared/Inventory/InventoryTemplatePrototype.cs index ccda898df9..dfeeea1c25 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/Item/ItemToggle/ComponentTogglerSystem.cs b/Content.Shared/Item/ItemToggle/ComponentTogglerSystem.cs index 760cefe27d..f483b8a2ee 100644 --- a/Content.Shared/Item/ItemToggle/ComponentTogglerSystem.cs +++ b/Content.Shared/Item/ItemToggle/ComponentTogglerSystem.cs @@ -16,11 +16,20 @@ public override void Initialize() private void OnToggled(Entity ent, ref ItemToggledEvent args) { - var target = ent.Comp.Parent ? Transform(ent).ParentUid : ent.Owner; + ToggleComponent(ent, args.Activated); + } + + // Goobstation - Make this system more flexible + public void ToggleComponent(EntityUid uid, bool activate) + { + if (!TryComp(uid, out var component)) + return; + + var target = component.Parent ? Transform(uid).ParentUid : uid; - if (args.Activated) - EntityManager.AddComponents(target, ent.Comp.Components); + if (activate) + EntityManager.AddComponents(target, component.Components); else - EntityManager.RemoveComponents(target, ent.Comp.RemoveComponents ?? ent.Comp.Components); + EntityManager.RemoveComponents(target, component.RemoveComponents ?? component.Components); } } diff --git a/Content.Shared/Mind/Components/MindContainerComponent.cs b/Content.Shared/Mind/Components/MindContainerComponent.cs index 62b26cbd35..be6ad6b125 100644 --- a/Content.Shared/Mind/Components/MindContainerComponent.cs +++ b/Content.Shared/Mind/Components/MindContainerComponent.cs @@ -37,6 +37,12 @@ public sealed partial class MindContainerComponent : Component [DataField("ghostOnShutdown")] [Access(typeof(SharedMindSystem), Other = AccessPermissions.ReadWriteExecute)] // FIXME Friends public bool GhostOnShutdown { get; set; } = true; + + /// + /// DeltaV: The first mind to control this mob. Will only be null if the mob never had a mind at all. + /// + [DataField, AutoNetworkedField] + public EntityUid? OriginalMind; } public abstract class MindEvent : EntityEventArgs diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs index 91a7ce19ce..b94e64b505 100644 --- a/Content.Shared/Roles/JobPrototype.cs +++ b/Content.Shared/Roles/JobPrototype.cs @@ -106,6 +106,12 @@ public sealed partial class JobPrototype : IPrototype [DataField] public ProtoId? NameDataset; + /// + /// A list of requirements that when satisfied, add or replace from the base starting gear. + /// + [DataField("conditionalStartingGear")] + public List? ConditionalStartingGears { get; private set; } + /// /// Use this to spawn in as a non-humanoid (borg, test subject, etc.) /// Starting gear will be ignored. @@ -120,6 +126,9 @@ public sealed partial class JobPrototype : IPrototype [DataField("special", serverOnly: true)] public JobSpecial[] Special { get; private set; } = Array.Empty(); + [DataField("afterLoadoutSpecial", serverOnly: true)] + public JobSpecial[] AfterLoadoutSpecial { get; private set; } = []; + [DataField("access")] public IReadOnlyCollection> Access { get; private set; } = Array.Empty>(); @@ -145,6 +154,25 @@ public sealed partial class JobPrototype : IPrototype public bool CanBeAntagTarget = true; // Floofstation Edit } + /// + /// Starting gear that will only be applied upon satisfying requirements. + /// + [DataDefinition] + public sealed partial class ConditionalStartingGear + { + /// + /// The requirements to check. + /// + [DataField(required: true)] + public List Requirements; + + /// + /// The starting gear to apply, replacing the equivalent slots. + /// + [DataField(required: true)] + public ProtoId Id { get; private set; } + } + /// /// Sorts s appropriately for display in the UI, /// respecting their . diff --git a/Content.Shared/Roles/StartingGearPrototype.cs b/Content.Shared/Roles/StartingGearPrototype.cs index 7e47b9a74c..20b4aa9277 100644 --- a/Content.Shared/Roles/StartingGearPrototype.cs +++ b/Content.Shared/Roles/StartingGearPrototype.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Shared.Customization.Systems; using Content.Shared.Preferences; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; @@ -9,6 +10,7 @@ namespace Content.Shared.Roles; public sealed partial class StartingGearPrototype : IPrototype, IInheritingPrototype { [DataField] + [AlwaysPushInheritance] public Dictionary Equipment = new(); /// @@ -24,14 +26,32 @@ public sealed partial class StartingGearPrototype : IPrototype, IInheritingProto public EntProtoId? Duffelbag; [DataField] + [AlwaysPushInheritance] public List Inhand = new(0); /// /// Inserts entities into the specified slot's storage (if it does have storage). /// [DataField] + [AlwaysPushInheritance] public Dictionary> Storage = new(); + /// + /// The list of starting gears that overwrite the entries on this starting gear + /// if their requirements are satisfied. + /// + [DataField("subGear")] + [AlwaysPushInheritance] + public List> SubGears = new(); + + /// + /// The requirements of this starting gear. + /// Only used if this starting gear is a sub-gear of another starting gear. + /// + [DataField] + [AlwaysPushInheritance] + public List Requirements = new(); + [ViewVariables] [IdDataField] public string ID { get; private set; } = string.Empty; @@ -42,6 +62,7 @@ public sealed partial class StartingGearPrototype : IPrototype, IInheritingProto /// [AbstractDataField] + [NeverPushInheritance] public bool Abstract { get; } public string GetGear(string slot, HumanoidCharacterProfile? profile) diff --git a/Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs b/Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs new file mode 100644 index 0000000000..ef60622f32 --- /dev/null +++ b/Content.Shared/SelfExtinguisher/SelfExtinguisherComponent.cs @@ -0,0 +1,66 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.SelfExtinguisher; + +/// +/// When equipped, the SelfExtinguisherComponent will give an action to its wearer to self-extinguish when set on fire. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] +public sealed partial class SelfExtinguisherComponent : Component +{ + /// + /// Action used to self-extinguish. + /// + [DataField, AutoNetworkedField] + public EntProtoId Action = "ActionSelfExtinguish"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + + /// + /// Cooldown before the self-extinguisher can be used again. + /// + [DataField(required: true)] + public TimeSpan Cooldown; + + /// + /// Time before the self-extinguisher can be used again. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField, AutoPausedField] + public TimeSpan NextExtinguish = TimeSpan.Zero; + + /// + /// When failing self-extinguish attempts, + /// don't spam popups every frame and instead have a cooldown. + /// + [DataField] + public TimeSpan PopupCooldown = TimeSpan.FromSeconds(1); + + /// + /// Time before the next popup can be shown. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + [AutoPausedField] + public TimeSpan? NextPopup = null; + + /// + /// If true, requires the wearer to be immune to gas ignition. + /// + [DataField] + public bool RequiresIgniteFromGasImmune = false; + + /// + /// The sound effect that plays upon an extinguish. + /// + [DataField(required: true)] + public SoundSpecifier Sound { get; private set; } = default!; + + /// + /// The sound effect that plays upon getting refilled. + /// + [DataField] + public SoundSpecifier RefillSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg"); +} diff --git a/Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs b/Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs new file mode 100644 index 0000000000..30cea16e57 --- /dev/null +++ b/Content.Shared/SelfExtinguisher/SelfExtinguisherRefillComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared.SelfExtinguisher; + +/// +/// Used to refill the charges of self-extinguishers. +/// +[RegisterComponent] +public sealed partial class SelfExtinguisherRefillComponent : Component +{ + // + // The amount of charges to refill. + // + [DataField(required: true)] + public int RefillAmount; +} diff --git a/Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs b/Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs new file mode 100644 index 0000000000..2aee19202a --- /dev/null +++ b/Content.Shared/SelfExtinguisher/SharedSelfExtinguisherSystem.cs @@ -0,0 +1,167 @@ +using Content.Shared.Actions; +using Content.Shared.Charges.Components; +using Content.Shared.Charges.Systems; +using Content.Shared.Examine; +using Content.Shared.Interaction; +using Content.Shared.Inventory; +using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Timing; +using Robust.Shared.Utility; + +namespace Content.Shared.SelfExtinguisher; + +public abstract partial class SharedSelfExtinguisherSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedChargesSystem _charges = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + + SubscribeLocalEvent>>(GetRelayedVerbs); + SubscribeLocalEvent(OnGetActions); + SubscribeLocalEvent>(OnGetVerbs); + + SubscribeLocalEvent(OnInteractUsing); + + SubscribeLocalEvent(OnExamined); + } + + private void OnMapInit(EntityUid uid, SelfExtinguisherComponent component, MapInitEvent args) + { + if (!_actionContainer.EnsureAction(uid, ref component.ActionEntity, out _, component.Action)) + return; + + // The components SelfExtinguisherComponent and LimitedChargesComponent will be the source of truth + // regarding the cooldowns and charges, and the action component will just mirror any changes. + _actions.SetUseDelay(component.ActionEntity, component.Cooldown); + if (TryComp(uid, out var charges)) + { + _actions.SetCharges(component.ActionEntity, charges.Charges); + _actions.SetMaxCharges(component.ActionEntity, charges.MaxCharges); + } + } + + public void SetCharges(EntityUid uid, int? charges, int? maxCharges, SelfExtinguisherComponent? component = null) + { + if (!Resolve(uid, ref component) || + !TryComp(uid, out var chargeComp)) + return; + + _charges.SetCharges((uid, chargeComp), charges, maxCharges); + _actions.SetCharges(component.ActionEntity, chargeComp.Charges); + _actions.SetMaxCharges(component.ActionEntity, chargeComp.MaxCharges); + + _actions.SetEnabled(component.ActionEntity, chargeComp.Charges != 0); + } + + private void GetRelayedVerbs(EntityUid uid, SelfExtinguisherComponent component, InventoryRelayedEvent> args) + { + OnGetVerbs(uid, component, args.Args); + } + + private void OnGetVerbs(EntityUid uid, SelfExtinguisherComponent component, GetVerbsEvent args) + { + if (!_inventory.TryGetContainingSlot(uid, out var _)) + return; + + var verb = new EquipmentVerb() + { + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png")), + Text = Loc.GetString("self-extinguisher-verb"), + EventTarget = uid, + ExecutionEventArgs = new SelfExtinguishEvent() { Performer = args.User } + }; + + args.Verbs.Add(verb); + } + + private void OnGetActions(EntityUid uid, SelfExtinguisherComponent component, GetItemActionsEvent args) + { + if (component.ActionEntity == null || args.InHands) + return; + + args.AddAction(component.ActionEntity.Value); + } + + private void OnInteractUsing(EntityUid uid, SelfExtinguisherComponent component, InteractUsingEvent args) + { + if (!TryComp(args.Used, out var refill) || + !TryComp(uid, out var charges)) + return; + + if (charges.Charges >= charges.MaxCharges) + { + if (!SetPopupCooldown((uid, component))) + return; + + _popup.PopupClient(Loc.GetString("self-extinguisher-refill-full"), args.User, args.User); + return; + } + + // Add charges + _charges.AddCharges(uid, refill.RefillAmount, charges); + _actions.SetCharges(component.ActionEntity, charges.Charges); + + // Reenable action + _actions.SetEnabled(component.ActionEntity, charges.Charges != 0); + + // Reset cooldown + _actions.ClearCooldown(component.ActionEntity); + component.NextExtinguish = TimeSpan.Zero; + + Dirty(uid, component); + + _popup.PopupClient(Loc.GetString("self-extinguisher-refill"), args.User, args.User); + _audio.PlayPredicted(component.RefillSound, uid, args.User); + + QueueDel(args.Used); + } + + private void OnExamined(EntityUid uid, SelfExtinguisherComponent component, ExaminedEvent args) + { + if (TryComp(uid, out var charges) && charges.Charges == 0) + return; + + var curTime = _timing.CurTime; + if (component.NextExtinguish > curTime) + { + args.PushMarkup(Loc.GetString("self-extinguisher-examine-cooldown-recharging", + ("cooldown", Math.Ceiling((component.NextExtinguish - curTime).TotalSeconds)))); + return; + } + + args.PushMarkup(Loc.GetString("self-extinguisher-examine-cooldown-ready")); + } + + // + // Returns: + // - true if a popup is ready to be shown. The popup cooldown is also set. + // - false if popups are still on cooldown + // + protected bool SetPopupCooldown(Entity ent, TimeSpan? curTime = null) + { + curTime ??= _timing.CurTime; + + if (curTime < ent.Comp.NextPopup) + return false; + + ent.Comp.NextPopup = curTime + ent.Comp.PopupCooldown; + return true; + } +} + +// +// Raised on an attempt to self-extinguish. +// +public sealed partial class SelfExtinguishEvent : InstantActionEvent { } diff --git a/Content.Shared/Species/Components/ReformComponent.cs b/Content.Shared/Species/Components/ReformComponent.cs index 724c9dc330..23afce58ec 100644 --- a/Content.Shared/Species/Components/ReformComponent.cs +++ b/Content.Shared/Species/Components/ReformComponent.cs @@ -1,3 +1,4 @@ + using Content.Shared.Humanoid; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.GameStates; @@ -13,7 +14,7 @@ public sealed partial class ReformComponent : Component [DataField(required: true)] public EntProtoId ActionPrototype = default!; - [DataField, AutoNetworkedField] + [DataField, AutoNetworkedField] public EntityUid? ActionEntity; /// @@ -45,4 +46,10 @@ public sealed partial class ReformComponent : Component /// [DataField(required: true)] public EntProtoId ReformPrototype { get; private set; } + + /// + /// The humanoid appearance that the Diona reform will take on. + /// + [DataField] + public HumanoidAppearanceComponent Appearance; } diff --git a/Content.Shared/Species/Systems/ReformSystem.cs b/Content.Shared/Species/Systems/ReformSystem.cs index d2ceecf28e..d5ba263bc2 100644 --- a/Content.Shared/Species/Systems/ReformSystem.cs +++ b/Content.Shared/Species/Systems/ReformSystem.cs @@ -1,6 +1,7 @@ using Content.Shared.Species.Components; using Content.Shared.Actions; using Content.Shared.DoAfter; +using Content.Shared.Humanoid; using Content.Shared.Popups; using Content.Shared.Stunnable; using Content.Shared.Mind; @@ -22,6 +23,7 @@ public sealed partial class ReformSystem : EntitySystem [Dependency] private readonly SharedStunSystem _stunSystem = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly SharedMindSystem _mindSystem = default!; + [Dependency] private readonly IEntityManager _ent = default!; public override void Initialize() { @@ -44,6 +46,9 @@ private void OnMapInit(EntityUid uid, ReformComponent comp, MapInitEvent args) _actionsSystem.AddAction(uid, ref comp.ActionEntity, out var reformAction, comp.ActionPrototype); + if (TryComp(uid, out var appearance)) + comp.Appearance = appearance; + // See if the action should start with a delay, and give it that starting delay if so. if (comp.StartDelayed && reformAction != null && reformAction.UseDelay != null) { @@ -90,7 +95,31 @@ private void OnDoAfter(EntityUid uid, ReformComponent comp, ReformDoAfterEvent a // Spawn a new entity // This is, to an extent, taken from polymorph. I don't use polymorph for various reasons- most notably that this is permanent. + var appearance = comp.Appearance; var child = Spawn(comp.ReformPrototype, Transform(uid).Coordinates); + var childAppearance = EnsureComp(child); + childAppearance.Species = appearance.Species; + childAppearance.Age = appearance.Age; + childAppearance.Height = appearance.Height; + childAppearance.DisplayPronouns = appearance.DisplayPronouns; + childAppearance.Width = appearance.Width; + childAppearance.Height = appearance.Height; + childAppearance.Gender = appearance.Gender; + childAppearance.CyborgName = appearance.CyborgName; + childAppearance.StationAiName = appearance.StationAiName; + childAppearance.DisplayPronouns = appearance.DisplayPronouns; + childAppearance.BaseLayers = appearance.BaseLayers; + childAppearance.HiddenLayers = appearance.HiddenLayers; + childAppearance.EyeColor = appearance.EyeColor; + childAppearance.CachedFacialHairColor = appearance.CachedFacialHairColor; + childAppearance.MarkingSet = appearance.MarkingSet; + childAppearance.PermanentlyHidden = appearance.PermanentlyHidden; + childAppearance.ClientOldMarkings = appearance.ClientOldMarkings; + childAppearance.SkinColor = appearance.SkinColor; + childAppearance.CustomSpecieName = appearance.CustomSpecieName; + childAppearance.LastProfileLoaded = appearance.LastProfileLoaded; + childAppearance.CustomBaseLayers = appearance.CustomBaseLayers; + Dirty(uid, childAppearance); // This transfers the mind to the new entity if (_mindSystem.TryGetMind(uid, out var mindId, out var mind)) @@ -106,7 +135,7 @@ private void OnZombified(EntityUid uid, ReformComponent comp, ref EntityZombifie } public sealed partial class ReformEvent : InstantActionEvent { } - + [Serializable, NetSerializable] public sealed partial class ReformDoAfterEvent : SimpleDoAfterEvent { } } diff --git a/Content.Shared/Station/SharedStationSpawningSystem.cs b/Content.Shared/Station/SharedStationSpawningSystem.cs index c433cc1d4f..9af87376b0 100644 --- a/Content.Shared/Station/SharedStationSpawningSystem.cs +++ b/Content.Shared/Station/SharedStationSpawningSystem.cs @@ -1,13 +1,18 @@ +using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.Dataset; +using Content.Shared.Customization.Systems; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; +using Content.Shared.Humanoid; using Content.Shared.Inventory; +using Content.Shared.Preferences; using Content.Shared.Preferences.Loadouts; using Content.Shared.Roles; using Content.Shared.Storage; using Content.Shared.Storage.EntitySystems; using Robust.Shared.Collections; +using Robust.Shared.Configuration; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Utility; @@ -23,6 +28,8 @@ public abstract class SharedStationSpawningSystem : EntitySystem [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly SharedTransformSystem _xformSystem = default!; [Dependency] private readonly MetaDataSystem _metadata = default!; + [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; private EntityQuery _handsQuery; private EntityQuery _inventoryQuery; @@ -78,6 +85,10 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG if (startingGear == null) return; + if (GetProfile(entity, out var profile)) + // Equip any sub-gears of this starting gear. + startingGear = ApplySubGear(startingGear, profile); + var xform = _xformQuery.GetComponent(entity); if (InventorySystem.TryGetSlots(entity, out var slotDefinitions)) @@ -143,4 +154,108 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG RaiseLocalEvent(entity, ref ev); } } + + public bool GetProfile(EntityUid? uid, [NotNullWhen(true)] out HumanoidCharacterProfile? profile) + { + if (!TryComp(uid, out HumanoidAppearanceComponent? appearance)) + { + profile = null; + return false; + } + + if (appearance.LastProfileLoaded is { } lastProfileLoaded) + { + profile = lastProfileLoaded; + return true; + } + + profile = HumanoidCharacterProfile.DefaultWithSpecies(appearance.Species); + return true; + } + + // + // Apply a starting gear's sub-gears to itself, returning a new starting gear prototype with + // replaced equipment. + // + public StartingGearPrototype ApplySubGear(StartingGearPrototype startingGear, HumanoidCharacterProfile profile, JobPrototype? job = null) + { + if (startingGear.SubGears.Count == 0) + return startingGear; + + // Job can be null for cases like ghost roles' starting gear which do not have a job definition. + job ??= new JobPrototype(); + + var newStartingGear = startingGear; + var foundConditionalMatch = false; + + foreach (var subGear in startingGear.SubGears) + { + if (!PrototypeManager.TryIndex(subGear.Id, out var subGearProto) || + !_characterRequirements.CheckRequirementsValid( + subGearProto.Requirements, job, profile, new Dictionary(), false, job, + EntityManager, PrototypeManager, _configurationManager, + out _)) + continue; + + // Apply the sub-gear's sub-gears if there are any + subGearProto = ApplySubGear(subGearProto, profile, job); + + if (!foundConditionalMatch) + { + foundConditionalMatch = true; + // Lazy init on making a new starting gear prototype for performance reasons. + // We can't just modify the original prototype or it will be modified for everyone. + newStartingGear = new StartingGearPrototype() + { + Equipment = startingGear.Equipment.ToDictionary(static entry => entry.Key, static entry => entry.Value), + InnerClothingSkirt = startingGear.InnerClothingSkirt, + Satchel = startingGear.Satchel, + Duffelbag = startingGear.Duffelbag, + Inhand = new List(startingGear.Inhand), + Storage = startingGear.Storage.ToDictionary( + static entry => entry.Key, + static entry => new List(entry.Value) + ), + }; + } + + // Apply the sub-gear's equipment to this starting gear + if (subGearProto.InnerClothingSkirt != null) + newStartingGear.InnerClothingSkirt = subGearProto.InnerClothingSkirt; + + if (subGearProto.Satchel != null) + newStartingGear.Satchel = subGearProto.Satchel; + + if (subGearProto.Duffelbag != null) + newStartingGear.Duffelbag = subGearProto.Duffelbag; + + foreach (var (slot, entProtoId) in subGearProto.Equipment) + { + // Don't remove items in pockets, instead put them in the backpack or hands + if (slot == "pocket1" && newStartingGear.Equipment.TryGetValue("pocket1", out var pocket1) || + slot == "pocket2" && newStartingGear.Equipment.TryGetValue("pocket2", out var pocket2)) + { + var pocketProtoId = slot == "pocket1" ? pocket1 : pocket2; + + if (string.IsNullOrEmpty(newStartingGear.GetGear("back", null))) + newStartingGear.Inhand.Add(pocketProtoId); + else + { + if (!newStartingGear.Storage.ContainsKey("back")) + newStartingGear.Storage["back"] = new(); + newStartingGear.Storage["back"].Add(pocketProtoId); + } + } + + newStartingGear.Equipment[slot] = entProtoId; + } + + newStartingGear.Inhand.AddRange(subGearProto.Inhand); + + foreach (var (slot, entProtoIds) in subGearProto.Storage) + newStartingGear.Storage[slot].AddRange(entProtoIds); + } + + return newStartingGear; + } } diff --git a/Content.Shared/Strip/Components/StripMenuHiddenComponent.cs b/Content.Shared/Strip/Components/StripMenuHiddenComponent.cs new file mode 100644 index 0000000000..d13b8bdc7a --- /dev/null +++ b/Content.Shared/Strip/Components/StripMenuHiddenComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared.Strip.Components; + +/// +/// An item with this component is always hidden in the strip menu, regardless of other circumstances. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class StripMenuHiddenComponent : Component; diff --git a/Content.Shared/Temperature/Components/TemperatureSpeedComponent.cs b/Content.Shared/Temperature/Components/TemperatureSpeedComponent.cs new file mode 100644 index 0000000000..74ba2a0274 --- /dev/null +++ b/Content.Shared/Temperature/Components/TemperatureSpeedComponent.cs @@ -0,0 +1,30 @@ +using Content.Shared.Temperature.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Temperature.Components; + +/// +/// This is used for an entity that varies in speed based on current temperature. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedTemperatureSystem)), AutoGenerateComponentState, AutoGenerateComponentPause] +public sealed partial class TemperatureSpeedComponent : Component +{ + /// + /// Pairs of temperature thresholds to applied slowdown values. + /// + [DataField] + public Dictionary Thresholds = new(); + + /// + /// The current speed modifier from we reached. + /// Stored and networked so that the client doesn't mispredict temperature + /// + [DataField, AutoNetworkedField] + public float? CurrentSpeedModifier; + + /// + /// The time at which the temperature slowdown is updated. + /// + [DataField, AutoNetworkedField, AutoPausedField] + public TimeSpan? NextSlowdownUpdate; +} diff --git a/Content.Shared/Temperature/Systems/SharedTemperatureSystem.cs b/Content.Shared/Temperature/Systems/SharedTemperatureSystem.cs new file mode 100644 index 0000000000..efea2df5af --- /dev/null +++ b/Content.Shared/Temperature/Systems/SharedTemperatureSystem.cs @@ -0,0 +1,80 @@ +using System.Linq; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Temperature.Components; +using Robust.Shared.Timing; + +namespace Content.Shared.Temperature.Systems; + +/// +/// This handles predicting temperature based speedup. +/// +public sealed class SharedTemperatureSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifier = default!; + + /// + /// Band-aid for unpredicted atmos. Delays the application for a short period so that laggy clients can get the replicated temperature. + /// + private static readonly TimeSpan SlowdownApplicationDelay = TimeSpan.FromSeconds(1f); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnTemperatureChanged); + SubscribeLocalEvent(OnRefreshMovementSpeedModifiers); + } + + private void OnTemperatureChanged(Entity ent, ref OnTemperatureChangeEvent args) + { + foreach (var (threshold, modifier) in ent.Comp.Thresholds) + { + if (args.CurrentTemperature < threshold && args.LastTemperature > threshold || + args.CurrentTemperature > threshold && args.LastTemperature < threshold) + { + ent.Comp.NextSlowdownUpdate = _timing.CurTime + SlowdownApplicationDelay; + ent.Comp.CurrentSpeedModifier = modifier; + Dirty(ent); + break; + } + } + + var maxThreshold = ent.Comp.Thresholds.Max(p => p.Key); + if (args.CurrentTemperature > maxThreshold && args.LastTemperature < maxThreshold) + { + ent.Comp.NextSlowdownUpdate = _timing.CurTime + SlowdownApplicationDelay; + ent.Comp.CurrentSpeedModifier = null; + Dirty(ent); + } + } + + private void OnRefreshMovementSpeedModifiers(Entity ent, ref RefreshMovementSpeedModifiersEvent args) + { + // Don't update speed and mispredict while we're compensating for lag. + if (ent.Comp.NextSlowdownUpdate != null || ent.Comp.CurrentSpeedModifier == null) + return; + + args.ModifySpeed(ent.Comp.CurrentSpeedModifier.Value, ent.Comp.CurrentSpeedModifier.Value); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var temp, out var movement)) + { + if (temp.NextSlowdownUpdate == null) + continue; + + if (_timing.CurTime < temp.NextSlowdownUpdate) + continue; + + temp.NextSlowdownUpdate = null; + _movementSpeedModifier.RefreshMovementSpeedModifiers(uid, movement); + Dirty(uid, temp); + } + } +} diff --git a/Content.Shared/Temperature/TemperatureEvents.cs b/Content.Shared/Temperature/TemperatureEvents.cs index ac12224868..7a26d07e30 100644 --- a/Content.Shared/Temperature/TemperatureEvents.cs +++ b/Content.Shared/Temperature/TemperatureEvents.cs @@ -13,3 +13,18 @@ public ModifyChangedTemperatureEvent(float temperature) TemperatureDelta = temperature; } } + +public sealed class OnTemperatureChangeEvent : EntityEventArgs +{ + public readonly float CurrentTemperature; + public readonly float LastTemperature; + public readonly float TemperatureDelta; + + public OnTemperatureChangeEvent(float current, float last, float delta) + { + CurrentTemperature = current; + LastTemperature = last; + TemperatureDelta = delta; + } +} + diff --git a/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs b/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs index 571db09ebe..8f87633eb6 100644 --- a/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs +++ b/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs @@ -1,3 +1,4 @@ +using Content.Shared.Customization.Systems; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -13,6 +14,7 @@ public sealed partial class ThiefBackpackSetPrototype : IPrototype [DataField] public string Name { get; private set; } = string.Empty; [DataField] public string Description { get; private set; } = string.Empty; [DataField] public SpriteSpecifier Sprite { get; private set; } = SpriteSpecifier.Invalid; + [DataField] public List Requirements { get; private set; } = []; [DataField] public List Content = new(); } diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index ce2228ff66..4e59ff32fe 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -53,16 +53,6 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem private const int AttackMask = (int) (CollisionGroup.MobMask | CollisionGroup.Opaque); - /// - /// Maximum amount of targets allowed for a wide-attack. - /// - public const int MaxTargets = 5; - - /// - /// If an attack is released within this buffer it's assumed to be full damage. - /// - public const float GracePeriod = 0.05f; - public override void Initialize() { base.Initialize(); @@ -105,7 +95,7 @@ private void OnMeleeSelected(EntityUid uid, MeleeWeaponComponent component, Hand // If someone swaps to this weapon then reset its cd. var curTime = Timing.CurTime; - var minimum = curTime + TimeSpan.FromSeconds(GetAttackRate(uid, args.User, component)); + var minimum = curTime + TimeSpan.FromSeconds(attackRate); if (minimum < component.NextAttack) return; diff --git a/Content.Shared/_Arcadis/Computer/DiskBurnerSystem.cs b/Content.Shared/_Arcadis/Computer/DiskBurnerSystem.cs index 0856b2fbe6..4c368186ef 100644 --- a/Content.Shared/_Arcadis/Computer/DiskBurnerSystem.cs +++ b/Content.Shared/_Arcadis/Computer/DiskBurnerSystem.cs @@ -87,7 +87,7 @@ private void OnExamined(EntityUid uid, DiskBurnerComponent component, ExaminedEv missing.Add("disk"); if (boardSlot.Item is null) - missing.Add("or"); + missing.Add("board"); args.PushMarkup(Loc.GetString("disk-burner-missing", ("missing", string.Join(", or ", missing)))); return; diff --git a/Content.Shared/_DV/Actions/Events/ChitziteActionEvent.cs b/Content.Shared/_DV/Actions/Events/ChitziteActionEvent.cs new file mode 100644 index 0000000000..a36bd148d6 --- /dev/null +++ b/Content.Shared/_DV/Actions/Events/ChitziteActionEvent.cs @@ -0,0 +1,3 @@ +namespace Content.Shared.Actions.Events; + +public sealed partial class ChitziteActionEvent : InstantActionEvent {} diff --git a/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs new file mode 100644 index 0000000000..6ccf7f5b21 --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs @@ -0,0 +1,44 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; +using Robust.Shared.Utility; + +namespace Content.Shared._EstacaoPirata.Cards.Card; + +/// +/// This is used for... +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class CardComponent : Component +{ + /// + /// The back of the card + /// + [DataField(readOnly: true)] + public List BackSprite = []; + + /// + /// The front of the card + /// + [DataField(readOnly: true)] + public List FrontSprite = []; + + /// + /// If it is currently flipped. This is used to update sprite and name. + /// + [DataField(readOnly: true), AutoNetworkedField] + public bool Flipped = false; + + + /// + /// The name of the card. + /// + [DataField(readOnly: true), AutoNetworkedField] + public string Name = ""; + +} + +[Serializable, NetSerializable] +public sealed class CardFlipUpdatedEvent(NetEntity card) : EntityEventArgs +{ + public NetEntity Card = card; +} diff --git a/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs new file mode 100644 index 0000000000..68766eda2a --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs @@ -0,0 +1,223 @@ +using Content.Shared._EstacaoPirata.Cards.Deck; +using Content.Shared._EstacaoPirata.Cards.Hand; +using Content.Shared._EstacaoPirata.Cards.Stack; +using Content.Shared.Examine; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; +using Content.Shared.Verbs; +using Robust.Shared.Containers; +using Robust.Shared.Network; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._EstacaoPirata.Cards.Card; + +/// +/// This handles... +/// +public sealed class CardSystem : EntitySystem +{ + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly CardStackSystem _cardStack = default!; + [Dependency] private readonly CardDeckSystem _cardDeck = default!; + [Dependency] private readonly CardHandSystem _cardHand = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + /// + public override void Initialize() + { + SubscribeLocalEvent>(AddTurnOnVerb); + SubscribeLocalEvent>(OnActivationVerb); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnUse); + SubscribeLocalEvent(OnActivate); + } + private void OnExamined(EntityUid uid, CardComponent component, ExaminedEvent args) + { + if (args.IsInDetailsRange && !component.Flipped) + { + args.PushMarkup(Loc.GetString("card-examined", ("target", Loc.GetString(component.Name)))); + } + } + + private void AddTurnOnVerb(EntityUid uid, CardComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + + args.Verbs.Add(new AlternativeVerb() + { + Act = () => FlipCard(uid, component), + Text = Loc.GetString("cards-verb-flip"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/flip.svg.192dpi.png")), + Priority = 1 + }); + + if (args.Using == null || args.Using == args.Target) + return; + + if (TryComp(args.Using, out var usingStack)) + { + args.Verbs.Add(new AlternativeVerb() + { + Act = () => JoinCards(args.User, args.Target, component, (EntityUid)args.Using, usingStack), + Text = Loc.GetString("card-verb-join"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")), + Priority = 2 + }); + } + else if (TryComp(args.Using, out var usingCard)) + { + var pickup = _hands.IsHolding(args.User, args.Target); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => _cardHand.TrySetupHandOfCards(args.User, args.Target, component, args.Using.Value, usingCard, pickup), + Text = Loc.GetString("card-verb-join"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")), + Priority = 2 + }); + } + } + + private void OnUse(EntityUid uid, CardComponent comp, UseInHandEvent args) + { + if (args.Handled) + return; + + FlipCard(uid, comp); + args.Handled = true; + } + + /// + /// Server-Side only method to flip card. This starts CardFlipUpdatedEvent event + /// + /// + /// + private void FlipCard(EntityUid uid, CardComponent component) + { + if (_net.IsClient) + return; + component.Flipped = !component.Flipped; + Dirty(uid, component); + RaiseNetworkEvent(new CardFlipUpdatedEvent(GetNetEntity(uid))); + } + + private void JoinCards(EntityUid user, EntityUid first, CardComponent firstComp, EntityUid second, CardStackComponent secondStack) + { + if (_net.IsClient) + return; + bool pickup = _hands.IsHolding(user, first); + EntityUid cardStack; + bool? flip = null; + if (HasComp(second)) + { + cardStack = SpawnInSameParent(_cardDeck.CardDeckBaseName, first); + } + else if (HasComp(second)) + { + cardStack = SpawnInSameParent(_cardHand.CardHandBaseName, first); + if(TryComp(cardStack, out var stackHand)) + stackHand.Flipped = firstComp.Flipped; + flip = firstComp.Flipped; + } + else + return; + + if (!TryComp(cardStack, out CardStackComponent? stack)) + return; + if (!_cardStack.TryInsertCard(cardStack, first, stack)) + return; + _cardStack.TransferNLastCardFromStacks(user, secondStack.Cards.Count, second, secondStack, cardStack, stack); + if (flip != null) + _cardStack.FlipAllCards(cardStack, stack, flip); //??? + if(pickup) + _hands.TryPickupAnyHand(user, cardStack); + } + + // Frontier: tries to spawn an entity with the same parent as another given entity. + // Useful when spawning decks/hands in a backpack, for example. + private EntityUid SpawnInSameParent(EntProtoId prototype, EntityUid uid) + { + if (_container.IsEntityOrParentInContainer(uid) && + _container.TryGetOuterContainer(uid, Transform(uid), out var container)) + { + return SpawnInContainerOrDrop(prototype, container.Owner, container.ID); + } + return Spawn(prototype, Transform(uid).Coordinates); + } + + // Frontier: hacky misuse of the activation verb, but allows us a separate way to draw cards without needing additional buttons and event fiddling + private void OnActivationVerb(EntityUid uid, CardComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + + if (args.Using == args.Target) + return; + + if (HasComp(uid)) + return; + + if (args.Using == null) + { + args.Verbs.Add(new ActivationVerb() + { + Act = () => _hands.TryPickupAnyHand(args.User, args.Target), + Text = Loc.GetString("cards-verb-draw"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")), + Priority = 16 + }); + } + else if (TryComp(args.Using, out var cardStack)) + { + args.Verbs.Add(new ActivationVerb() + { + Act = () => _cardStack.InsertCardOnStack(args.User, args.Using.Value, cardStack, args.Target), + Text = Loc.GetString("cards-verb-draw"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")), + Priority = 16 + }); + } + else if (TryComp(args.Using, out var card)) + { + args.Verbs.Add(new ActivationVerb() + { + Act = () => _cardHand.TrySetupHandOfCards(args.User, args.Using.Value, card, args.Target, component, true), + Text = Loc.GetString("cards-verb-draw"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")), + Priority = 16 + }); + } + } + // End Frontier + + private void OnActivate(EntityUid uid, CardComponent component, ActivateInWorldEvent args) + { + if (!args.Complex || args.Handled) + return; + + if (!TryComp(args.User, out var hands)) + return; + + // Card stacks are handled differently + if (HasComp(args.Target)) + return; + + var activeItem = _hands.GetActiveItem((args.User, hands)); + + if (activeItem == null) + { + _hands.TryPickupAnyHand(args.User, args.Target); + } + else if (TryComp(activeItem, out var cardStack)) + { + _cardStack.InsertCardOnStack(args.User, activeItem.Value, cardStack, args.Target); + } + else if (TryComp(activeItem, out var card)) + { + _cardHand.TrySetupHandOfCards(args.User, activeItem.Value, card, args.Target, component, true); + } + } +} diff --git a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs new file mode 100644 index 0000000000..f695eab8d9 --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs @@ -0,0 +1,28 @@ +using Robust.Shared.Audio; + +namespace Content.Shared._EstacaoPirata.Cards.Deck; + +/// +/// This is used for... +/// +[RegisterComponent] +public sealed partial class CardDeckComponent : Component +{ + [DataField] + public SoundSpecifier ShuffleSound = new SoundCollectionSpecifier("cardFan"); + + [DataField] + public SoundSpecifier PickUpSound = new SoundCollectionSpecifier("cardSlide"); + + [DataField] + public SoundSpecifier PlaceDownSound = new SoundCollectionSpecifier("cardShove"); + + [DataField] + public float YOffset = 0.02f; + + [DataField] + public float Scale = 1; + + [DataField] + public int CardLimit = 5; +} diff --git a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs new file mode 100644 index 0000000000..dc5096c810 --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs @@ -0,0 +1,123 @@ +using Content.Shared._EstacaoPirata.Cards.Card; +using Content.Shared._EstacaoPirata.Cards.Stack; +using Content.Shared.Audio; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Item; +using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Network; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Utility; + +namespace Content.Shared._EstacaoPirata.Cards.Deck; + +/// +/// This handles card decks +/// +public sealed class CardDeckSystem : EntitySystem +{ + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly CardStackSystem _cardStackSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + public readonly EntProtoId CardDeckBaseName = "CardDeckBase"; + + /// + public override void Initialize() + { + SubscribeLocalEvent>(AddTurnOnVerb); + } + + private void AddTurnOnVerb(EntityUid uid, CardDeckComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + + if (!TryComp(uid, out CardStackComponent? comp)) + return; + + args.Verbs.Add(new AlternativeVerb() + { + Act = () => TryShuffle(uid, component, comp), + Text = Loc.GetString("cards-verb-shuffle"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/die.svg.192dpi.png")), + Priority = 4 + }); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => TrySplit(args.Target, component, comp, args.User), + Text = Loc.GetString("cards-verb-split"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/dot.svg.192dpi.png")), + Priority = 3 + }); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => TryOrganize(uid, component, comp, true), + Text = Loc.GetString("cards-verb-organize-down"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/flip.svg.192dpi.png")), + Priority = 2 + }); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => TryOrganize(uid, component, comp, false), + Text = Loc.GetString("cards-verb-organize-up"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/flip.svg.192dpi.png")), + Priority = 1 + }); + } + + private void TrySplit(EntityUid uid, CardDeckComponent deck, CardStackComponent stack, EntityUid user) + { + if (stack.Cards.Count <= 1) + return; + + _audio.PlayPredicted(deck.PickUpSound, Transform(uid).Coordinates, user); + + if (!_net.IsServer) + return; + + var cardDeck = SpawnInSameParent(CardDeckBaseName, uid); + + EnsureComp(cardDeck, out var deckStack); + + _cardStackSystem.TransferNLastCardFromStacks(user, stack.Cards.Count / 2, uid, stack, cardDeck, deckStack); + _hands.PickupOrDrop(user, cardDeck); + } + + private void TryShuffle(EntityUid deck, CardDeckComponent comp, CardStackComponent? stack) + { + _cardStackSystem.ShuffleCards(deck, stack); + if (_net.IsClient) + return; + + _audio.PlayPvs(comp.ShuffleSound, deck, AudioHelpers.WithVariation(0.05f, _random)); + _popup.PopupEntity(Loc.GetString("card-verb-shuffle-success", ("target", MetaData(deck).EntityName)), deck); + } + + private void TryOrganize(EntityUid deck, CardDeckComponent comp, CardStackComponent? stack, bool isFlipped) + { + if (_net.IsClient) + return; + _cardStackSystem.FlipAllCards(deck, stack, isFlipped: isFlipped); + + _audio.PlayPvs(comp.ShuffleSound, deck, AudioHelpers.WithVariation(0.05f, _random)); + _popup.PopupEntity(Loc.GetString("card-verb-organize-success", ("target", MetaData(deck).EntityName), ("facedown", isFlipped)), deck); + } + + private EntityUid SpawnInSameParent(string prototype, EntityUid uid) + { + if (_container.IsEntityOrParentInContainer(uid) && + _container.TryGetOuterContainer(uid, Transform(uid), out var container)) + { + return SpawnInContainerOrDrop(prototype, container.Owner, container.ID); + } + return Spawn(prototype, Transform(uid).Coordinates); + } +} diff --git a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs new file mode 100644 index 0000000000..39e0c4ac45 --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs @@ -0,0 +1,38 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared._EstacaoPirata.Cards.Hand; + +/// +/// This is used for... +/// +[RegisterComponent] +public sealed partial class CardHandComponent : Component +{ + [DataField] + public float Angle = 120f; + + [DataField] + public float XOffset = 0.5f; + + [DataField] + public float Scale = 1; + + [DataField] + public int CardLimit = 10; + + [DataField] + public bool Flipped = false; +} + + +[Serializable, NetSerializable] +public enum CardUiKey : byte +{ + Key +} + +[Serializable, NetSerializable] +public sealed class CardHandDrawMessage(NetEntity card) : BoundUserInterfaceMessage +{ + public NetEntity Card = card; +} diff --git a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs new file mode 100644 index 0000000000..98d089dfe9 --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs @@ -0,0 +1,237 @@ +using System.Linq; +using Content.Shared._EstacaoPirata.Cards.Card; +using Content.Shared._EstacaoPirata.Cards.Deck; +using Content.Shared._EstacaoPirata.Cards.Stack; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Popups; +using Content.Shared.Storage.EntitySystems; +using Content.Shared.Verbs; +using Robust.Shared.Containers; +using Robust.Shared.Network; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._EstacaoPirata.Cards.Hand; + +/// +/// This handles... +/// + +public sealed class CardHandSystem : EntitySystem +{ + [ValidatePrototypeId] + public readonly EntProtoId CardHandBaseName = "CardHandBase"; + [ValidatePrototypeId] + public readonly EntProtoId CardDeckBaseName = "CardDeckBase"; + + [Dependency] private readonly CardStackSystem _cardStack = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly SharedUserInterfaceSystem _ui = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedStorageSystem _storage = default!; // Frontier + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnCardDraw); + SubscribeLocalEvent(OnStackQuantityChange); + SubscribeLocalEvent>(OnAlternativeVerb); + } + + private void OnStackQuantityChange(EntityUid uid, CardHandComponent comp, CardStackQuantityChangeEvent args) + { + if (_net.IsClient) + return; + + if (!TryComp(uid, out CardStackComponent? stack)) + return; + + if (stack.Cards.Count < 0) + { + Log.Warning($"Invalid negative card count {stack.Cards.Count} detected in stack {ToPrettyString(uid)}"); + return; + } + + var text = args.Type switch + { + StackQuantityChangeType.Added => "cards-stackquantitychange-added", + StackQuantityChangeType.Removed => "cards-stackquantitychange-removed", + StackQuantityChangeType.Joined => "cards-stackquantitychange-joined", + StackQuantityChangeType.Split => "cards-stackquantitychange-split", + _ => "cards-stackquantitychange-unknown" + }; + + _popupSystem.PopupEntity(Loc.GetString(text, ("quantity", stack.Cards.Count)), uid); + + _cardStack.FlipAllCards(uid, stack, comp.Flipped); + } + + private void OnCardDraw(EntityUid uid, CardHandComponent comp, CardHandDrawMessage args) + { + if (!TryComp(uid, out CardStackComponent? stack)) + return; + var pickup = _hands.IsHolding(args.Actor, uid); + EntityUid? leftover = null; + var cardEnt = GetEntity(args.Card); + + if (stack.Cards.Count == 2 && pickup) + { + leftover = stack.Cards[0] != cardEnt ? stack.Cards[0] : stack.Cards[1]; + } + if (!_cardStack.TryRemoveCard(uid, cardEnt, stack)) + return; + + if (_net.IsServer) + _storage.PlayPickupAnimation(cardEnt, Transform(cardEnt).Coordinates, Transform(args.Actor).Coordinates, 0); + + _hands.TryPickupAnyHand(args.Actor, cardEnt); + if (pickup && leftover != null) + { + _hands.TryPickupAnyHand(args.Actor, leftover.Value); + } + } + + private void OpenHandMenu(EntityUid user, EntityUid hand) + { + if (!TryComp(user, out var actor)) + return; + + _ui.OpenUi(hand, CardUiKey.Key, actor.PlayerSession); + + } + + private void OnAlternativeVerb(EntityUid uid, CardHandComponent comp, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + + args.Verbs.Add(new AlternativeVerb() + { + Act = () => OpenHandMenu(args.User, uid), + Text = Loc.GetString("cards-verb-pickcard"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/die.svg.192dpi.png")), + Priority = 4 + }); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => _cardStack.ShuffleCards(uid), + Text = Loc.GetString("cards-verb-shuffle"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/die.svg.192dpi.png")), + Priority = 3 + }); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => FlipCards(uid, comp), + Text = Loc.GetString("cards-verb-flip"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/flip.svg.192dpi.png")), + Priority = 2 + }); + args.Verbs.Add(new AlternativeVerb() + { + Act = () => ConvertToDeck(args.User, uid), + Text = Loc.GetString("cards-verb-convert-to-deck"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/rotate_cw.svg.192dpi.png")), + Priority = 1 + }); + } + + private void OnInteractUsing(EntityUid uid, CardComponent comp, InteractUsingEvent args) + { + if (args.Handled) + return; + + if (HasComp(args.Used) || + !TryComp(args.Used, out CardComponent? usedComp)) + return; + + if (!HasComp(args.Target) && + TryComp(args.Target, out CardComponent? targetCardComp)) + { + TrySetupHandOfCards(args.User, args.Used, usedComp, args.Target, targetCardComp, true); + args.Handled = true; + } + } + + private void ConvertToDeck(EntityUid user, EntityUid hand) + { + if (_net.IsClient) + return; + + var cardDeck = SpawnInSameParent(CardDeckBaseName, hand); + bool isHoldingCards = _hands.IsHolding(user, hand); + + EnsureComp(cardDeck, out var deckStack); + if (!TryComp(hand, out CardStackComponent? handStack)) + return; + _cardStack.TryJoinStacks(cardDeck, hand, deckStack, handStack, null); + + if (isHoldingCards) + _hands.TryPickupAnyHand(user, cardDeck); + } + public void TrySetupHandOfCards(EntityUid user, EntityUid card, CardComponent comp, EntityUid target, CardComponent targetComp, bool pickup) + { + if (card == target || _net.IsClient) + return; + var cardHand = SpawnInSameParent(CardHandBaseName, card); + if (TryComp(cardHand, out var handComp)) + handComp.Flipped = targetComp.Flipped; + if (!TryComp(cardHand, out CardStackComponent? stack)) + return; + if (!_cardStack.TryInsertCard(cardHand, card, stack) || !_cardStack.TryInsertCard(cardHand, target, stack)) + return; + if (_net.IsServer) + _storage.PlayPickupAnimation(card, Transform(card).Coordinates, Transform(cardHand).Coordinates, 0); + if (pickup && !_hands.TryPickupAnyHand(user, cardHand)) + return; + _cardStack.FlipAllCards(cardHand, stack, targetComp.Flipped); + } + + public void TrySetupHandFromStack(EntityUid user, EntityUid card, CardComponent comp, EntityUid target, CardStackComponent targetComp, bool pickup) + { + if (_net.IsClient) + return; + var cardHand = SpawnInSameParent(CardHandBaseName, card); + if (TryComp(cardHand, out var handComp)) + handComp.Flipped = comp.Flipped; + if (!TryComp(cardHand, out CardStackComponent? stack)) + return; + if (!_cardStack.TryInsertCard(cardHand, card, stack)) + return; + _cardStack.TransferNLastCardFromStacks(user, 1, target, targetComp, cardHand, stack); + if (pickup && !_hands.TryPickupAnyHand(user, cardHand)) + return; + _cardStack.FlipAllCards(cardHand, stack, comp.Flipped); + } + + private void FlipCards(EntityUid hand, CardHandComponent comp) + { + comp.Flipped = !comp.Flipped; + _cardStack.FlipAllCards(hand, null, comp.Flipped); + } + + // Frontier: tries to spawn an entity with the same parent as another given entity. + // Useful when spawning decks/hands in a backpack, for example. + private EntityUid SpawnInSameParent(EntProtoId prototype, EntityUid uid) + { + if (prototype == default) + throw new ArgumentException("Cannot spawn with null prototype", nameof(prototype)); + + if (_container.IsEntityOrParentInContainer(uid) && + _container.TryGetOuterContainer(uid, Transform(uid), out var container)) + { + var entity = SpawnInContainerOrDrop(prototype, container.Owner, container.ID); + if (!Exists(entity)) + Log.Error($"Failed to spawn {prototype} in container {container.ID}"); + return entity; + } + var worldEntity = Spawn(prototype, Transform(uid).Coordinates); + if (!Exists(worldEntity)) + Log.Error($"Failed to spawn {prototype} at coordinates {Transform(uid).Coordinates}"); + return worldEntity; + } +} diff --git a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs new file mode 100644 index 0000000000..3247e0752b --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs @@ -0,0 +1,83 @@ +using Robust.Shared.Audio; +using Robust.Shared.Containers; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared._EstacaoPirata.Cards.Stack; + +/// +/// This is used for holding the prototype ids of the cards in the stack or hand. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] + +public sealed partial class CardStackComponent : Component +{ + [DataField] + public List InitialContent = []; + + [DataField] + public SoundSpecifier ShuffleSound = new SoundCollectionSpecifier("cardFan"); + + [DataField] + public SoundSpecifier PickUpSound = new SoundCollectionSpecifier("cardSlide"); + + [DataField] + public SoundSpecifier PlaceDownSound = new SoundCollectionSpecifier("cardShove"); + + + /// + /// The containers that contain the items held in the stack + /// + [ViewVariables] + public Container ItemContainer = default!; + + /// + /// The list EntityUIds of Cards + /// + [DataField, AutoNetworkedField] + public List Cards = []; +} + +[Serializable, NetSerializable] +public sealed class CardStackInitiatedEvent(NetEntity cardStack) : EntityEventArgs +{ + public NetEntity CardStack = cardStack; +} + +/// +/// This gets Updated when new cards are added or removed from the stack +/// +[Serializable, NetSerializable] +public sealed class CardStackQuantityChangeEvent(NetEntity stack, NetEntity? card, StackQuantityChangeType type) : EntityEventArgs +{ + public NetEntity Stack = stack; + public NetEntity? Card = card; + public StackQuantityChangeType Type = type; +} + +[Serializable, NetSerializable] +public enum StackQuantityChangeType : sbyte +{ + Added, + Removed, + Joined, + Split +} + + + +[Serializable, NetSerializable] +public sealed class CardStackReorderedEvent(NetEntity stack) : EntityEventArgs +{ + public NetEntity Stack = stack; +} + +[Serializable, NetSerializable] +public sealed class CardStackFlippedEvent(NetEntity cardStack) : EntityEventArgs +{ + public NetEntity CardStack = cardStack; +} + + + diff --git a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs new file mode 100644 index 0000000000..ca09056bb7 --- /dev/null +++ b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs @@ -0,0 +1,482 @@ +using System.Linq; +using Content.Shared._EstacaoPirata.Cards.Card; +using Content.Shared._EstacaoPirata.Cards.Deck; +using Content.Shared._EstacaoPirata.Cards.Hand; +using Content.Shared.Examine; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Storage.EntitySystems; +using Content.Shared.Verbs; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Map; +using Robust.Shared.Network; +using Robust.Shared.Random; +using Robust.Shared.Utility; + +namespace Content.Shared._EstacaoPirata.Cards.Stack; + +/// +/// This handles stack of cards. +/// It is used to shuffle, flip, insert, remove, and join stacks of cards. +/// It also handles the events related to the stack of cards. +/// +public sealed class CardStackSystem : EntitySystem +{ + public const string ContainerId = "cardstack-container"; + public const int MaxCardsInStack = 212; // Frontier: four 53-card decks. + + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly EntityManager _entityManager = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedStorageSystem _storage = default!; + [Dependency] private readonly CardHandSystem _cardHandSystem = default!; // Frontier + [Dependency] private readonly SharedHandsSystem _hands = default!; + + /// + public override void Initialize() + { + // Pretty much a rip-off of the BinSystem + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnEntRemoved); + SubscribeLocalEvent>(OnAlternativeVerb); + SubscribeLocalEvent>(OnActivationVerb); + SubscribeLocalEvent(OnActivate); + SubscribeLocalEvent(OnExamine); + SubscribeLocalEvent(OnInteractUsing); + } + + public bool TryRemoveCard(EntityUid uid, EntityUid card, CardStackComponent? comp = null) + { + if (!Resolve(uid, ref comp)) + return false; + + if (!TryComp(card, out CardComponent? _)) + return false; + + _container.Remove(card, comp.ItemContainer); + comp.Cards.Remove(card); + + // If there is a final card left over, remove that card from the container and delete the stack alltogether + if (comp.Cards.Count == 1) + { + + _container.Remove(comp.Cards.First(), comp.ItemContainer); + comp.Cards.Clear(); + } + + Dirty(uid, comp); + + RaiseLocalEvent(uid, new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Removed)); + RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Removed)); + // Prevents prediction ruining things + if (_net.IsServer && comp.Cards.Count <= 0) + { + _entityManager.DeleteEntity(uid); + } + return true; + } + + public bool TryInsertCard(EntityUid uid, EntityUid card, CardStackComponent? comp = null) + { + if (!Resolve(uid, ref comp)) + return false; + + if (!TryComp(card, out CardComponent? _)) + return false; + + if (comp.Cards.Count >= MaxCardsInStack) + return false; + + _container.Insert(card, comp.ItemContainer); + comp.Cards.Add(card); + + Dirty(uid, comp); + RaiseLocalEvent(uid, new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Added)); + RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Added)); + return true; + } + + public bool ShuffleCards(EntityUid uid, CardStackComponent? comp = null) + { + if (!Resolve(uid, ref comp)) + return false; + + _random.Shuffle(comp.Cards); + + Dirty(uid, comp); + RaiseLocalEvent(uid, new CardStackReorderedEvent(GetNetEntity(uid))); + RaiseNetworkEvent(new CardStackReorderedEvent(GetNetEntity(uid))); + return true; + } + + /// + /// Server-Side only method to flip all cards within a stack. This starts CardFlipUpdatedEvent and CardStackFlippedEvent event + /// + /// + /// + /// If null, all cards will just invert direction, if it contains a value, then all cards will receive that value + /// + public bool FlipAllCards(EntityUid uid, CardStackComponent? comp = null, bool? isFlipped = null) + { + if (_net.IsClient) + return false; + if (!Resolve(uid, ref comp)) + return false; + foreach (var card in comp.Cards) + { + if (!TryComp(card, out CardComponent? cardComponent)) + continue; + + cardComponent.Flipped = isFlipped ?? !cardComponent.Flipped; + + Dirty(card, cardComponent); + RaiseNetworkEvent(new CardFlipUpdatedEvent(GetNetEntity(card))); + } + + RaiseNetworkEvent(new CardStackFlippedEvent(GetNetEntity(uid))); + return true; + } + + public bool TryJoinStacks(EntityUid firstStack, EntityUid secondStack, CardStackComponent? firstComp = null, CardStackComponent? secondComp = null, EntityUid? soundUser = null) + { + if (firstStack == secondStack) + return false; + if (!Resolve(firstStack, ref firstComp) || !Resolve(secondStack, ref secondComp)) + return false; + + bool changed = false; + var cardList = secondComp.Cards.ToList(); + EntityUid? firstCard = secondComp.Cards.Count > 0 ? cardList[0] : null; // Cache the first card transferred for animations (better to have something moving than nothing, and we destroy the other stack) + + foreach (var card in cardList) + { + if (firstComp.Cards.Count >= MaxCardsInStack) + break; + _container.Remove(card, secondComp.ItemContainer); + secondComp.Cards.Remove(card); + firstComp.Cards.Add(card); + _container.Insert(card, firstComp.ItemContainer); + changed = true; + } + if (changed) + { + if (soundUser != null) + { + _audio.PlayPredicted(firstComp.PlaceDownSound, Transform(firstStack).Coordinates, soundUser.Value); + if(_net.IsServer) + _storage.PlayPickupAnimation(firstCard!.Value, Transform(secondStack).Coordinates, Transform(firstStack).Coordinates, 0); + } + + if (_net.IsClient) + return changed; + + Dirty(firstStack, firstComp); + if (secondComp.Cards.Count <= 0) + { + _entityManager.DeleteEntity(secondStack); + } + else + { + Dirty(secondStack, secondComp); + RaiseLocalEvent(secondStack, new CardStackQuantityChangeEvent(GetNetEntity(secondStack), null, StackQuantityChangeType.Split)); + RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(secondStack), null, StackQuantityChangeType.Split)); + } + RaiseLocalEvent(firstStack, new CardStackQuantityChangeEvent(GetNetEntity(firstStack), null, StackQuantityChangeType.Joined)); + RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(firstStack), null, StackQuantityChangeType.Joined)); + } + + return changed; + } + + #region EventHandling + + private void OnStartup(EntityUid uid, CardStackComponent component, ComponentStartup args) + { + component.ItemContainer = _container.EnsureContainer(uid, ContainerId); + } + + private void OnMapInit(EntityUid uid, CardStackComponent comp, MapInitEvent args) + { + if (_net.IsClient) + return; + + var coordinates = Transform(uid).Coordinates; + var spawnedEntities = new List(); + foreach (var id in comp.InitialContent) + { + var ent = Spawn(id, coordinates); + spawnedEntities.Add(ent); + if (TryInsertCard(uid, ent, comp)) + continue; + Log.Error($"Entity {ToPrettyString(ent)} was unable to be initialized into stack {ToPrettyString(uid)}"); + foreach (var spawned in spawnedEntities) + _entityManager.DeleteEntity(spawned); + return; + } + RaiseNetworkEvent(new CardStackInitiatedEvent(GetNetEntity(uid))); + } + + // It seems the cards don't get removed if this event is not subscribed... strange right? thanks again bin system + private void OnEntRemoved(EntityUid uid, CardStackComponent component, EntRemovedFromContainerMessage args) + { + component.Cards.Remove(args.Entity); + } + + private void OnExamine(EntityUid uid, CardStackComponent component, ExaminedEvent args) + { + args.PushText(Loc.GetString("card-stack-examine", ("count", component.Cards.Count))); + } + + private void OnAlternativeVerb(EntityUid uid, CardStackComponent component, GetVerbsEvent args) + { + if (args.Using == args.Target) + return; + if (!TryComp(args.Target, out CardStackComponent? targetStack)) + return; + + if (TryComp(args.Using, out CardStackComponent? usingStack)) + { + args.Verbs.Add(new AlternativeVerb() + { + Text = Loc.GetString("card-verb-join"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")), + Priority = 8, + Act = () => JoinStacks(args.User, args.Target, targetStack, (EntityUid)args.Using, usingStack) + }); + } + else if (TryComp(args.Using, out CardComponent? usingCard)) // Frontier: single card interaction + { + args.Verbs.Add(new AlternativeVerb() + { + Text = Loc.GetString("card-verb-join"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")), + Priority = 8, + Act = () => InsertCardOnStack(args.User, args.Target, targetStack, (EntityUid)args.Using) + }); + } // End Frontier: single card interaction + } + + // Frontier: hacky misuse of the activation verb, but allows us a separate way to draw cards without needing additional buttons and event fiddling + private void OnActivationVerb(EntityUid uid, CardStackComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + + if (args.Using == args.Target) + return; + + if (args.Using == null) + { + args.Verbs.Add(new ActivationVerb() + { + Act = () => OnInteractHand(args.Target, component, args.User), + Text = Loc.GetString("cards-verb-draw"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")), + Priority = 16 + }); + } + else if (TryComp(args.Using, out var cardStack)) + { + args.Verbs.Add(new ActivationVerb() + { + Act = () => TransferNLastCardFromStacks(args.User, 1, args.Target, component, args.Using.Value, cardStack), + Text = Loc.GetString("cards-verb-draw"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")), + Priority = 16 + }); + } + else if (TryComp(args.Using, out var card)) + { + args.Verbs.Add(new ActivationVerb() + { + Act = () => _cardHandSystem.TrySetupHandFromStack(args.User, args.Using.Value, card, args.Target, component, true), + Text = Loc.GetString("cards-verb-draw"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")), + Priority = 16 + }); + } + } + // End Frontier + + private void JoinStacks(EntityUid user, EntityUid first, CardStackComponent firstComp, EntityUid second, CardStackComponent secondComp) + { + TryJoinStacks(first, second, firstComp, secondComp, user); + } + + public void InsertCardOnStack(EntityUid user, EntityUid stack, CardStackComponent stackComponent, EntityUid card) + { + if (!TryInsertCard(stack, card)) + return; + + _audio.PlayPredicted(stackComponent.PlaceDownSound, Transform(stack).Coordinates, user); + if (_net.IsClient) + return; + _storage.PlayPickupAnimation(card, Transform(user).Coordinates, Transform(stack).Coordinates, 0); + } + + /// + /// This takes the last card from the first stack and inserts it into the second stack + /// + public void TransferNLastCardFromStacks(EntityUid user, int n, EntityUid first, CardStackComponent firstComp, EntityUid second, CardStackComponent secondComp) + { + if (firstComp.Cards.Count <= 0) + return; + + var cards = firstComp.Cards.TakeLast(n).ToList(); // Frontier: make a copy we don't munge during iteration + + var firstCard = cards.First(); // Cache first card for animation - enumerable changes in foreach + + bool changed = false; + foreach (var card in cards) + { + if (secondComp.Cards.Count >= MaxCardsInStack) + break; + _container.Remove(card, firstComp.ItemContainer); + firstComp.Cards.Remove(card); + secondComp.Cards.Add(card); + _container.Insert(card, secondComp.ItemContainer); + changed = true; + } + + if (changed) + { + _audio.PlayPredicted(firstComp.PlaceDownSound, Transform(second).Coordinates, user); + if (_net.IsClient) + return; + + _storage.PlayPickupAnimation(firstCard, Transform(first).Coordinates, Transform(second).Coordinates, 0); + + Dirty(second, secondComp); + if (firstComp.Cards.Count == 1) + { + var card = firstComp.Cards.First(); + _container.Remove(card, firstComp.ItemContainer); + if (_hands.IsHolding(user, first)) + { + _hands.TryDrop(user, first); + _hands.TryPickupAnyHand(user, card); + } + firstComp.Cards.Clear(); + } + if (firstComp.Cards.Count <= 0) + { + _entityManager.DeleteEntity(first); + } + else + { + Dirty(first, firstComp); + RaiseLocalEvent(first, new CardStackQuantityChangeEvent(GetNetEntity(first), null, StackQuantityChangeType.Removed)); + RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(first), null, StackQuantityChangeType.Removed)); + } + RaiseLocalEvent(second, new CardStackQuantityChangeEvent(GetNetEntity(second), null, StackQuantityChangeType.Added)); + RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(second), null, StackQuantityChangeType.Added)); + } + } + + private void OnInteractUsing(InteractUsingEvent args) + { + if (args.Handled) + return; + + if (args.Target == args.Used) + return; + + // This checks if the user is using an item with Stack component + if (TryComp(args.Used, out CardStackComponent? usedStack)) + { + // If the target is a card, then it will insert the card into the stack + if (TryComp(args.Target, out CardComponent? _)) + { + InsertCardOnStack(args.User, args.Used, usedStack, args.Target); + args.Handled = true; + return; + } + + // If instead, the target is a stack, then it will join the two stacks + if (!TryComp(args.Target, out CardStackComponent? targetStack)) + return; + + TransferNLastCardFromStacks(args.User, 1, args.Target, targetStack, args.Used, usedStack); + args.Handled = true; + } + + // This handles the reverse case, where the user is using a card and inserting it to a stack + else if (TryComp(args.Target, out CardStackComponent? stack)) + { + //InsertCardOnStack(args.User, args.Target, stack, args.Used); // Frontier: old version + if (TryComp(args.Used, out CardComponent? card)) + { + _cardHandSystem.TrySetupHandFromStack(args.User, args.Used, card, args.Target, stack, true); + args.Handled = true; + } + } + } + + private void OnInteractHand(EntityUid uid, CardStackComponent component, EntityUid user) + { + var pickup = _hands.IsHolding(user, uid); + if (component.Cards.Count <= 0) + return; + + if (!component.Cards.TryGetValue(component.Cards.Count - 1, out var card)) + return; + if (!component.Cards.TryGetValue(component.Cards.Count - 2, out var under)) + return; + + if (!TryRemoveCard(uid, card, component)) + return; + + _hands.TryPickupAnyHand(user, card); + if (!Exists(uid) && pickup) + _hands.TryPickupAnyHand(user, under); + + if (TryComp(uid, out var deck)) + _audio.PlayPredicted(deck.PickUpSound, Transform(card).Coordinates, user); + else + _audio.PlayPredicted(component.PickUpSound, Transform(card).Coordinates, user); + } + + private void OnActivate(EntityUid uid, CardStackComponent component, ActivateInWorldEvent args) + { + if (!args.Complex || args.Handled) + return; + + if (!TryComp(args.User, out var hands)) + { + args.Handled = true; + return; + } + + var activeItem = _hands.GetActiveItem((args.User, hands)); + + if (activeItem == null) + { + // Runs if active item is nothing + // behavior is to draw one card from this target onto active hand as a standalone card + OnInteractHand(args.Target, component, args.User); + } + else if (activeItem == args.Target) + { + // Added from a Frontier PR. Don't want to draw a card from a stack onto itself. + args.Handled = true; + return; + } + else if (TryComp(activeItem, out var cardStack)) + { + // If the active item contains a card stack, behavior is to draw from Target and place onto activeHand. + TransferNLastCardFromStacks(args.User, 1, args.Target, component, activeItem.Value, cardStack); + } + else if (TryComp(activeItem, out var card)) + { + _cardHandSystem.TrySetupHandFromStack(args.User, activeItem.Value, card, args.Target, component, true); + } + args.Handled = true; + } + + #endregion +} diff --git a/Content.Shared/_Goobstation/Clothing/Components/SealableClothingComponent.cs b/Content.Shared/_Goobstation/Clothing/Components/SealableClothingComponent.cs new file mode 100644 index 0000000000..1a550d6c8b --- /dev/null +++ b/Content.Shared/_Goobstation/Clothing/Components/SealableClothingComponent.cs @@ -0,0 +1,30 @@ +using Content.Shared._Goobstation.Clothing.Systems; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared._Goobstation.Clothing.Components; + +/// Defines the clothing entity that can be sealed by +[RegisterComponent] +[NetworkedComponent, AutoGenerateComponentState] +[Access(typeof(SharedSealableClothingSystem))] +public sealed partial class SealableClothingComponent : Component +{ + [DataField, AutoNetworkedField] + public bool IsSealed = false; + + [DataField, AutoNetworkedField] + public TimeSpan SealingTime = TimeSpan.FromSeconds(1.75); + + [DataField] + public LocId SealUpPopup = "sealable-clothing-seal-up"; + + [DataField] + public LocId SealDownPopup = "sealable-clothing-seal-down"; + + [DataField] + public SoundSpecifier SealUpSound = new SoundPathSpecifier("/Audio/Mecha/mechmove03.ogg"); + + [DataField] + public SoundSpecifier SealDownSound = new SoundPathSpecifier("/Audio/Mecha/mechmove03.ogg"); +} diff --git a/Content.Shared/_Goobstation/Clothing/Components/SealableClothingControlComponent.cs b/Content.Shared/_Goobstation/Clothing/Components/SealableClothingControlComponent.cs new file mode 100644 index 0000000000..7ddb19cfbd --- /dev/null +++ b/Content.Shared/_Goobstation/Clothing/Components/SealableClothingControlComponent.cs @@ -0,0 +1,75 @@ +using Content.Shared._Goobstation.Clothing.Systems; +using Content.Shared.Inventory; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Goobstation.Clothing.Components; + +/// Component used to designate contol of sealable clothing. It'll contain action to seal clothing +[RegisterComponent] +[NetworkedComponent, AutoGenerateComponentState] +[Access(typeof(SharedSealableClothingSystem))] +public sealed partial class SealableClothingControlComponent : Component +{ + /// Action that used to start sealing + [DataField, AutoNetworkedField] + public EntProtoId SealAction = "ActionClothingSeal"; + + [DataField, AutoNetworkedField] + public EntityUid? SealActionEntity; + + /// Slot required for control to show action + [DataField("requiredSlot"), AutoNetworkedField] + public SlotFlags RequiredControlSlot = SlotFlags.BACK; + + /// True if clothing in sealing/unsealing process, false if not + [DataField, AutoNetworkedField] + public bool IsInProcess = false; + + /// True if clothing is currently sealed and need to start unsealing process. False if opposite + [DataField, AutoNetworkedField] + public bool IsCurrentlySealed = false; + + /// Queue of attached parts that should be sealed/unsealed + [DataField, AutoNetworkedField] + public Queue ProcessQueue = new(); + + /// Uid of entity that currently wear seal control + [DataField, AutoNetworkedField] + public EntityUid? WearerEntity; + + /// Doafter time for other players to start sealing via stripping menu + [DataField, AutoNetworkedField] + public TimeSpan NonWearerSealingTime = TimeSpan.FromSeconds(4); + + #region Popups & Sounds + + [DataField] + public LocId ToggleFailedPopup = "sealable-clothing-equipment-not-toggled"; + + [DataField] + public LocId SealFailedPopup = "sealable-clothing-equipment-seal-failed"; + + [DataField] + public LocId SealedInProcessToggleFailPopup = "sealable-clothing-sealed-process-toggle-fail"; + + [DataField] + public LocId UnsealedInProcessToggleFailPopup = "sealable-clothing-unsealed-process-toggle-fail"; + + [DataField] + public LocId CurrentlySealedToggleFailPopup = "sealable-clothing-sealed-toggle-fail"; + + [DataField] + public LocId VerbText = "sealable-clothing-seal-verb"; + + [DataField] + public SoundSpecifier FailSound = new SoundPathSpecifier("/Audio/Machines/scanbuzz.ogg"); + + [DataField] + public SoundSpecifier SealCompleteSound = new SoundPathSpecifier("/Audio/_Goobstation/Mecha/nominal.ogg"); + + [DataField] + public SoundSpecifier UnsealCompleteSound = new SoundPathSpecifier("/Audio/_Goobstation/Machines/computer_end.ogg"); + #endregion +} diff --git a/Content.Shared/_Goobstation/Clothing/Components/SealableClothingRequiresPowerComponent.cs b/Content.Shared/_Goobstation/Clothing/Components/SealableClothingRequiresPowerComponent.cs new file mode 100644 index 0000000000..784adb9fd8 --- /dev/null +++ b/Content.Shared/_Goobstation/Clothing/Components/SealableClothingRequiresPowerComponent.cs @@ -0,0 +1,30 @@ +using Content.Shared.Alert; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Goobstation.Clothing.Components; + +[RegisterComponent] +[NetworkedComponent, AutoGenerateComponentState] +public sealed partial class SealableClothingRequiresPowerComponent : Component +{ + [DataField] + public LocId NotPoweredPopup = "sealable-clothing-not-powered"; + + [DataField] + public LocId OpenSealedPanelFailPopup = "sealable-clothing-open-sealed-panel-fail"; + + [DataField] + public LocId ClosePanelFirstPopup = "sealable-clothing-close-panel-first"; + + /// Movement speed when without power + [DataField] + public float MovementSpeedPenalty = 0.3f; + + [DataField, AutoNetworkedField] + public bool IsPowered = false; + + /// Alert to show for the suit's power + [DataField] + public ProtoId SuitPowerAlert = "ModsuitPower"; +} diff --git a/Content.Shared/_Goobstation/Clothing/SealableClothingVisuals.cs b/Content.Shared/_Goobstation/Clothing/SealableClothingVisuals.cs new file mode 100644 index 0000000000..ea4897b6ef --- /dev/null +++ b/Content.Shared/_Goobstation/Clothing/SealableClothingVisuals.cs @@ -0,0 +1,9 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared._Goobstation.Clothing; + +[Serializable, NetSerializable] +public enum SealableClothingVisuals : byte +{ + Sealed +} diff --git a/Content.Shared/_Goobstation/Clothing/Systems/SharedPoweredSealableClothingSystem.cs b/Content.Shared/_Goobstation/Clothing/Systems/SharedPoweredSealableClothingSystem.cs new file mode 100644 index 0000000000..5902688e1b --- /dev/null +++ b/Content.Shared/_Goobstation/Clothing/Systems/SharedPoweredSealableClothingSystem.cs @@ -0,0 +1,73 @@ +using Content.Shared._Goobstation.Clothing.Components; +using Content.Shared.Inventory; +using Content.Shared.Popups; +using Content.Shared.PowerCell; +using Content.Shared.Wires; + +namespace Content.Shared._Goobstation.Clothing.Systems; + +/// Used for sealable clothing that requires power to work +public abstract class SharedPoweredSealableClothingSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedPowerCellSystem _powerCellSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnRequiresPowerMapInit); + SubscribeLocalEvent(OnRequiresPowerSealAttempt); + SubscribeLocalEvent(OnRequiresPowerChangePanelAttempt); + } + + private void OnRequiresPowerMapInit(Entity entity, ref MapInitEvent args) + { + if (!TryComp(entity, out SealableClothingControlComponent? control) || !TryComp(entity, out PowerCellDrawComponent? draw)) + return; + + draw.Enabled = control.IsCurrentlySealed; + } + + /// Checks if control have enough power to seal + private void OnRequiresPowerSealAttempt(Entity entity, ref ClothingSealAttemptEvent args) + { + if (!TryComp(entity, out SealableClothingControlComponent? controlComp) + || !TryComp(entity, out PowerCellDrawComponent? cellDrawComp) + || args.Cancelled) + return; + + // Prevents sealing if wires panel is opened + if (TryComp(entity, out WiresPanelComponent? panel) && panel.Open) + { + _popupSystem.PopupClient(Loc.GetString(entity.Comp.ClosePanelFirstPopup), entity, args.User); + args.Cancel(); + return; + } + + // Control shouldn't use charge on unsealing + if (controlComp.IsCurrentlySealed) + return; + + if (!_powerCellSystem.HasDrawCharge(entity, cellDrawComp) || !_powerCellSystem.HasActivatableCharge(entity, cellDrawComp)) + { + _popupSystem.PopupClient(Loc.GetString(entity.Comp.NotPoweredPopup), entity, args.User); + args.Cancel(); + } + } + + /// Prevents wires panel from opening if clothing is sealed + private void OnRequiresPowerChangePanelAttempt(Entity entity, ref AttemptChangePanelEvent args) + { + if (args.Cancelled || !TryComp(entity, out SealableClothingControlComponent? controlComp)) + return; + + if (controlComp.IsCurrentlySealed || controlComp.IsInProcess) + { + _popupSystem.PopupClient(Loc.GetString(entity.Comp.OpenSealedPanelFailPopup), entity, args.User); + args.Cancelled = true; + } + } +} + + diff --git a/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs b/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs new file mode 100644 index 0000000000..98d18e740d --- /dev/null +++ b/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs @@ -0,0 +1,392 @@ +using Content.Shared._Goobstation.Clothing.Components; +using Content.Shared.ActionBlocker; +using Content.Shared.Actions; +using Content.Shared.Clothing; +using Content.Shared.Clothing.EntitySystems; +using Content.Shared.DoAfter; +using Content.Shared.IdentityManagement; +using Content.Shared.Interaction; +using Content.Shared.Item.ItemToggle; +using Content.Shared.Popups; +using Content.Shared.PowerCell; +using Content.Shared.Verbs; +using Content.Shared.Wires; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Network; +using Robust.Shared.Serialization; +using Robust.Shared.Utility; + +namespace Content.Shared._Goobstation.Clothing.Systems; + +/// System used for sealable clothing +public abstract class SharedSealableClothingSystem : EntitySystem +{ + [Dependency] private readonly INetManager _netManager = default!; + [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; + [Dependency] private readonly ActionContainerSystem _actionContainerSystem = default!; + [Dependency] private readonly ComponentTogglerSystem _componentTogglerSystem = default!; + [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedPowerCellSystem _powerCellSystem = default!; + [Dependency] private readonly ToggleableClothingSystem _toggleableSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartSealingComplete); + + SubscribeLocalEvent(OnControlSealingComplete); + SubscribeLocalEvent(OnControlEquip); + SubscribeLocalEvent(OnControlUnequip); + SubscribeLocalEvent(OnControlRemove); + SubscribeLocalEvent(OnControlGetItemActions); + SubscribeLocalEvent>(OnEquipmentVerb); + SubscribeLocalEvent(OnControlMapInit); + SubscribeLocalEvent(OnSealClothingDoAfter); + SubscribeLocalEvent(OnControlSealEvent); + //SubscribeLocalEvent(OnStartSealingDoAfter); + SubscribeLocalEvent(OnToggleClothingAttempt); + } + + #region Events + + /// Toggles components on part when suit complete sealing process + private void OnPartSealingComplete(Entity part, ref ClothingPartSealCompleteEvent args) + => _componentTogglerSystem.ToggleComponent(part, args.IsSealed); + + /// Toggles components on control when suit complete sealing process + private void OnControlSealingComplete(Entity control, ref ClothingControlSealCompleteEvent args) + => _componentTogglerSystem.ToggleComponent(control, args.IsSealed); + + /// Add/Remove wearer on clothing equip/unequip + private void OnControlEquip(Entity control, ref ClothingGotEquippedEvent args) + { + control.Comp.WearerEntity = args.Wearer; + Dirty(control); + } + + private void OnControlUnequip(Entity control, ref ClothingGotUnequippedEvent args) + { + control.Comp.WearerEntity = null; + Dirty(control); + } + + /// Removes seal action on component remove + private void OnControlRemove(Entity control, ref ComponentRemove args) + { + var comp = control.Comp; + + _actionsSystem.RemoveAction(comp.SealActionEntity); + } + + /// Ensures seal action to wearer when it equip the seal control + private void OnControlGetItemActions(Entity control, ref GetItemActionsEvent args) + { + var (uid, comp) = control; + + if (comp.SealActionEntity == null || args.SlotFlags != comp.RequiredControlSlot) + return; + + args.AddAction(comp.SealActionEntity.Value); + } + + /// Adds unsealing verbs to sealing control allowing other users to unseal/seal clothing via stripping + private void OnEquipmentVerb(Entity control, ref GetVerbsEvent args) + { + var (uid, comp) = control; + var user = args.User; + + if (!args.CanComplexInteract + // Since sealing control in wearer's container system just won't show verb on args.CanAccess + || !_interactionSystem.InRangeUnobstructed(user, uid) + || comp.WearerEntity == null + || comp.WearerEntity != user + && _actionBlockerSystem.CanInteract(comp.WearerEntity.Value, null)) + return; + + var verbIcon = comp.IsCurrentlySealed ? + new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/unlock.svg.192dpi.png")) : + new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/lock.svg.192dpi.png")); + + var verb = new Verb() + { + Icon = verbIcon, + Priority = 5, + Text = Loc.GetString(comp.VerbText), + Act = () => TryStartSealToggleProcess(control, user) + }; + + /* This should make as do after to start unsealing of suit with verb, but, for some reason i couldn't figure out, it ends with doAfter enumerator change exception + * Would be nice if some can fix this, yet unsealing will be possible only on incapacitated wearers + if (args.User == comp.WearerEntity) + { + verb.Act = () => TryStartSealToggleProcess(control); + } + else + { + var doAfterArgs = new DoAfterArgs(EntityManager, args.User, comp.NonWearerSealingTime, new StartSealingProcessDoAfterEvent(), uid) + { + RequireCanInteract = true, + BreakOnMove = true, + BlockDuplicate = true + }; + verb.Act = () => _doAfterSystem.TryStartDoAfter(doAfterArgs); + }*/ + + args.Verbs.Add(verb); + } + + /// Ensure actionEntity on map init + private void OnControlMapInit(Entity control, ref MapInitEvent args) + { + var (uid, comp) = control; + _actionContainerSystem.EnsureAction(uid, ref comp.SealActionEntity, comp.SealAction); + } + + /* This should make as do after to start unsealing of suit with verb, but, for some reason i couldn't figure out, it ends with doAfter enumerator change exception + * Would be nice if some can fix this, yet unsealing will be possible only on incapacitated wearers + private void OnStartSealingDoAfter(Entity control, ref StartSealingProcessDoAfterEvent args) + { + if (args.Cancelled) + return; + + TryStartSealToggleProcess(control); + }*/ + + /// Trying to start sealing on action. It'll notify wearer if process already started + private void OnControlSealEvent(Entity control, ref SealClothingEvent args) + { + var (uid, comp) = control; + + if (!_actionBlockerSystem.CanInteract(args.Performer, null)) + return; + + if (comp.IsInProcess) + { + if (comp.IsCurrentlySealed) + { + _popupSystem.PopupClient(Loc.GetString(comp.SealedInProcessToggleFailPopup), uid, args.Performer); + _audioSystem.PlayPredicted(comp.FailSound, uid, args.Performer); + } + else + { + _popupSystem.PopupClient(Loc.GetString(comp.UnsealedInProcessToggleFailPopup), uid, args.Performer); + _audioSystem.PlayPredicted(comp.FailSound, uid, args.Performer); + } + + return; + } + + TryStartSealToggleProcess(control, args.Performer); + } + + /// Toggle seal on one part and starts same process on next part + private void OnSealClothingDoAfter(Entity control, ref SealClothingDoAfterEvent args) + { + var (uid, comp) = control; + + if (args.Cancelled || args.Handled || args.Target == null) + return; + + var part = args.Target; + + if (!TryComp(part, out var sealableComponent)) + return; + + sealableComponent.IsSealed = !comp.IsCurrentlySealed; + + Dirty(part.Value, sealableComponent); + + _audioSystem.PlayPvs(sealableComponent.SealUpSound, uid); + + _appearanceSystem.SetData(part.Value, SealableClothingVisuals.Sealed, sealableComponent.IsSealed); + + var ev = new ClothingPartSealCompleteEvent(sealableComponent.IsSealed); + RaiseLocalEvent(part.Value, ref ev); + + NextSealProcess(control); + } + + /// Prevents clothing from toggling if it's sealed or in sealing process + private void OnToggleClothingAttempt(Entity control, ref ToggleClothingAttemptEvent args) + { + var (uid, comp) = control; + + // Popup if currently sealing + if (comp.IsInProcess) + { + _popupSystem.PopupClient(Loc.GetString(comp.UnsealedInProcessToggleFailPopup), uid, args.User); + _audioSystem.PlayPredicted(comp.FailSound, uid, args.User); + args.Cancel(); + + return; + } + + // Popup if sealed, but not in process + if (comp.IsCurrentlySealed) + { + _popupSystem.PopupClient(Loc.GetString(comp.CurrentlySealedToggleFailPopup), uid, args.User); + _audioSystem.PlayPredicted(comp.FailSound, uid, args.User); + args.Cancel(); + + return; + } + + return; + } + #endregion + + /// Tries to start sealing process + public bool TryStartSealToggleProcess(Entity control, EntityUid? user = null) + { + var (uid, comp) = control; + + // Prevent sealing/unsealing if modsuit don't have wearer or already started process + if (comp.WearerEntity == null || comp.IsInProcess) + return false; + + if (user == null) + user = comp.WearerEntity; + + var ev = new ClothingSealAttemptEvent(user.Value); + RaiseLocalEvent(control, ev); + + if (ev.Cancelled) + return false; + + // All parts required to be toggled to perform sealing + if (_toggleableSystem.GetAttachedToggleStatus(uid) != ToggleableClothingAttachedStatus.AllToggled) + { + _popupSystem.PopupClient(Loc.GetString(comp.ToggleFailedPopup), uid, user); + _audioSystem.PlayPredicted(comp.FailSound, uid, user); + return false; + } + + // Trying to get all clothing to seal + var sealeableList = _toggleableSystem.GetAttachedClothingsList(uid); + if (sealeableList == null) + return false; + + foreach (var sealeable in sealeableList) + { + if (!HasComp(sealeable)) + { + _popupSystem.PopupEntity(Loc.GetString(comp.ToggleFailedPopup), uid); + _audioSystem.PlayPredicted(comp.FailSound, uid, user); + + comp.ProcessQueue.Clear(); + Dirty(control); + + return false; + } + + comp.ProcessQueue.Enqueue(EntityManager.GetNetEntity(sealeable)); + } + + comp.IsInProcess = true; + Dirty(control); + + NextSealProcess(control); + + return true; + } + + /// Recursively seals/unseals all parts of sealable clothing + private void NextSealProcess(Entity control) + { + var (uid, comp) = control; + + // Finish sealing process + if (comp.ProcessQueue.Count == 0) + { + comp.IsInProcess = false; + comp.IsCurrentlySealed = !comp.IsCurrentlySealed; + + _audioSystem.PlayEntity(comp.IsCurrentlySealed ? comp.SealCompleteSound : comp.UnsealCompleteSound, comp.WearerEntity!.Value, uid); + + var ev = new ClothingControlSealCompleteEvent(comp.IsCurrentlySealed); + RaiseLocalEvent(control, ref ev); + + _appearanceSystem.SetData(uid, SealableClothingVisuals.Sealed, comp.IsCurrentlySealed); + + Dirty(control); + return; + } + + var processingPart = EntityManager.GetEntity(comp.ProcessQueue.Dequeue()); + Dirty(control); + + if (!TryComp(processingPart, out var sealableComponent) || !comp.IsInProcess) + { + _popupSystem.PopupClient(Loc.GetString(comp.ToggleFailedPopup), uid, comp.WearerEntity); + _audioSystem.PlayPredicted(comp.FailSound, uid, comp.WearerEntity); + + NextSealProcess(control); + return; + } + + // If part is sealed when control trying to seal - it should just skip this part + if (sealableComponent.IsSealed != comp.IsCurrentlySealed) + { + NextSealProcess(control); + return; + } + + var doAfterArgs = new DoAfterArgs(EntityManager, uid, sealableComponent.SealingTime, new SealClothingDoAfterEvent(), uid, target: processingPart, showTo: comp.WearerEntity) + { + NeedHand = false, + RequireCanInteract = false, + }; + + // Checking for client here to skip first process popup spam that happens. Predicted popups don't work here because doafter starts on sealable control, not on player. + if (!_doAfterSystem.TryStartDoAfter(doAfterArgs) || _netManager.IsClient) + return; + + if (comp.IsCurrentlySealed) + + _popupSystem.PopupEntity(Loc.GetString(sealableComponent.SealDownPopup, + ("partName", Identity.Name(processingPart, EntityManager))), + uid, comp.WearerEntity!.Value); + else + _popupSystem.PopupEntity(Loc.GetString(sealableComponent.SealUpPopup, + ("partName", Identity.Name(processingPart, EntityManager))), + uid, comp.WearerEntity!.Value); + } +} + +[Serializable, NetSerializable] +public sealed partial class SealClothingDoAfterEvent : SimpleDoAfterEvent { } + +[Serializable, NetSerializable] +public sealed partial class StartSealingProcessDoAfterEvent : SimpleDoAfterEvent { } + +public sealed partial class SealClothingEvent : InstantActionEvent { } + +/// Raises on control when clothing finishes it's sealing or unsealing process +[ByRefEvent] +public readonly record struct ClothingControlSealCompleteEvent(bool IsSealed) +{ + public readonly bool IsSealed = IsSealed; +} + +/// Raises on part when clothing finishes it's sealing or unsealing process +[ByRefEvent] +public readonly record struct ClothingPartSealCompleteEvent(bool IsSealed) +{ + public readonly bool IsSealed = IsSealed; +} + +public sealed partial class ClothingSealAttemptEvent : CancellableEntityEventArgs +{ + public EntityUid User; + + public ClothingSealAttemptEvent(EntityUid user) + { + User = user; + } +} diff --git a/Content.Shared/_Goobstation/Wires/Components/ItemSlotsRequirePanelComponent.cs b/Content.Shared/_Goobstation/Wires/Components/ItemSlotsRequirePanelComponent.cs new file mode 100644 index 0000000000..dea1445bff --- /dev/null +++ b/Content.Shared/_Goobstation/Wires/Components/ItemSlotsRequirePanelComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Containers.ItemSlots; +using Robust.Shared.GameStates; + +namespace Content.Shared._Goobstation.Wires.Components; + +/// This is used for items slots that require entity to have wire panel for interactions +[RegisterComponent] +[NetworkedComponent] +public sealed partial class ItemSlotsRequirePanelComponent : Component +{ + /// For each slot: true - slot require opened panel for interaction, false - slot require closed panel for interaction + [DataField] + public Dictionary Slots = new(); +} diff --git a/Content.Shared/_Goobstation/Wires/Systems/RequirePanelSystem.cs b/Content.Shared/_Goobstation/Wires/Systems/RequirePanelSystem.cs new file mode 100644 index 0000000000..10c48f419a --- /dev/null +++ b/Content.Shared/_Goobstation/Wires/Systems/RequirePanelSystem.cs @@ -0,0 +1,37 @@ +using Content.Shared._Goobstation.Wires.Components; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Wires; + +namespace Content.Shared._Goobstation.Wires.Systems; + +public sealed partial class RequirePanelSystem : EntitySystem +{ + [Dependency] private readonly ItemSlotsSystem _itemSlots = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(ItemSlotInsertAttempt); + SubscribeLocalEvent(ItemSlotEjectAttempt); + } + + private void ItemSlotInsertAttempt(Entity entity, ref ItemSlotInsertAttemptEvent args) + => args.Cancelled = !CheckPanelStateForItemSlot(entity, args.Slot.ID); + + private void ItemSlotEjectAttempt(Entity entity, ref ItemSlotEjectAttemptEvent args) + => args.Cancelled = !CheckPanelStateForItemSlot(entity, args.Slot.ID); + + public bool CheckPanelStateForItemSlot(Entity entity, string? slot) + { + var (uid, comp) = entity; + + if (slot == null + // If slot doesn't require a wire panel - don't cancel interaction + || !comp.Slots.TryGetValue(slot, out var isRequireOpen) + || !TryComp(uid, out var wiresPanel)) + return false; + + return wiresPanel.Open == isRequireOpen; + } +} diff --git a/Directory.Packages.props b/Directory.Packages.props index eee8c65f9a..b5643d476a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -15,5 +15,6 @@ + diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/attributions.yml b/Resources/Audio/DeltaV/Voice/Chitinid/attributions.yml new file mode 100644 index 0000000000..5d6386b81d --- /dev/null +++ b/Resources/Audio/DeltaV/Voice/Chitinid/attributions.yml @@ -0,0 +1,9 @@ +- files: ["moth_scream.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/tgstation/tgstation/commit/31c19654e0f641166ecd80c672ea05362fd19488" + source: "https://github.com/tgstation/tgstation/commits/master/sound/voice/moth/scream_moth.ogg" + +- files: ["moth_laugh.ogg, moth_chitter.ogg, moth_squeak.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/BeeStation/BeeStation-Hornet/commit/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d" + source: "https://github.com/BeeStation/BeeStation-Hornet/blob/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d/sound/emotes/" diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/male_cough_1.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/male_cough_1.ogg new file mode 100644 index 0000000000..8ddc420244 Binary files /dev/null and b/Resources/Audio/DeltaV/Voice/Chitinid/male_cough_1.ogg differ diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/moth_chitter.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/moth_chitter.ogg new file mode 100644 index 0000000000..b7240a5653 Binary files /dev/null and b/Resources/Audio/DeltaV/Voice/Chitinid/moth_chitter.ogg differ diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/moth_laugh.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/moth_laugh.ogg new file mode 100644 index 0000000000..d3c2865ab6 Binary files /dev/null and b/Resources/Audio/DeltaV/Voice/Chitinid/moth_laugh.ogg differ diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/moth_scream.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/moth_scream.ogg new file mode 100644 index 0000000000..482086fb63 Binary files /dev/null and b/Resources/Audio/DeltaV/Voice/Chitinid/moth_scream.ogg differ diff --git a/Resources/Audio/DeltaV/Voice/Chitinid/moth_squeak.ogg b/Resources/Audio/DeltaV/Voice/Chitinid/moth_squeak.ogg new file mode 100644 index 0000000000..5b77d98e56 Binary files /dev/null and b/Resources/Audio/DeltaV/Voice/Chitinid/moth_squeak.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/attributions.yml b/Resources/Audio/EstacaoPirata/Effects/Cards/attributions.yml new file mode 100644 index 0000000000..879bb3bc04 --- /dev/null +++ b/Resources/Audio/EstacaoPirata/Effects/Cards/attributions.yml @@ -0,0 +1,6 @@ +- files: [ "cardFan1.ogg", "cardFan2.ogg", "cardOpenPackage1.ogg", "cardOpenPackage2.ogg", "cardPlace1.ogg", "cardPlace2.ogg", "cardPlace3.ogg", "cardPlace4.ogg", "cardShove1.ogg", "cardShove2.ogg", "cardShove3.ogg", "cardShove4.ogg", "cardShuffle.ogg", "cardSlide1.ogg", "cardSlide2.ogg", "cardSlide3.ogg", "cardSlide4.ogg", "cardSlide5.ogg", "cardSlide6.ogg", "cardSlide7.ogg", "cardSlide8.ogg", "cardTakeOutPackage1.ogg", "cardTakeOutPackage2.ogg"] + license: "CC0-1.0" + copyright: "Kenney.nl" + source: "https://opengameart.org/content/54-casino-sound-effects-cards-dice-chips" + + diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg new file mode 100644 index 0000000000..6d059e204b Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg new file mode 100644 index 0000000000..b744067444 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg new file mode 100644 index 0000000000..9d04ade0be Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg new file mode 100644 index 0000000000..32afa72eb7 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg new file mode 100644 index 0000000000..61d8b7170f Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg new file mode 100644 index 0000000000..827baa8dfd Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg new file mode 100644 index 0000000000..7f1b11ce4c Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg new file mode 100644 index 0000000000..088455b47d Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg new file mode 100644 index 0000000000..89fb73a9a5 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg new file mode 100644 index 0000000000..5b625d3012 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg new file mode 100644 index 0000000000..282d1a870e Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg new file mode 100644 index 0000000000..cc10d9248d Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg new file mode 100644 index 0000000000..6b2724fe5e Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg new file mode 100644 index 0000000000..9545e24485 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg new file mode 100644 index 0000000000..d41969c20b Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg new file mode 100644 index 0000000000..4e22952217 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg new file mode 100644 index 0000000000..47dd7e9032 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg new file mode 100644 index 0000000000..281d89da0a Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg new file mode 100644 index 0000000000..b11d1b9092 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg new file mode 100644 index 0000000000..700e64b893 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg new file mode 100644 index 0000000000..8aff3ea887 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg new file mode 100644 index 0000000000..cc90ece158 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg differ diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg new file mode 100644 index 0000000000..95755e6614 Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg differ diff --git a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg new file mode 100644 index 0000000000..b4b710b38c Binary files /dev/null and b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg differ diff --git a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg deleted file mode 100644 index 9a2b994ead..0000000000 Binary files a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg and /dev/null differ diff --git a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow2.ogg b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow2.ogg deleted file mode 100644 index 000f397ee8..0000000000 Binary files a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow2.ogg and /dev/null differ diff --git a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse.ogg b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse.ogg new file mode 100644 index 0000000000..ef1d1298c2 Binary files /dev/null and b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse.ogg differ diff --git a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse1.ogg b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse1.ogg deleted file mode 100644 index c1cd4c6c29..0000000000 Binary files a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse1.ogg and /dev/null differ diff --git a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse2.ogg b/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse2.ogg deleted file mode 100644 index 5bd44cfb6c..0000000000 Binary files a/Resources/Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse2.ogg and /dev/null differ diff --git a/Resources/Audio/Machines/attributions.yml b/Resources/Audio/Machines/attributions.yml index cd257ada22..be04c55c64 100644 --- a/Resources/Audio/Machines/attributions.yml +++ b/Resources/Audio/Machines/attributions.yml @@ -166,7 +166,7 @@ license: "CC0-1.0" copyright: "by Ko4erga" source: "https://github.com/space-wizards/space-station-14/pull/30431" - + - files: ["double_ring.ogg"] license: "CC0-1.0" copyright: "Created by fspera, converted to OGG and modified by chromiumboy." @@ -180,3 +180,8 @@ license: "CC0-1.0" copyright: "by ScarKy0" source: "https://github.com/space-wizards/space-station-14/pull/32012" + +- files: ["scanbuzz.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from TG station" + source: "https://github.com/tgstation/tgstation/pull/39986" diff --git a/Resources/Audio/Machines/scanbuzz.ogg b/Resources/Audio/Machines/scanbuzz.ogg new file mode 100644 index 0000000000..d3422bc8f4 Binary files /dev/null and b/Resources/Audio/Machines/scanbuzz.ogg differ diff --git a/Resources/Audio/Voice/Plasmaman/attributions.yml b/Resources/Audio/Voice/Plasmaman/attributions.yml new file mode 100644 index 0000000000..c2baecc2b6 --- /dev/null +++ b/Resources/Audio/Voice/Plasmaman/attributions.yml @@ -0,0 +1,7 @@ +- files: + - plasmaman_scream_1.ogg + - plasmaman_scream_2.ogg + - plasmaman_scream_3.ogg + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/tgstation/tgstation/commit/436ba869ebcd0b60b63973fb7562f447ee655205 and volume reduced by Skubman" + source: "https://github.com/tgstation/tgstation" diff --git a/Resources/Audio/Voice/Plasmaman/plasmaman_scream_1.ogg b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_1.ogg new file mode 100644 index 0000000000..f068794506 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 0000000000..e61619c027 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 0000000000..ac8b8ec21f Binary files /dev/null and b/Resources/Audio/Voice/Plasmaman/plasmaman_scream_3.ogg differ diff --git a/Resources/Audio/Weapons/attributions.yml b/Resources/Audio/Weapons/attributions.yml index 310b01b728..11e8199c87 100644 --- a/Resources/Audio/Weapons/attributions.yml +++ b/Resources/Audio/Weapons/attributions.yml @@ -82,8 +82,13 @@ license: "CC0-1.0" copyright: "Taken from ScreamStudio on freesound.org" source: "https://freesound.org/people/ScreamStudio/sounds/392617/" - + - files: ["pop.ogg"] license: "CC0-1.0" copyright: "Taken from 0ne_one111yt on freesound.org" source: "https://freesound.org/people/0ne_one111yt/sounds/478213/" + +- files: ["firepunch1.ogg", "firepunch2.ogg", "firepunch3.ogg", "firepunch4.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from Citadel Station 13. Remixed to mono where it was stereo by metalgearsloth then added punch sound effects by Skubman" + source: "https://github.com/Citadel-Station-13/Citadel-Station-13-RP/tree/cc701aedb633d83eae8339a8b3712ad8ad99cca0/sound" diff --git a/Resources/Audio/Weapons/firepunch1.ogg b/Resources/Audio/Weapons/firepunch1.ogg new file mode 100644 index 0000000000..6f13ff9cef Binary files /dev/null and b/Resources/Audio/Weapons/firepunch1.ogg differ diff --git a/Resources/Audio/Weapons/firepunch2.ogg b/Resources/Audio/Weapons/firepunch2.ogg new file mode 100644 index 0000000000..fe4e7ef41b Binary files /dev/null and b/Resources/Audio/Weapons/firepunch2.ogg differ diff --git a/Resources/Audio/Weapons/firepunch3.ogg b/Resources/Audio/Weapons/firepunch3.ogg new file mode 100644 index 0000000000..2503a66583 Binary files /dev/null and b/Resources/Audio/Weapons/firepunch3.ogg differ diff --git a/Resources/Audio/Weapons/firepunch4.ogg b/Resources/Audio/Weapons/firepunch4.ogg new file mode 100644 index 0000000000..c656d6c8ca Binary files /dev/null and b/Resources/Audio/Weapons/firepunch4.ogg differ diff --git a/Resources/Audio/_DV/Voice/Chitinid/attributions.yml b/Resources/Audio/_DV/Voice/Chitinid/attributions.yml new file mode 100644 index 0000000000..5d6386b81d --- /dev/null +++ b/Resources/Audio/_DV/Voice/Chitinid/attributions.yml @@ -0,0 +1,9 @@ +- files: ["moth_scream.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/tgstation/tgstation/commit/31c19654e0f641166ecd80c672ea05362fd19488" + source: "https://github.com/tgstation/tgstation/commits/master/sound/voice/moth/scream_moth.ogg" + +- files: ["moth_laugh.ogg, moth_chitter.ogg, moth_squeak.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from https://github.com/BeeStation/BeeStation-Hornet/commit/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d" + source: "https://github.com/BeeStation/BeeStation-Hornet/blob/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d/sound/emotes/" diff --git a/Resources/Audio/_DV/Voice/Chitinid/male_cough_1.ogg b/Resources/Audio/_DV/Voice/Chitinid/male_cough_1.ogg new file mode 100644 index 0000000000..8ddc420244 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Chitinid/male_cough_1.ogg differ diff --git a/Resources/Audio/_DV/Voice/Chitinid/moth_chitter.ogg b/Resources/Audio/_DV/Voice/Chitinid/moth_chitter.ogg new file mode 100644 index 0000000000..b7240a5653 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Chitinid/moth_chitter.ogg differ diff --git a/Resources/Audio/_DV/Voice/Chitinid/moth_laugh.ogg b/Resources/Audio/_DV/Voice/Chitinid/moth_laugh.ogg new file mode 100644 index 0000000000..d3c2865ab6 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Chitinid/moth_laugh.ogg differ diff --git a/Resources/Audio/_DV/Voice/Chitinid/moth_scream.ogg b/Resources/Audio/_DV/Voice/Chitinid/moth_scream.ogg new file mode 100644 index 0000000000..482086fb63 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Chitinid/moth_scream.ogg differ diff --git a/Resources/Audio/_DV/Voice/Chitinid/moth_squeak.ogg b/Resources/Audio/_DV/Voice/Chitinid/moth_squeak.ogg new file mode 100644 index 0000000000..5b77d98e56 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Chitinid/moth_squeak.ogg differ diff --git a/Resources/Audio/_Goobstation/Machines/attributions.yml b/Resources/Audio/_Goobstation/Machines/attributions.yml new file mode 100644 index 0000000000..7623347dab --- /dev/null +++ b/Resources/Audio/_Goobstation/Machines/attributions.yml @@ -0,0 +1,4 @@ +- files: ["computer_end.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "Taken from TG station." + source: "https://github.com/tgstation/tgstation/pull/32336" diff --git a/Resources/Audio/_Goobstation/Machines/computer_end.ogg b/Resources/Audio/_Goobstation/Machines/computer_end.ogg new file mode 100644 index 0000000000..9294405573 Binary files /dev/null and b/Resources/Audio/_Goobstation/Machines/computer_end.ogg differ diff --git a/Resources/Audio/_Goobstation/Mecha/attributions.yml b/Resources/Audio/_Goobstation/Mecha/attributions.yml new file mode 100644 index 0000000000..0caf2522fc --- /dev/null +++ b/Resources/Audio/_Goobstation/Mecha/attributions.yml @@ -0,0 +1,4 @@ +- files: ["nominal.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "Taken from TG station." + source: "https://github.com/tgstation/tgstation/commit/3517810d119fcb5eeb9d477c87cda3eb3cd2048c" diff --git a/Resources/Audio/_Goobstation/Mecha/nominal.ogg b/Resources/Audio/_Goobstation/Mecha/nominal.ogg new file mode 100644 index 0000000000..b89bd39616 Binary files /dev/null and b/Resources/Audio/_Goobstation/Mecha/nominal.ogg differ diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 0e8e285d37..4c32e789ec 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10644,3 +10644,163 @@ Entries: id: 6753 time: '2025-01-23T01:11:05.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1615 +- author: VMSolidus + changes: + - type: Add + message: >- + (For Developers): Added the MathNet.Numerics library. It contains a + great number of scientific and engineering math related functions. For + more information, its documentation can be found here, + https://numerics.mathdotnet.com/api/MathNet.Numerics/index.htm + id: 6754 + time: '2025-01-23T03:45:53.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1641 +- author: BlueHNT + changes: + - type: Tweak + message: Tweaked lamia bite + id: 6755 + time: '2025-01-24T22:29:08.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1645 +- author: CerberusWolfie + changes: + - type: Tweak + message: >- + Logistics Officer now has 30 hours instead of 40 hours of time + requirement overall. + - type: Tweak + message: >- + Chief Engineer and CMO have 25 hours instead of 30 hours of time + requirement. + - type: Tweak + message: Mystagogue now has 5 hours of time requirement as Mantis and Cataloguer. + id: 6756 + time: '2025-01-25T00:53:51.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1649 +- author: Timfa + changes: + - type: Add + message: Add Batonbot + - type: Add + message: Add Disablerbot + id: 6757 + time: '2025-01-25T16:58:46.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1631 +- author: Erisfiregamer1 + changes: + - type: Add + message: Modsuits have been ported from Goobstation! + id: 6758 + time: '2025-01-25T17:17:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1640 +- author: sleepyyapril + changes: + - type: Add + message: >- + A new ChemMaster experience has been granted to the people of Einstein + Engines. Includes a pill buffer! + id: 6759 + time: '2025-01-25T17:29:37.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1650 +- author: VMSolidus + changes: + - type: Add + message: >- + Engineering Hardsuits, Maxim Hardsuit, and Cybersun's Elite Tacsuit now + all make the wearer immune to atmos fires. Have fun walking directly + into the supermatter engine. Play out your heroic engineer fantasy by + dragging the supermatter crystal to space in order to save the station. + id: 6760 + time: '2025-01-25T17:31:35.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1445 +- author: RadsammyT + changes: + - type: Add + message: >- + Playing Cards. You may get one in the Games Vendor or as an item in your + loadout. + id: 6761 + time: '2025-01-25T18:34:15.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1451 +- author: ElusiveCoin + changes: + - type: Add + message: Added a new species, the Chitinid. + id: 6762 + time: '2025-01-25T20:12:52.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1644 +- author: sleepyyapril + changes: + - type: Tweak + message: >- + Kill random person objective has been replaced by teaching them a + lesson, removing the need to RR a random person. + id: 6763 + time: '2025-01-25T20:38:25.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1654 +- author: VMSolidus + changes: + - type: Fix + message: Fixed melee weapons having the wrong attack speed calculations(again) + id: 6764 + time: '2025-01-25T20:39:09.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1653 +- author: Skubman + changes: + - type: Add + message: >- + The Plasmaman species has arrived! They need to breathe plasma to live, + and a special jumpsuit to prevent oxygen from igniting them. In + exchange, they deal formidable unarmed Heat damage, are never hungry nor + thirsty, and are immune to cold and radiation damage. Read more about + Plasmamen in their Guidebook entry. + - type: Tweak + message: >- + Internals are no longer toggled off if you take your helmet off but + still have a gas mask on and vice versa. + - type: Tweak + message: >- + Paradox Anomalies will now spawn with the original person's Loadout + items. + - type: Fix + message: >- + Fixed prisoners not being able to have custom Loadout names and + descriptions, and heirlooms if they didn't have a backpack when joining. + id: 6765 + time: '2025-01-25T21:13:19.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1291 +- author: SX-7 + changes: + - type: Add + message: Added Tajara and related content + id: 6766 + time: '2025-01-26T00:53:00.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1647 +- author: Skubman + changes: + - type: Add + message: >- + New hairstyles have arrived, including all Goob LRP-original hairstyles, + Pulato, new facial hair and more! + - type: Add + message: 'Added epic IPC wings and Plasmaman wings. ' + - type: Add + message: Added the Iron Jaw face marking. + - type: Tweak + message: Increased the maximum number of Reptilian chest markings to 3. + - type: Fix + message: >- + Harpy, Arachne and Lamia can no longer pick the "No Ears" marking which + had no effect as they had no default ear markings. + id: 6767 + time: '2025-01-26T01:14:42.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1658 +- author: VMSolidus + changes: + - type: Remove + message: >- + Removed almost all of the EE DEFAULT playtime requirements. If you're a + downstream, set these yourself. + id: 6768 + time: '2025-01-26T02:13:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1660 diff --git a/Resources/Changelog/Den.yml b/Resources/Changelog/Den.yml index a428d0d596..1832dfb84f 100644 --- a/Resources/Changelog/Den.yml +++ b/Resources/Changelog/Den.yml @@ -1518,3 +1518,55 @@ Entries: id: 126 time: '2025-01-25T06:37:38.0000000+00:00' url: https://github.com/TheDenSS14/TheDen/pull/197 +- author: Rosycup + changes: + - type: Add + message: Added the Jenn Plushie for everyone to have! + id: 127 + time: '2025-01-26T01:24:51.0000000+00:00' + url: https://github.com/TheDenSS14/TheDen/pull/199 +- author: EE Contributors + changes: + - type: Add + message: Added Tajara and related content + - type: Add + message: Add Batonbot + - type: Add + message: Add Disablerbot + - type: Add + message: Modsuits have been ported from Goobstation! + - type: Add + message: A new ChemMaster experience has been granted to the people of + - type: Add + message: Added a new species, the Chitinid. + - type: Tweak + message: Kill random person objective has been replaced by teaching them + - type: Add + message: Added playing cards. You may get one in the Games Vendor or as an item + - type: Add + message: Engineering Hardsuits, Maxim Hardsuit, and Cybersun's Elite + - type: Add + message: The Plasmaman species has arrived! They need to breathe plasma to + - type: Tweak + message: Internals are no longer toggled off if you take your helmet off + - type: Tweak + message: Paradox Anomalies will now spawn with the original person's + - type: Fix + message: Fixed prisoners not being able to have custom Loadout names and + - type: Add + message: New hairstyles have arrived, including all Goob LRP-original + - type: Add + message: 'Added epic IPC wings and Plasmaman wings. ' + - type: Add + message: Added the Iron Jaw face marking. + - type: Tweak + message: Increased the maximum number of Reptilian chest markings to 3. + - type: Tweak + message: Vox is now playable again. + - type: Fix + message: Harpy, Arachne and Lamia can no longer pick the "No Ears" marking + - type: Add + message: Ported Goob mechs + id: 128 + time: '2025-01-26T04:06:46.0000000+00:00' + url: https://github.com/TheDenSS14/TheDen/pull/200 diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index 264019de61..07acfebfdb 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0x6273, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, AeraAuling, Aerocrux, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, Aidenkrz, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, ALMv1, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, armoks, Arteben, ArthurMousatov, artur, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, aspiringlich, astriloqua, avghdev, azzy, AzzyIsNotHere, BananaFlambe, BasedPugilist, BasedUser, beck-thompson, benev0, BGare, bhespiritu, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, blazlovich, bloodrizer, Bloody2372, blueDev2, BlueHNT, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, BombasterDS, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, byondfuckery, c0rigin, c4llv07e, CaasGit, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, CatTheSystem, Centronias, CerberusWolfie, chairbender, Charlese2, chavonadelal, Cheackraze, cheesePizza2, Chief-Engineer, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, CilliePaint, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, Cohnway, cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, Cyberboss, cynical24, d34d10cc, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DakoDemon, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, degradka, Delete69, deltanedas, DeltaV-Bot, DerbyX, derek, dersheppard, dexlerxd, dffdff2423, dge21, digitalic, DinoWattz, DJB1gYAPPA, DjfjdfofdjfjD, dmitri, DocNITE, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, DoubleRiceEddiedd, DoutorWhite, drakewill-CRL, Drayff, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Eagle0600, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Emisse, emmafornash, EmoGarbage404, Endecc, eoineoineoin, ErhardSteinhauer, eris, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, eugene, Evgencheg, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, Fansana, Feluk6174, fenndragon, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, FirinMaLazors, Fishfish458, fl-oz, Flareguy, Floof-Station-Bot, FluffiestFloof, FluffMe, FluidRock, flybik, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxcumberland, foxfoxthepirate, foxhorn, FoxxoTrystan, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FungiFellow, GalacticChimp, gamer3107, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, ghost581x, Git-Nivrak, gituhabu, GlassEclipse, gluesniffler, GNF54, goet, Golinth, GoodWheatley, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, h3half, Haltell, Hanzdegloker, Hardly3D, harikattar, Hebi, Henry, HerCoyote23, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, i-justuser-i, iacore, IamVelcroboy, icekot8, icesickleone, Ichaie, iczero, iglov, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, ItsMeThom, Itzbenz, Jackal298, Jackrost, jacksonzck, Jackw2As, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, JerryImMouse, jerryimmouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, JIPDawg, jjtParadox, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, Jrpl, juliangiebel, juniwoofs, justart1m, JustCone14, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, komunre, KonstantinAngelov, koteq, Krunklehorn, Kukutis96513, Kupie, kxvvv, Kyoth25f, KyuPolaris, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonsfriedrich, LetterN, lettern, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, lizelive, lleftTheDragon, localcc, Lomcastar, lonoferars, LordCarve, LordEclipse, LovelyLophi, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, Lumminal, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, MehimoNemo, MeltedPixel, Memeji, MemeProof, MendaxxDev, Menshin, Mephisto72, Mervill, metalgearsloth, mhamsterr, michaelcu, micheel665, Mike32oz, MilenVolf, milon, MilonPL, Minemoder5000, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, MjrLandWhale, MLGTASTICa, Mnemotechnician, moderatelyaware, mokiros, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, musicmanvr, MWKane, Myakot, Myctai, Myzumi, N3X15, nails-n-tape, Nairodian, Naive817, namespace-Memory, Nannek, NeLepus, neuPanda, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, nok-ko, NonchalantNoob, NoobyLegion, not-gavnaed, notafet, notquitehadouken, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, och-och, OCOtheOmega, OctoRocket, OldDanceJacket, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Phantom-Lily, PHCodes, Phill101, phunnyguy, pigeonpeas, PilgrimViis, Pill-U, Piras314, Pireax, pissdemon, PixelTheKermit, PJB3005, Plasmaguy, PlasmaRaptor, plinyvic, Plykiya, pofitlo, pointer-to-null, poklj, PolterTzi, PoorMansDreams, potato1234x, PotentiallyTom, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, RadsammyT, Rainbeon, Rainfey, Raitononai, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redfire1331, RedFoxIV, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, Rinkashikachi, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, Rosycup, router, RumiTiger, S1ss3l, Saakra, saga3152, Salex08, sam, Samsterious, SaphireLattice, SapphicOverload, sapphirescript, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, scrato, Scribbles0, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, Shiro69420, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, sleepyyapril, Slyfox333, snebl, sniperchance, Snowni, snowsignal, SnowyFoxxo, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, Spatison, SpeltIncorrectyl, spess-empyrean, SphiraI, SplinterGP, spoogemonster, sporekto, squirrelanna, Squishy77, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, suraru, Sushiburger, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, takemysoult, TaralGit, Taran, Tayrtahn, tday93, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, TheCze, TheDarkElites, TheDen-Bot, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TherapyGoth, TheShuEd, thevinter, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, tin-man-tim, Tirochora, Titian3, tk-a369, tkdrg, Tmanzxd, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, tom-leys, tomasalves8, Tomeno, Tonydatguy, topy, tornado-technology, Tornado-Technology, tosatur, TotallyLemon, truepaintgit, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, twoducksonnaplane, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, unusualcrow, Uriende, UristMcDorf, user424242420, v0idRift, Vaaankas, valentfingerov, Varen, Vasilis, VasilisThePikachu, veliebm, VelonacepsCalyxEggs, veprolet, Veritius, Vermidia, vero5123, Verslebas, vigersray, violet754, Visne, VividPups, vlados1408, VMSolidus, volotomite, volundr-, Vonsant, Voomra, Vordenburg, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, XavierSomething, xkreksx, xqzpop7, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, yunii, YuriyKiss, yuriykiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, zero, ZeroDiamond, zerorulez, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, Zymem, zzylex +0x6273, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, AeraAuling, Aerocrux, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, Aidenkrz, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, ALMv1, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, aspiringlich, astriloqua, avghdev, azzy, AzzyIsNotHere, BananaFlambe, BasedPugilist, BasedUser, beck-thompson, benev0, BGare, bhespiritu, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, blazlovich, bloodrizer, Bloody2372, blueDev2, BlueHNT, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, BombasterDS, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, byondfuckery, c0rigin, c4llv07e, CaasGit, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, CatTheSystem, Centronias, CerberusWolfie, chairbender, Charlese2, chavonadelal, Cheackraze, cheesePizza2, Chief-Engineer, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, CilliePaint, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, Cohnway, cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, Cyberboss, cynical24, d34d10cc, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DakoDemon, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, degradka, Delete69, deltanedas, DeltaV-Bot, DerbyX, derek, dersheppard, dexlerxd, dffdff2423, dge21, digitalic, DinoWattz, DJB1gYAPPA, DjfjdfofdjfjD, dmitri, DocNITE, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, DoubleRiceEddiedd, DoutorWhite, drakewill-CRL, Drayff, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Eagle0600, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Emisse, emmafornash, EmoGarbage404, Endecc, eoineoineoin, ErhardSteinhauer, eris, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, eugene, Evgencheg, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, Fansana, Feluk6174, fenndragon, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, FirinMaLazors, Fishfish458, fl-oz, Flareguy, Floof-Station-Bot, FluffiestFloof, FluffMe, FluidRock, flybik, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxcumberland, foxfoxthepirate, foxhorn, FoxxoTrystan, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FungiFellow, GalacticChimp, gamer3107, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, ghost581x, Git-Nivrak, gituhabu, GlassEclipse, gluesniffler, GNF54, goet, Golinth, GoodWheatley, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, h3half, Haltell, Hanzdegloker, Hardly3D, harikattar, Hebi, Henry, HerCoyote23, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, i-justuser-i, iacore, IamVelcroboy, icekot8, icesickleone, Ichaie, iczero, iglov, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, itsmethom, Itzbenz, Jackal298, Jackrost, jacksonzck, Jackw2As, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, JerryImMouse, jerryimmouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, JIPDawg, jjtParadox, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, Jrpl, juliangiebel, juniwoofs, justart1m, JustCone14, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, komunre, KonstantinAngelov, koteq, Krunklehorn, Kukutis96513, Kupie, kxvvv, Kyoth25f, KyuPolaris, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, lizelive, lleftTheDragon, localcc, Lomcastar, lonoferars, LordCarve, LordEclipse, LovelyLophi, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, Lumminal, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, MehimoNemo, MeltedPixel, Memeji, MemeProof, MendaxxDev, Menshin, Mephisto72, Mervill, metalgearsloth, mhamsterr, michaelcu, micheel665, Mike32oz, MilenVolf, milon, MilonPL, Minemoder5000, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, MjrLandWhale, MLGTASTICa, Mnemotechnician, moderatelyaware, mokiros, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, musicmanvr, MWKane, Myakot, Myctai, Myzumi, N3X15, nails-n-tape, Nairodian, Naive817, namespace-Memory, Nannek, NeLepus, neuPanda, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, nok-ko, NonchalantNoob, NoobyLegion, not-gavnaed, notafet, notquitehadouken, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, och-och, OCOtheOmega, OctoRocket, OldDanceJacket, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Phantom-Lily, PHCodes, Phill101, phunnyguy, pigeonpeas, PilgrimViis, Pill-U, Piras314, Pireax, pissdemon, PixelTheKermit, PJB3005, Plasmaguy, PlasmaRaptor, plinyvic, Plykiya, poeMota, pofitlo, pointer-to-null, poklj, PolterTzi, PoorMansDreams, potato1234x, PotentiallyTom, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, RadsammyT, Rainbeon, Rainfey, Raitononai, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redfire1331, RedFoxIV, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, Rinkashikachi, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, Rosycup, router, RumiTiger, S1ss3l, Saakra, saga3152, Salex08, sam, Samsterious, SaphireLattice, SapphicOverload, sapphirescript, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, scrato, Scribbles0, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, Shiro69420, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, sleepyyapril, Slyfox333, snebl, sniperchance, Snowni, snowsignal, SnowyFoxxo, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, SpaceManiac, SpaceRox1244, SpaceyLady, Spanky, spartak, SpartanKadence, Spatison, SpeltIncorrectyl, spess-empyrean, sphirai, SplinterGP, spoogemonster, sporekto, squirrelanna, Squishy77, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, suraru, Sushiburger, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, takemysoult, tap, TaralGit, Taran, Tayrtahn, tday93, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, TheCze, TheDarkElites, TheDen-Bot, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TherapyGoth, TheShuEd, thevinter, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, tin-man-tim, Tirochora, Titian3, tk-a369, tkdrg, Tmanzxd, tmtmtl30, toasterpm87, token, Tollhouse, tom-leys, tomasalves8, Tomeno, Tonydatguy, topy, tornado-technology, Tornado-Technology, tosatur, TotallyLemon, truepaintgit, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, twoducksonnaplane, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, unusualcrow, Uriende, UristMcDorf, user424242420, v0idRift, Vaaankas, valentfingerov, Varen, Vasilis, VasilisThePikachu, veliebm, VelonacepsCalyxEggs, veprolet, Veritius, Vermidia, vero5123, Verslebas, vigersray, violet754, Visne, VividPups, vlados1408, VMSolidus, volotomite, volundr-, Vonsant, Voomra, Vordenburg, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, XavierSomething, xkreksx, xqzpop7, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, yunii, YuriyKiss, yuriykiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, zero, ZeroDiamond, zerorulez, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, Zymem, zzylex diff --git a/Resources/Fonts/Grenze_Gotisch/GrenzeGotisch.ttf b/Resources/Fonts/Grenze_Gotisch/GrenzeGotisch.ttf new file mode 100644 index 0000000000..3f93ccf31a Binary files /dev/null and b/Resources/Fonts/Grenze_Gotisch/GrenzeGotisch.ttf differ diff --git a/Resources/Fonts/Grenze_Gotisch/OFL.txt b/Resources/Fonts/Grenze_Gotisch/OFL.txt new file mode 100644 index 0000000000..a726762d01 --- /dev/null +++ b/Resources/Fonts/Grenze_Gotisch/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Grenze Gotisch Project Authors (https://github.com/Omnibus-Type/Grenze-Gotisch) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Resources/Fonts/LDFComicSans/LDFComicSans-Bold.ttf b/Resources/Fonts/LDFComicSans/LDFComicSans-Bold.ttf new file mode 100644 index 0000000000..5bd2ad387d 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 0000000000..4da200d154 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 0000000000..d041f18981 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 0000000000..38b3abf939 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 0000000000..f979389d95 --- /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/Fonts/Only_You.otf b/Resources/Fonts/Only_You.otf new file mode 100644 index 0000000000..cd7f3547e0 Binary files /dev/null and b/Resources/Fonts/Only_You.otf differ diff --git a/Resources/Fonts/Rubik_Dirt/OFL.txt b/Resources/Fonts/Rubik_Dirt/OFL.txt new file mode 100644 index 0000000000..1a69de2a23 --- /dev/null +++ b/Resources/Fonts/Rubik_Dirt/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Rubik Filtered Project Authors (https://https://github.com/NaN-xyz/Rubik-Filtered) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Resources/Fonts/Rubik_Dirt/RubikDirt.ttf b/Resources/Fonts/Rubik_Dirt/RubikDirt.ttf new file mode 100644 index 0000000000..d3308a7f63 Binary files /dev/null and b/Resources/Fonts/Rubik_Dirt/RubikDirt.ttf differ diff --git a/Resources/Fonts/Sriracha/OFL.txt b/Resources/Fonts/Sriracha/OFL.txt new file mode 100644 index 0000000000..ca4dd03916 --- /dev/null +++ b/Resources/Fonts/Sriracha/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2015, Cadson Demak (info@cadsondemak.com), Copyright (c) 2014, Pablo Impallari (www.impallari.com|impallari@gmail.com) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Resources/Fonts/Sriracha/Sriracha.ttf b/Resources/Fonts/Sriracha/Sriracha.ttf new file mode 100644 index 0000000000..c74f555d3f Binary files /dev/null and b/Resources/Fonts/Sriracha/Sriracha.ttf differ diff --git a/Resources/Locale/en-US/_EE/accessories/human-facial-hair.ftl b/Resources/Locale/en-US/_EE/accessories/human-facial-hair.ftl new file mode 100644 index 0000000000..8a031819bf --- /dev/null +++ b/Resources/Locale/en-US/_EE/accessories/human-facial-hair.ftl @@ -0,0 +1,10 @@ +marking-HumanFacialHairChin2 = Beard (Chinstrap 2) +marking-HumanFacialHairSuperLong = Beard (Super Long) +marking-HumanFacialHairShort = Beard (Short) +marking-HumanFacialHairThick = Beard (Thick) +marking-HumanFacialHairViking = Beard (Viking) +marking-HumanFacialHairBristle = Beard (Bristle) +marking-HumanFacialHairMoustacheWithStubble = Moustache (Stubble) +marking-HumanFacialHairThickBristle = Beard (Thick Bristle) +marking-HumanFacialHairHandlebar = Moustache (Handlebar 1) +marking-HumanFacialHairHandlebar2 = Moustache (Handlebar 2) diff --git a/Resources/Locale/en-US/_EE/accessories/human-hair.ftl b/Resources/Locale/en-US/_EE/accessories/human-hair.ftl new file mode 100644 index 0000000000..65425ef753 --- /dev/null +++ b/Resources/Locale/en-US/_EE/accessories/human-hair.ftl @@ -0,0 +1,13 @@ +marking-HumanHairArabicGathered = Arabic Gathered +marking-HumanHairClassicHair = Classic Hair +marking-HumanHairSideComb = Side Comb +marking-HumanHairLong4 = Long Four +marking-HumanHairManbun2 = Bun (Manbun 2) +marking-HumanHairPigtailTajaran = Tajaran Pigtails +marking-HumanHairShavedSide = Shaved Side +marking-HumanHairShorthair8 = Short Hair 8 +marking-HumanFembun = Fembun +marking-HumanHairAfricanPigtails = African Pigtails +marking-HumanHairAfropuffDouble = Afropuff (Double) +marking-HumanHairAfropuffLeft = Afropuff (Left) +marking-HumanHairAfropuffRight = Afropuff (Right) diff --git a/Resources/Locale/en-US/_EE/chat/chat-language.ftl b/Resources/Locale/en-US/_EE/chat/chat-language.ftl new file mode 100644 index 0000000000..b4fdb10e1f --- /dev/null +++ b/Resources/Locale/en-US/_EE/chat/chat-language.ftl @@ -0,0 +1,3 @@ +chat-language-SiikMaas-name = Siik'maas +chat-language-YaSsa-name = Ya'ssa +chat-language-Delvahii-name = Delvahii diff --git a/Resources/Locale/en-US/_EE/language/languages-sign.ftl b/Resources/Locale/en-US/_EE/language/languages-sign.ftl new file mode 100644 index 0000000000..3beb2c37f1 --- /dev/null +++ b/Resources/Locale/en-US/_EE/language/languages-sign.ftl @@ -0,0 +1,39 @@ +chat-sign-tajaran-language-message-wrap = [italic][BubbleHeader][Name]{$entityName}[/Name][/BubbleHeader] [BubbleContent]{$verb} [font="{$fontType}" size={$fontSize}][color={$color}]{$message}[/color][/font][/italic][/BubbleContent] +chat-sign-tajaran-language-whisper-wrap = [italic][BubbleHeader][Name]{$entityName}[/Name][/BubbleHeader] [BubbleContent]subtly {$verb} [font="{$fontType}" size={$fontSize}][color={$color}]{$message}[/color][/font][/italic][/BubbleContent] + +# Did I ever tell you the definition of insanity? +# Basically we have to get around the message formatter, and unless we decide to make an entire new system just for this language, we can't do anything else. +chat-speech-verb-sign-nalrasan-1 = moves their tail +chat-speech-verb-sign-nalrasan-2 = moves their tail briefly +chat-speech-verb-sign-nalrasan-3 = moves their tail several times in quick succession + +chat-speech-verb-sign-nalrasan-4 = flicks their ears +chat-speech-verb-sign-nalrasan-5 = flicks their ears a few times +chat-speech-verb-sign-nalrasan-6 = flicks their ears several times in quick succession + +chat-speech-verb-sign-nalrasan-7 = swivels their ears +chat-speech-verb-sign-nalrasan-8 = swivels their ears a few times +chat-speech-verb-sign-nalrasan-9 = swivels their ears several times in quick succession +chat-speech-verb-sign-nalrasan-10 = swivels their ears for a while + +chat-speech-verb-sign-nalrasan-11 = flicks their tail +chat-speech-verb-sign-nalrasan-12 = flicks their tail a few times +chat-speech-verb-sign-nalrasan-13 = flicks their tail several times in quick succession + +chat-speech-verb-sign-nalrasan-14 = shifts their ears and tail +chat-speech-verb-sign-nalrasan-15 = shifts their ears and tail briefly +chat-speech-verb-sign-nalrasan-16 = shifts their ears and tail for a while +chat-speech-verb-sign-nalrasan-17 = shifts their ears and tail several times in quick succession + +# There has to be a better way + +chat-speech-verb-sign-siiktajr-1 = moves their tail and purrs out +chat-speech-verb-sign-siiktajr-2 = moves their tail and mews +chat-speech-verb-sign-siiktajr-3 = flicks their ears and meows +chat-speech-verb-sign-siiktajr-4 = flicks their ears and mraows +chat-speech-verb-sign-siiktajr-5 = swivels their ears and purrs out +chat-speech-verb-sign-siiktajr-6 = swivels their ears and mews +chat-speech-verb-sign-siiktajr-7 = flicks their tail and meows +chat-speech-verb-sign-siiktajr-8 = flicks their tail and mraows +chat-speech-verb-sign-siiktajr-9 = shifts their ears and tail and purrs out +chat-speech-verb-sign-siiktajr-10 = shifts their ears and tail and mews diff --git a/Resources/Locale/en-US/_EE/language/languages.ftl b/Resources/Locale/en-US/_EE/language/languages.ftl new file mode 100644 index 0000000000..5d478b8562 --- /dev/null +++ b/Resources/Locale/en-US/_EE/language/languages.ftl @@ -0,0 +1,19 @@ +language-SiikMaas-name = Siik'maas +language-SiikMaas-description = + The ancient religious tongue of the Tajara, now the most widely spoken and taught language on Adhomai. + +language-NalRasan-name = Nal'rasan +language-NalRasan-description = + A body-language-heavy dialect created by M'sai hunters for stealth, later adopted by rebels for covert communication during the Great War. + +language-SiikTajr-name = Siik'tajr +language-SiikTajr-description = + A revolutionary language blending Siik'maas and Nal'rasan, designed for secrecy during the overthrow of the plutocracy and used heavily in the Great War. + +language-YaSsa-name = Ya'ssa +language-YaSsa-description = + A refined Siik'maas dialect once spoken by Njarir nobility, revived by the New Kingdom of Adhomai after centuries of disuse. + +language-Delvahii-name = Delvahii +language-Delvahii-description = + A Zhan-Khazan language tied to Ma'take worship, still used in religious rites and favored by farmers resisting government control. diff --git a/Resources/Locale/en-US/_EE/markings/tajaran.ftl b/Resources/Locale/en-US/_EE/markings/tajaran.ftl new file mode 100644 index 0000000000..ad787ea180 --- /dev/null +++ b/Resources/Locale/en-US/_EE/markings/tajaran.ftl @@ -0,0 +1,69 @@ +marking-TajaranTorsoBelly = Chest Fur +marking-TajaranTorsoBelly-belly = Fur +marking-TajaranTorsoCrest = Chest Fur (Crest) +marking-TajaranTorsoCrest-crest = Fur +marking-TajaranTorsoFullBelly = Chest Fur (Full) +marking-TajaranTorsoFullBelly-fullbelly = Fur +marking-TajaranHeadMuzzle = Muzzle +marking-TajaranHeadMuzzle-muzzle = Muzzle +marking-TajaranHeadMuzzleLarge = Muzzle (Large) +marking-TajaranHeadMuzzleLarge-muzzle_large = Muzzle +marking-TajaranHeadNose = Nose +marking-TajaranHeadNose-nose = Nose +marking-TajaranHeadPatches = Patches +marking-TajaranHeadPatches-patch = Patches +marking-TajaranHeadPoints = Points +marking-TajaranHeadPoints-points = Points +marking-TajaranHeadTiger = Tiger +marking-TajaranHeadTiger-tiger_face = Stripes +marking-TajaranHeadTigerAlt = Tiger (Alternative) +marking-TajaranHeadTigerAlt-tiger_head = Stripes +marking-TajaranEarsRetro = Classic Ears +marking-TajaranEarsRetro-ears = Ears +marking-TajaranEarsRetroNear = Classic Ears (Alternative) +marking-TajaranEarsRetroNear-ears_near = Ears +marking-TajaranEarsSeparate = Classic Ears (Separated) +marking-TajaranEarsSeparate-outears = Outer +marking-TajaranEarsSeparate-inears = Inner +marking-TajaranEarsSeparateNear = Classic Ears (Alternative, Separated) +marking-TajaranEarsSeparateNear-outears_near = Outer +marking-TajaranEarsSeparateNear-inears_near = Inner +marking-TajaranTailAnim = Classic Tail (Animated) +marking-TajaranTailAnim-tail_anim = Tail +marking-TajaranTailAnimRings = Classic Tail (Animated, Rings) +marking-TajaranTailAnimRings-tail_anim = Tail +marking-TajaranTailAnimRings-tail_anim_rings = Rings +marking-TajaranTailRetro = Classic Tail +marking-TajaranTailRetro-tail = Tail +marking-TajaranTailRetroRings = Classic Tail (Rings) +marking-TajaranTailRetroRings-tail = Tail +marking-TajaranTailRetroRings-tail_rings = Rings +marking-TajaranOverlayPatch = Patches +marking-TajaranOverlayPatch-patch = Patches +marking-TajaranOverlayPoints = Points +marking-TajaranOverlayPoints-points = Points +marking-TajaranEarsBasic = Basic Ears +marking-TajaranEarsBasic-basic_outer = Outer ear +marking-TajaranEarsBasic-basic_inner = Inner ear +marking-TajaranEarsCurled = Curled Ears +marking-TajaranEarsCurled-curled_outer = Outer ear +marking-TajaranEarsCurled-curled_inner = Inner ear +marking-TajaranEarsDroopy = Droopy Ears +marking-TajaranEarsDroopy-droopy_outer = Outer ear +marking-TajaranEarsDroopy-droopy_inner = Inner ear +marking-TajaranEarsFuzzy = Fuzzy Ears +marking-TajaranEarsFuzzy-basic_outer = Outer ear +marking-TajaranEarsFuzzy-fuzzy_inner = Ear fuzz +marking-TajaranEarsStubby = Stubby Ears +marking-TajaranEarsStubby-stubby_outer = Outer ear +marking-TajaranEarsStubby-stubby_inner = Inner ear +marking-TajaranEarsTall = Tall Ears +marking-TajaranEarsTall-tall_outer = Outer ear +marking-TajaranEarsTall-tall_inner = Inner ear +marking-TajaranEarsTall-tall_fuzz = Ear fuzz +marking-TajaranEarsTorn = Torn Ears +marking-TajaranEarsTorn-torn_outer = Outer ear +marking-TajaranEarsTorn-torn_inner = Inner ear +marking-TajaranEarsWide = Wide Ears +marking-TajaranEarsWide-wide_outer = Outer ear +marking-TajaranEarsWide-wide_inner = Inner ear diff --git a/Resources/Locale/en-US/_EE/species/species.ftl b/Resources/Locale/en-US/_EE/species/species.ftl new file mode 100644 index 0000000000..a2433c2399 --- /dev/null +++ b/Resources/Locale/en-US/_EE/species/species.ftl @@ -0,0 +1 @@ +species-name-tajaran = Tajaran diff --git a/Resources/Locale/en-US/_EE/traits/traits.ftl b/Resources/Locale/en-US/_EE/traits/traits.ftl new file mode 100644 index 0000000000..6a7fd47b2a --- /dev/null +++ b/Resources/Locale/en-US/_EE/traits/traits.ftl @@ -0,0 +1,29 @@ +trait-name-SiikMaas = Siik'maas +trait-description-SiikMaas = + Siik'maas is theorized to be the ancient religious tongue of the Tajara, once universally shared among them. + Though religious devotion waned over time, it became the lingua franca and remains the primary educational and most widely spoken language on Adhomai since the Migration Age. + Humans can learn to speak Siik'maas, as it relies less on body language than other Tajaran languages, but biological differences make certain inflections and subtle movements challenging, often resulting in slower, imprecise speech. + +trait-name-NalRasan = Nal'rasan (Tajara Sign Language) +trait-description-NalRasan = + A body-focused language created by M'sai, Nal'rasan was developed to communicate discreetly between parties. + Because the mrowling and vocal expressions of Siik'maas could sometimes alert prey to hunter presence and drive them away, hunting parties adopted this language to prevent such a thing from occurring. + Rebel sects saw the use of this language and made use of it for covert discussions and the transmission of highly classified information before and during the Great War. + +trait-name-SiikTajr = Siik'tajr +trait-description-SiikTajr = + Siik’tajr, unlike Siik’maas, is a modern language developed during the overthrow of the plutocracy to allow revolutionaries to communicate secretly. + Combining Siik’maas with the body-language-heavy Nal’rasan, it gained prominence during the Great War for covert operations. + While not commonly used in daily life due to its complexity, it remains a secondary language for many families with ties to the war. + +trait-name-YaSsa = Ya'ssa +trait-description-YaSsa = + Ya'ssa is a dialect of Siik'maas, widely spoken by Njarir Tajara. + Presumed to be the traditional tongue of the nobility, it uses a more refined alphabet and speech pattern believed to have evolved from a less-used ancient dialect. + Hadii members have been recorded to still use Ya'ssa, though ultimately with the widespread annihilation of noble families, this language has fallen into disuse until its revival by the New Kingdom of Adhomai. + +trait-name-Delvahii = Delvahii +trait-description-Delvahii = + Delvahhi is a language closely related to the Zhan-Khazan Tajara. + It is still widely used in religious ceremonies dedicated to Ma'take and amongst settlements comprised mostly of Zhan-Khazan. + It is also the favored language of farmers, who have adopted it in the wake of government intrusions into the agricultural industry of Adhomai. diff --git a/Resources/Locale/en-US/_Goobstation/accessories/human-hair.ftl b/Resources/Locale/en-US/_Goobstation/accessories/human-hair.ftl new file mode 100644 index 0000000000..fd1a3f05aa --- /dev/null +++ b/Resources/Locale/en-US/_Goobstation/accessories/human-hair.ftl @@ -0,0 +1,33 @@ +marking-HumanHairBraidedExtension = Braided Extension +marking-HumanHairCometTail = Comet Tail +marking-HumanHairFantasyHair = Fantasy Hair +marking-HumanHairFlatTwistsUpdo = Flat Twists Updo +marking-HumanHairFloorlengthBraid = Floorlength Braid +marking-HumanHairFloorlengthWavy = Floorlength Wavy +marking-HumanHairFrizzyBraid = Frizzy Braid +marking-HumanHairFrontBraidsLong = Front Braids Long +marking-HumanHairFrontBraidsMedium = Front Braids Medium +marking-HumanHairFrontBraidsShort = Front Braids Short +marking-HumanHairHairnet = Hairnet +marking-HumanHairJellyfish = Jellyfish +marking-HumanHairKazuyaMishima = Kazuya Mishima +marking-HumanHairLongBraids = Long Braids +marking-HumanHairLongCurvy = Long Curvy +marking-HumanHairLongPompadour = Long Pompadour +marking-HumanHairMediumCurls = Medium Curls +marking-HumanHairMullet = Mullet +marking-HumanHairPelvicLengthBraid = Pelvic Length Braid +marking-HumanHairPlateau = Plateau +marking-HumanHairQueenBee = Queen Bee +marking-HumanHairSaggedMohawk = Sagged Mohawk +marking-HumanHairSharpMohawk = Sharp Mohawk +marking-HumanHairShortAndPoofy = Short & Poofy +marking-HumanHairShortCurls = Short Curls +marking-HumanHairShoulderLengthBraid = Shoulder Length Braid +marking-HumanHairSideSpike = Side Spike +marking-HumanHairSpaceLoops = Space Loops +marking-HumanHairStar = Star +marking-HumanHairStarFro = Star Fro +marking-HumanHairStyledCurls = Styled Curls +marking-HumanHairUnkemptScientist = Unkempt Scientist +marking-HumanHairWispy = Wispy diff --git a/Resources/Locale/en-US/_Goobstation/alert-levels/alerts.ftl b/Resources/Locale/en-US/_Goobstation/alert-levels/alerts.ftl new file mode 100644 index 0000000000..9c1b0c121f --- /dev/null +++ b/Resources/Locale/en-US/_Goobstation/alert-levels/alerts.ftl @@ -0,0 +1,2 @@ +alerts-modsuit-power-name = [color=yellow]Modsuit Power[/color] +alerts-modsuit-power-desc = Displays the current power level of your modsuit. Low power may affect suit functionality. diff --git a/Resources/Locale/en-US/_Goobstation/clothing/sealable-clothing-component.ftl b/Resources/Locale/en-US/_Goobstation/clothing/sealable-clothing-component.ftl new file mode 100644 index 0000000000..e9c7ffe84b --- /dev/null +++ b/Resources/Locale/en-US/_Goobstation/clothing/sealable-clothing-component.ftl @@ -0,0 +1,23 @@ +sealable-clothing-equipment-not-toggled = Deploy all parts first! +sealable-clothing-equipment-seal-failed = Sealing failed! +sealable-clothing-seal-verb = Toggle Seals + +sealable-clothing-seal-up = The {$partName} is sealing +sealable-clothing-seal-up-helmet = The {$partName} hisses as it closes. +sealable-clothing-seal-up-gauntlets = The {$partName} tightens around your fingers and wrists. +sealable-clothing-seal-up-chestplate = The {$partName} clenches tightly around your chest. +sealable-clothing-seal-up-boots = The {$partName} seals around your feet. + +sealable-clothing-seal-down = The {$partName} is unsealing +sealable-clothing-seal-down-helmet = The {$partName} hisses open. +sealable-clothing-seal-down-gauntlets = The {$partName} become loose around your fingers. +sealable-clothing-seal-down-chestplate = The {$partName} releases your chest. +sealable-clothing-seal-down-boots= The {$partName} relaxes its grip on your legs. + +sealable-clothing-sealed-process-toggle-fail = Suit is already shutting down! +sealable-clothing-unsealed-process-toggle-fail = Suit is already starting up! +sealable-clothing-sealed-toggle-fail = Deactivate the suit first! + +sealable-clothing-not-powered = Suit is not powered! +sealable-clothing-open-sealed-panel-fail = Wiring panel is too tightly sealed! +sealable-clothing-close-panel-first = Close the wiring panel first! diff --git a/Resources/Locale/en-US/_Goobstation/forensics/fibers.ftl b/Resources/Locale/en-US/_Goobstation/forensics/fibers.ftl new file mode 100644 index 0000000000..e3cc656b7c --- /dev/null +++ b/Resources/Locale/en-US/_Goobstation/forensics/fibers.ftl @@ -0,0 +1 @@ +fibers-modular = modular diff --git a/Resources/Locale/en-US/_Goobstation/lathe/lathe-categories.ftl b/Resources/Locale/en-US/_Goobstation/lathe/lathe-categories.ftl index c72f9b46fe..8d7f0f63b3 100644 --- a/Resources/Locale/en-US/_Goobstation/lathe/lathe-categories.ftl +++ b/Resources/Locale/en-US/_Goobstation/lathe/lathe-categories.ftl @@ -8,3 +8,4 @@ lathe-category-mechs-gygax = Gygax lathe-category-mechs-durand = Durand lathe-category-mechs-equipment = Mech equipment lathe-category-mechs-weapons = Mech weapons +lathe-category-modsuit = MOD Suits diff --git a/Resources/Locale/en-US/_Goobstation/markings/wings.ftl b/Resources/Locale/en-US/_Goobstation/markings/wings.ftl new file mode 100644 index 0000000000..52ca1c8855 --- /dev/null +++ b/Resources/Locale/en-US/_Goobstation/markings/wings.ftl @@ -0,0 +1,4 @@ +markings-category-Wings = Wings + +marking-WingsRobotic = Robotic Wings +marking-WingsRobotic-robotic = Robotic Wings diff --git a/Resources/Locale/en-US/_Goobstation/research/technologies.ftl b/Resources/Locale/en-US/_Goobstation/research/technologies.ftl index 31a8640b24..ba68b2494c 100644 --- a/Resources/Locale/en-US/_Goobstation/research/technologies.ftl +++ b/Resources/Locale/en-US/_Goobstation/research/technologies.ftl @@ -6,3 +6,4 @@ research-technology-gygax = Gygax research-technology-durand = Durand research-technology-explosive-mech-ammunition = Explosive Mech Ammunition research-technology-honk-weapons = Bananium Weapons +research-technology-modsuits = Modular Technologies diff --git a/Resources/Locale/en-US/abilities/chitinid.ftl b/Resources/Locale/en-US/abilities/chitinid.ftl new file mode 100644 index 0000000000..e2e10c0eb4 --- /dev/null +++ b/Resources/Locale/en-US/abilities/chitinid.ftl @@ -0,0 +1,2 @@ +chitzite-mask = Take off your {$mask} first. +chitzite-cough = {CAPITALIZE(THE($name))} starts coughing up a hunk of Chitzite! diff --git a/Resources/Locale/en-US/accessories/human-facial-hair.ftl b/Resources/Locale/en-US/accessories/human-facial-hair.ftl index cd8865d02f..7b94d45503 100644 --- a/Resources/Locale/en-US/accessories/human-facial-hair.ftl +++ b/Resources/Locale/en-US/accessories/human-facial-hair.ftl @@ -1,6 +1,6 @@ marking-HumanFacialHairAbe = Beard (Abraham Lincoln) marking-HumanFacialHairBrokenman = Beard (Broken Man) -marking-HumanFacialHairChin = Beard (Chinstrap) +marking-HumanFacialHairChin = Beard (Chinstrap 1) marking-HumanFacialHairDwarf = Beard (Dwarf) marking-HumanFacialHairFullbeard = Beard (Full) marking-HumanFacialHairCroppedfullbeard = Beard (Cropped Fullbeard) diff --git a/Resources/Locale/en-US/accessories/human-hair.ftl b/Resources/Locale/en-US/accessories/human-hair.ftl index c327356da2..3b2f00f288 100644 --- a/Resources/Locale/en-US/accessories/human-hair.ftl +++ b/Resources/Locale/en-US/accessories/human-hair.ftl @@ -31,7 +31,7 @@ marking-HumanHairBun = Bun Head marking-HumanHairBunhead2 = Bun Head 2 marking-HumanHairBun3 = Bun Head 3 marking-HumanHairLargebun = Bun (Large) -marking-HumanHairManbun = Bun (Manbun) +marking-HumanHairManbun = Bun (Manbun 1) marking-HumanHairTightbun = Bun (Tight) marking-HumanHairBusiness = Business Hair marking-HumanHairBusiness2 = Business Hair 2 @@ -45,6 +45,8 @@ marking-HumanHairClassicBusiness = Classic Business Hair marking-HumanHairClassicCia = Classic CIA marking-HumanHairClassicCornrows2 = Classic Cornrows 2 marking-HumanHairClassicFloorlengthBedhead = Classic Floorlength Bedhead +marking-HumanHairClassicLong2 = Classic Long Hair 2 +marking-HumanHairClassicLong3 = Classic Long Hair 3 marking-HumanHairClassicModern = Classic Modern marking-HumanHairClassicMulder = Classic Mulder marking-HumanHairClassicWisp = Classic Wisp @@ -95,10 +97,10 @@ marking-HumanHairJensen = Jensen Hair marking-HumanHairJoestar = Joestar marking-HumanHairKeanu = Keanu Hair marking-HumanHairKusanagi = Kusanagi Hair +marking-HumanHairLongBow = Long Bow marking-HumanHairLong = Long Hair 1 marking-HumanHairLong2 = Long Hair 2 marking-HumanHairLong3 = Long Hair 3 -marking-HumanHairLongBow = Long (Bow) marking-HumanHairLongWithBundles = Long With Bundles marking-HumanHairLongovereye = Long Over Eye marking-HumanHairLbangs = Long Bangs @@ -144,8 +146,10 @@ marking-HumanHairSidetail3 = Ponytail (Side) 3 marking-HumanHairSidetail4 = Ponytail (Side) 4 marking-HumanHairSpikyponytail = Ponytail (Spiky) marking-HumanHairPoofy = Poofy +marking-HumanHairPulato = Pulato marking-HumanHairQuiff = Quiff marking-HumanHairRonin = Ronin +marking-HumanHairShaped = Shaped marking-HumanHairShaved = Shaved marking-HumanHairShavedpart = Shaved Part marking-HumanHairShortbangs = Short Bangs diff --git a/Resources/Locale/en-US/alerts/alerts.ftl b/Resources/Locale/en-US/alerts/alerts.ftl index 7522784713..3babbb6c1a 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/emotes.ftl b/Resources/Locale/en-US/chat/emotes.ftl index 44fca6a006..d3f423af43 100644 --- a/Resources/Locale/en-US/chat/emotes.ftl +++ b/Resources/Locale/en-US/chat/emotes.ftl @@ -45,7 +45,7 @@ chat-emote-name-vulpbark = Bark chat-emote-name-vulpsnarl = Snarl chat-emote-name-vulpwhine = Whine chat-emote-name-vulphowl = Howl -# Felinid +# Felinid / Tajaran chat-emote-name-meow = Meow chat-emote-name-mew = Mew chat-emote-name-purr = Purr diff --git a/Resources/Locale/en-US/chat/managers/chat-language.ftl b/Resources/Locale/en-US/chat/managers/chat-language.ftl index e7801a30c9..aeab804d1b 100644 --- a/Resources/Locale/en-US/chat/managers/chat-language.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-language.ftl @@ -12,11 +12,13 @@ chat-language-Elyran-name = Elyran chat-language-Canilunzt-name = Canilunzt chat-language-Moffic-name = Moffic chat-language-RobotTalk-name = Binary +chat-language-Calcic-name = Calcic chat-language-ValyrianStandard-name = Valyrian chat-language-Sign-name = Sign chat-language-Marish-name = Marish chat-language-ScugSign-name = Scug Sign chat-language-Arachnic-name = Arachnic +chat-language-Chittin-name = Chittin # Animal Languages diff --git a/Resources/Locale/en-US/chat/managers/chat-manager.ftl b/Resources/Locale/en-US/chat/managers/chat-manager.ftl index 1513f56942..a1868316c2 100644 --- a/Resources/Locale/en-US/chat/managers/chat-manager.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-manager.ftl @@ -117,10 +117,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/chemistry/components/chem-master-component.ftl b/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl index aff0cfac66..9631801a44 100644 --- a/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl +++ b/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl @@ -10,22 +10,26 @@ chem-master-bound-user-interface-title = ChemMaster 4000 chem-master-window-input-tab = Input chem-master-window-output-tab = Output -chem-master-window-container-label = Container +chem-master-window-pill-buffer-tab = Pill Buffer +chem-master-window-container-label = Container chem-master-window-amount-placeholder = Transfer Amount chem-master-window-eject-button = Eject chem-master-window-no-container-loaded-text = No container loaded. chem-master-window-buffer-text = Buffer chem-master-window-buffer-label = buffer: -chem-master-window-buffer-all-amount = All chem-master-window-buffer-empty-text = Buffer empty. chem-master-window-buffer-low-text = Not enough solution in buffer +chem-master-window-pill-buffer-text = Pill Buffer +chem-master-window-pill-buffer-label = pill buffer: +chem-master-window-pill-buffer-empty-text = Pill buffer empty. +chem-master-window-pill-buffer-low-text = Not enough solution in pill buffer chem-master-window-transfer-button = Transfer chem-master-window-sort-method-tooltip = Choose your buffer's sort method. chem-master-window-sort-method-Time-text = Last Added chem-master-window-sort-method-Alphabetical-text = Alphabetical Order chem-master-window-sort-method-Amount-text = Quantity -chem-master-window-transferring-label = Transferring: [color={$color}]{$quantity}[/color] -chem-master-window-transferring-default-label = Transferring: [color=#ffa500]50[/color] +chem-master-window-transferring-label = Transferring: [color={$color}]{$quantity}[/color] +chem-master-window-transferring-default-label = Transferring: [color=#ffffff]50[/color] chem-master-window-reagent-move-button = Move chem-master-window-discard-button = Discard chem-master-window-packaging-text = Packaging diff --git a/Resources/Locale/en-US/chemistry/components/injector-component.ftl b/Resources/Locale/en-US/chemistry/components/injector-component.ftl index 24f524081e..0b7d485daf 100644 --- a/Resources/Locale/en-US/chemistry/components/injector-component.ftl +++ b/Resources/Locale/en-US/chemistry/components/injector-component.ftl @@ -27,3 +27,4 @@ injector-component-drawing-user = You start drawing the needle. injector-component-injecting-user = You start injecting the needle. injector-component-drawing-target = {CAPITALIZE(THE($user))} is trying to use a needle to draw from you! injector-component-injecting-target = {CAPITALIZE(THE($user))} is trying to inject a needle into you! +injector-component-deny-chitinid = {CAPITALIZE(THE($target))}'s exoskeleton is too thick for the needle to pierce. diff --git a/Resources/Locale/en-US/clothing/components/toggleable-clothing-component.ftl b/Resources/Locale/en-US/clothing/components/toggleable-clothing-component.ftl index 746eea4a28..a7d08623f4 100644 --- a/Resources/Locale/en-US/clothing/components/toggleable-clothing-component.ftl +++ b/Resources/Locale/en-US/clothing/components/toggleable-clothing-component.ftl @@ -1,3 +1,6 @@ toggle-clothing-verb-text = Toggle {CAPITALIZE($entity)} toggleable-clothing-remove-first = You have to unequip {$entity} first. +toggleable-clothing-remove-all-attached-first = You have to unequip all toggled clothing first. +toggleable-clothing-attach-tooltip = Equip +toggleable-clothing-unattach-tooltip = Unequip diff --git a/Resources/Locale/en-US/deltav/accessories/hair.ftl b/Resources/Locale/en-US/deltav/accessories/hair.ftl index 7fbfc78629..024606ea44 100644 --- a/Resources/Locale/en-US/deltav/accessories/hair.ftl +++ b/Resources/Locale/en-US/deltav/accessories/hair.ftl @@ -7,6 +7,4 @@ marking-HumanHairClassicLowFade = Fade (Low, Classic) marking-HumanHairClassicMedFade = Fade (Medium, Classic) marking-HumanHairClassicOmbre = Ombre Classic marking-HumanHairClassicCrewcut = Crewcut Classic -marking-HumanHairClassicLong = Long 1 (Classic) -marking-HumanHairClassicLong2 = Long 2 (Classic) -marking-HumanHairClassicLong3 = Long 3 (Classic) +marking-HumanHairClassicLong = Classic Long Hair 1 diff --git a/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl b/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl index b1ff73f9a8..f58ade59f6 100644 --- a/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl +++ b/Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl @@ -21,3 +21,9 @@ chat-speech-verb-rodentia-1 = squeaks chat-speech-verb-rodentia-2 = pieps chat-speech-verb-rodentia-3 = chatters chat-speech-verb-rodentia-4 = squeals + +chat-speech-verb-name-chitinid = Chitinid +chat-speech-verb-chitinid-1 = clicks +chat-speech-verb-chitinid-2 = chitters +chat-speech-verb-chitinid-3 = hisses +chat-speech-verb-chitinid-4 = buzzes diff --git a/Resources/Locale/en-US/deltav/markings/chitinid.ftl b/Resources/Locale/en-US/deltav/markings/chitinid.ftl new file mode 100644 index 0000000000..be5ae5896a --- /dev/null +++ b/Resources/Locale/en-US/deltav/markings/chitinid.ftl @@ -0,0 +1,164 @@ +marking-ChitinidAntennasDefault-default = Antennae +marking-ChitinidAntennasDefault = Antennae (Default) + +marking-ChitinidAntennasCurly-curly = Antennae +marking-ChitinidAntennasCurly = Antennae (Curly) + +marking-ChitinidAntennasGray-gray = Antennae +marking-ChitinidAntennasGray = Antennae (Gray) + +marking-ChitinidAntennasSlick-slick = Antennae +marking-ChitinidAntennasSlick = Antennae (Slick) + +marking-ChitinidAntennasShort-short = Antennae +marking-ChitinidAntennasShort = Antennae (short) + +marking-ChitinidAntennasLong-long = Antennae +marking-ChitinidAntennasLong = Antennae (Long) + +marking-ChitinidAntennasBee-bee = Antennae +marking-ChitinidAntennasBee = Antennae (Bee) + +marking-ChitinidAntennasFirefly-firefly_primary = Primary +marking-ChitinidAntennasFirefly-firefly_secondary = Secondary +marking-ChitinidAntennasFirefly = Antennae (Firefly) + +marking-ChitinidAntennasRadar-radar = Antennae +marking-ChitinidAntennasRadar = Antennae (Radar) + +marking-ChitinidAntennasSpeed-speed = Antennae +marking-ChitinidAntennasSpeed = Antennae (Speed) + + + +marking-ChitinidWingsDefault-default = Wing +marking-ChitinidWingsDefault = Tail (Default) + +marking-ChitinidWingsSmooth-smooth = Wing +marking-ChitinidWingsSmooth = Tail (Smooth) + +marking-ChitinidWingsHoneypot-honeypot_primary = Primary +marking-ChitinidWingsHoneypot-honeypot_secondary = Secondary +marking-ChitinidWingsHoneypot = Tail (Honeypot) + +marking-ChitinidWingsStubby-stubby = Wing +marking-ChitinidWingsStubby = Tail (Stubby) + +marking-ChitinidWingsBee-bee_primary = Primary +marking-ChitinidWingsBee-bee_secondary = Secondary +marking-ChitinidWingsBee = Tail (Bee) + +marking-ChitinidWingsFirefly-firefly_primary = Primary +marking-ChitinidWingsFirefly-firefly_secondary = Secondary +marking-ChitinidWingsFirefly = Tail (Firefly) + + + +marking-ChitinidChestCharred-charred_chest = Chest +marking-ChitinidChestCharred = Chitinid Chest (Charred) + +marking-ChitinidHeadCharred-charred_head = Head +marking-ChitinidHeadCharred = Chitinid Head (Charred) + +marking-ChitinidLLegCharred-charred_l_leg = Left Leg +marking-ChitinidLLegCharred = Chitinid Left Leg (Charred) + +marking-ChitinidRLegCharred-charred_r_leg = Right Leg +marking-ChitinidRLegCharred = Chitinid Right Leg (Charred) + +marking-ChitinidLArmCharred-charred_l_arm = Left Arm +marking-ChitinidLArmCharred = Chitinid Left Arm (Charred) + +marking-ChitinidRArmCharred-charred_r_arm = Right Arm +marking-ChitinidRArmCharred = Chitinid Right Arm (Charred) + + + +marking-ChitinidChestPlated-plated_chest = Chest +marking-ChitinidChestPlated = Chitinid Chest (Plated) + +marking-ChitinidLArmPlated-plated_l_arm = Left Arm +marking-ChitinidLArmPlated = Chitinid Left Arm (Plated) + +marking-ChitinidRArmPlated-plated_r_arm = Right Arm +marking-ChitinidRArmPlated = Chitinid Right Arm (Plated) + + + +marking-ChitinidChestStripes-stripes_chest = Chest +marking-ChitinidChestStripes = Chitinid Chest (Stripes) + +marking-ChitinidHeadStripes-stripes_head = Head +marking-ChitinidHeadStripes = Chitinid Head (Stripes) + +marking-ChitinidLLegStripes-stripes_l_leg = Left Leg +marking-ChitinidLLegStripes = Chitinid Left Leg (Stripes) + +marking-ChitinidRLegStripes-stripes_r_leg = Right Leg +marking-ChitinidRLegStripes = Chitinid Right Leg (Stripes) + +marking-ChitinidLArmStripes-stripes_l_arm = Left Arm +marking-ChitinidLArmStripes = Chitinid Left Arm (Stripes) + +marking-ChitinidRArmStripes-stripes_r_arm = Right Arm +marking-ChitinidRArmStripes = Chitinid Right Arm (Stripes) + + + +marking-ChitinidChestRadiant-radiant_chest = Chest +marking-ChitinidChestRadiant = Chitinid Chest (Radiant) + +marking-ChitinidHeadRadiant-radiant_head = Head +marking-ChitinidHeadRadiant = Chitinid Head (Radiant) + +marking-ChitinidLLegRadiant-radiant_l_leg = Left Leg +marking-ChitinidLLegRadiant = Chitinid Left Leg (Radiant) + +marking-ChitinidRLegRadiant-radiant_r_leg = Right Leg +marking-ChitinidRLegRadiant = Chitinid Right Leg (Radiant) + +marking-ChitinidLArmRadiant-radiant_l_arm = Left Arm +marking-ChitinidLArmRadiant = Chitinid Left Arm (Radiant) + +marking-ChitinidRArmRadiant-radiant_r_arm = Right Arm +marking-ChitinidRArmRadiant = Chitinid Right Arm (Radiant) + + + +marking-ChitinidChestToxic-toxic_chest = Chest +marking-ChitinidChestToxic = Chitinid Chest (Toxic) + +marking-ChitinidHeadToxic-toxic_head = Head +marking-ChitinidHeadToxic = Chitinid Head (Toxic) + +marking-ChitinidLLegToxic-toxic_l_leg = Left Leg +marking-ChitinidLLegToxic = Chitinid Left Leg (Toxic) + +marking-ChitinidRLegToxic-toxic_r_leg = Right Leg +marking-ChitinidRLegToxic = Chitinid Right Leg (Toxic) + +marking-ChitinidLArmToxic-toxic_l_arm = Left Arm +marking-ChitinidLArmToxic = Chitinid Left Arm (Toxic) + +marking-ChitinidRArmToxic-toxic_r_arm = Right Arm +marking-ChitinidRArmToxic = Chitinid Right Arm (Toxic) + + + +marking-ChitinidChestSpotted-spotted_chest = Chest +marking-ChitinidChestSpotted = Chitinid Chest (Spotted) + +marking-ChitinidHeadSpotted-spotted_head = Head +marking-ChitinidHeadSpotted = Chitinid Head (Spotted) + +marking-ChitinidLLegSpotted-spotted_l_leg = Left Leg +marking-ChitinidLLegSpotted = Chitinid Left Leg (Spotted) + +marking-ChitinidRLegSpotted-spotted_r_leg = Right Leg +marking-ChitinidRLegSpotted = Chitinid Right Leg (Spotted) + +marking-ChitinidLArmSpotted-spotted_l_arm = Left Arm +marking-ChitinidLArmSpotted = Chitinid Left Arm (Spotted) + +marking-ChitinidRArmSpotted-spotted_r_arm = Right Arm +marking-ChitinidRArmSpotted = Chitinid Right Arm (Spotted) diff --git a/Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl b/Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl new file mode 100644 index 0000000000..0c557dbb0c --- /dev/null +++ b/Resources/Locale/en-US/deltav/objectives/conditions/teach-person.ftl @@ -0,0 +1 @@ +objective-condition-teach-person-title = Teach {$targetName}, {CAPITALIZE($job)} a lesson. You need to be within 30 meters of the target, otherwise the syndicate can't take credit for the job. diff --git a/Resources/Locale/en-US/deltav/species/species.ftl b/Resources/Locale/en-US/deltav/species/species.ftl index 439f76f040..db6529ec65 100644 --- a/Resources/Locale/en-US/deltav/species/species.ftl +++ b/Resources/Locale/en-US/deltav/species/species.ftl @@ -3,3 +3,4 @@ species-name-vulpkanin = Vulpkanin species-name-harpy = Harpy species-name-rodentia = Rodentia +species-name-chitinid = Chitinid diff --git a/Resources/Locale/en-US/envirosuit/envirosuit.ftl b/Resources/Locale/en-US/envirosuit/envirosuit.ftl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl index 0971159f50..66cf2d9429 100644 --- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl +++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl @@ -19,6 +19,7 @@ ui-options-general-discord = Discord ui-options-general-cursor = Cursor ui-options-general-speech = Speech ui-options-general-storage = Storage +ui-options-general-other = Other ui-options-general-accessibility = Accessibility ui-options-chatstack = Automatically merge identical chat messages ui-options-chatstack-off = Off @@ -159,6 +160,7 @@ ui-options-function-save-item-location = Save item location ui-options-function-toggle-standing = Toggle standing ui-options-function-toggle-crawling-under = Toggle crawling under furniture ui-options-static-storage-ui = Lock storage window to hotbar +ui-options-modern-progress-bar = Modern progress bar ui-options-function-smart-equip-backpack = Smart-equip to backpack ui-options-function-smart-equip-belt = Smart-equip to belt @@ -295,4 +297,4 @@ cmd-options-help = Usage: options [tab] ## Combat Options ui-options-function-look-up = Look up/Take aim ui-options-function-auto-get-up = Automatically get up after falling -ui-options-function-hold-look-up = Hold down the key to aim \ No newline at end of file +ui-options-function-hold-look-up = Hold down the key to aim diff --git a/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl b/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl new file mode 100644 index 0000000000..f721e3ff01 --- /dev/null +++ b/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl @@ -0,0 +1,89 @@ +card-examined = This is the {$target}. +cards-verb-shuffle = Shuffle +card-verb-shuffle-success = Cards shuffled +cards-verb-draw = Draw card +cards-verb-flip = Flip cards +card-verb-join = Join cards +card-verb-organize-success = Cards flipped face { $facedown -> + [true] down + *[false] up +} +cards-verb-organize-up = Flip cards face up +cards-verb-organize-down = Flip cards face down +cards-verb-pickcard = Pick a card +card-stack-examine = { $count -> + [one] There is {$count} card in this stack. + *[other] There are {$count} cards in this stack. +} +cards-stackquantitychange-added = Card was added (Total cards: {$quantity}) +cards-stackquantitychange-removed = Card was removed (Total cards: {$quantity}) +cards-stackquantitychange-joined = Stack was merged (Total cards: {$quantity}) +cards-stackquantitychange-split = Stack was split (Total cards: {$quantity}) +cards-stackquantitychange-unknown = Stack count changed (Total cards: {$quantity}) +cards-verb-convert-to-deck = Convert to deck +cards-verb-split = Split in half + +card-base-name = card +card-deck-name = deck of cards + +card-sc-2-clubs = 2 of clubs +card-sc-3-clubs = 3 of clubs +card-sc-4-clubs = 4 of clubs +card-sc-5-clubs = 5 of clubs +card-sc-6-clubs = 6 of clubs +card-sc-7-clubs = 7 of clubs +card-sc-8-clubs = 8 of clubs +card-sc-9-clubs = 9 of clubs +card-sc-10-clubs = 10 of clubs +card-sc-ace-clubs = ace of clubs +card-sc-jack-clubs = jack of clubs +card-sc-king-clubs = king of clubs +card-sc-queen-clubs = queen of clubs + +card-sc-2-diamonds = 2 of diamonds +card-sc-3-diamonds = 3 of diamonds +card-sc-4-diamonds = 4 of diamonds +card-sc-5-diamonds = 5 of diamonds +card-sc-6-diamonds = 6 of diamonds +card-sc-7-diamonds = 7 of diamonds +card-sc-8-diamonds = 8 of diamonds +card-sc-9-diamonds = 9 of diamonds +card-sc-10-diamonds = 10 of diamonds +card-sc-ace-diamonds = ace of diamonds +card-sc-jack-diamonds = jack of diamonds +card-sc-king-diamonds = king of diamonds +card-sc-queen-diamonds = queen of diamonds + +card-sc-2-hearts = 2 of hearts +card-sc-3-hearts = 3 of hearts +card-sc-4-hearts = 4 of hearts +card-sc-5-hearts = 5 of hearts +card-sc-6-hearts = 6 of hearts +card-sc-7-hearts = 7 of hearts +card-sc-8-hearts = 8 of hearts +card-sc-9-hearts = 9 of hearts +card-sc-10-hearts = 10 of hearts +card-sc-ace-hearts = ace of hearts +card-sc-jack-hearts = jack of hearts +card-sc-king-hearts = king of hearts +card-sc-queen-hearts = queen of hearts + +card-sc-2-spades = 2 of spades +card-sc-3-spades = 3 of spades +card-sc-4-spades = 4 of spades +card-sc-5-spades = 5 of spades +card-sc-6-spades = 6 of spades +card-sc-7-spades = 7 of spades +card-sc-8-spades = 8 of spades +card-sc-9-spades = 9 of spades +card-sc-10-spades = 10 of spades +card-sc-ace-spades = ace of spades +card-sc-jack-spades = jack of spades +card-sc-king-spades = king of spades +card-sc-queen-spades = queen of spades + +card-sc-joker = joker + +container-sealed = A holographic security seal is on it. Opening it will have the seal dissipate. +container-unsealed = The seal attached to it dissipates. + diff --git a/Resources/Locale/en-US/estacao-pirata/store/uplink-catalog.ftl b/Resources/Locale/en-US/estacao-pirata/store/uplink-catalog.ftl new file mode 100644 index 0000000000..c94ffdba16 --- /dev/null +++ b/Resources/Locale/en-US/estacao-pirata/store/uplink-catalog.ftl @@ -0,0 +1,2 @@ +uplink-syndicate-deck-name = Syndicate Deck Box +uplink-syndicate-deck-desc = A deck box with the standard 53 playing cards with syndicate branding. Please gamble responsibly. diff --git a/Resources/Locale/en-US/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/flavors/flavor-profiles.ftl index c22e245562..4819b03ff8 100644 --- a/Resources/Locale/en-US/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/flavors/flavor-profiles.ftl @@ -177,6 +177,7 @@ flavor-complex-true-nature = like the true nature of reality flavor-complex-false-meat = not entirely unlike meat flavor-complex-paper = like mushy pulp flavor-complex-compressed-meat = like compressed meat +flavor-complex-plasma = like plasma # Drink-specific flavors. diff --git a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl index aced542aaf..bf7cd7c1a7 100644 --- a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl @@ -73,6 +73,8 @@ petting-success-derelict-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} petting-success-recycler = You pet {THE($target)} on {POSS-ADJ($target)} mildly threatening steel exterior. petting-success-station-ai = You pet {THE($target)} on {POSS-ADJ($target)} cold, square screen. petting-success-gladiabot = You pet {THE($target)} on {POSS-ADJ($target)} vicious cardboard head. +petting-success-batonbot = You pet {THE($target)} on {POSS-ADJ($target)} protective metal head. +petting-success-disablerbot = You pet {THE($target)} on {POSS-ADJ($target)} protective metal head. petting-failure-honkbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} honks in refusal! petting-failure-cleanbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} busy mopping! @@ -89,6 +91,8 @@ petting-failure-syndicate-cyborg = You reach out to pet {THE($target)}, but {POS petting-failure-derelict-cyborg = You reach out to pet {THE($target)}, but {POSS-ADJ($target)} rusty and jagged exterior makes you reconsider. petting-failure-station-ai = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BASIC($target, "zap", "zaps")} your hand away. petting-failure-gladiabot = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} only wants to fight! +petting-failure-batonbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} nearly prods you with its baton! +petting-failure-disablerbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} angrily waves its weapon at you! petting-success-station-ai-others = { CAPITALIZE(THE($user)) } pets {THE($target)} on {POSS-ADJ($target)} cold, square screen. diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index 4564708e4e..78ffaf19ca 100644 --- a/Resources/Locale/en-US/language/languages.ftl +++ b/Resources/Locale/en-US/language/languages.ftl @@ -58,6 +58,9 @@ language-Moffic-description = The language of the mothpeople borders on complete language-RobotTalk-name = RobotTalk language-RobotTalk-description = A language consisting of harsh binary chirps, whistles, hisses, and whines. Organic tongues cannot speak it without aid from special translators. +language-Calcic-name = Calcic +language-Calcic-description = The bone-rattling language of skeletons and Plasmamen. It sounds like a harmonic trousle of bones with a humerus tone, sans any off-tune ribbing. + language-Sign-name = Tau-Ceti Basic Sign Language language-Sign-description = TCB-SL for short, this sign language is prevalent among mute and deaf people. @@ -70,6 +73,11 @@ language-ValyrianStandard-description = It is rarely spoken outside of the worlds of its native speakers, and has in modern times been supplanted by the 'Conlangs of the Sol Alliance. Its speakers are those who wish to uphold the traditions and beliefs of ancient peoples from before the colonial era. +language-Chittin-name = Chittin +language-Chittin-description = + A language consisting of clicks, buzzes, and some variety of harsh insect sounds. + Most of what makes up their speech comes from their antennae, making it a near-impossible language for those without to learn. + # Animal Languages language-Cat-name = Cat diff --git a/Resources/Locale/en-US/loadouts/generic/hands.ftl b/Resources/Locale/en-US/loadouts/generic/hands.ftl index 409691f577..69c7a9e7be 100644 --- a/Resources/Locale/en-US/loadouts/generic/hands.ftl +++ b/Resources/Locale/en-US/loadouts/generic/hands.ftl @@ -1,3 +1,5 @@ loadout-name-LoadoutHandsColorWhite = gloves (colorable) loadout-name-LoadoutHandsGlovesFingerlessWhite = fingerless gloves (colorable) loadout-name-LoadoutHandsGlovesEvening = evening gloves (colorable) +loadout-name-LoadoutHandsGlovesEnviroglovesColor = envirogloves (colorable) +loadout-name-LoadoutHandsGlovesEnviroglovesEvening = evening envirogloves (colorable) diff --git a/Resources/Locale/en-US/loadouts/generic/species.ftl b/Resources/Locale/en-US/loadouts/generic/species.ftl new file mode 100644 index 0000000000..943ddbf3c2 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/species.ftl @@ -0,0 +1,5 @@ +loadout-name-LoadoutSpeciesDoubleEmergencyPlasmaTank = extra plasma internals tank +loadout-description-LoadoutSpeciesDoubleEmergencyPlasmaTank = An extra plasma tank to extend your plasma supply for about another hour. + +loadout-name-LoadoutSpeciesDrinkMilkCartonAndSyringe = milk carton and syringe +loadout-description-LoadoutSpeciesDrinkMilkCartonAndSyringe = A milk carton full of nutritious calcium to heal your bones, and a syringe to inject the milk directly. diff --git a/Resources/Locale/en-US/loadouts/generic/uniform.ftl b/Resources/Locale/en-US/loadouts/generic/uniform.ftl index b05a926935..1fcf270f29 100644 --- a/Resources/Locale/en-US/loadouts/generic/uniform.ftl +++ b/Resources/Locale/en-US/loadouts/generic/uniform.ftl @@ -43,3 +43,5 @@ loadout-name-LoadoutUniformJumpsuitSailor = sailor suit (colorable) loadout-name-LoadoutUniformJumpsuitTrackpants = track pants (colorable) loadout-name-LoadoutUniformJumpsuitTurtleneckGrey = grey turtleneck (colorable) loadout-name-LoadoutUniformJumpsuitYogaGymBra = yoga gym bra (colorable) +loadout-name-LoadoutUniformEnvirosuitBlackPinkAlt = black pink envirosuit, alternative +loadout-name-LoadoutUniformEnvirosuitEnviroslacksMNKAlt = MNK enviroslacks, alternative diff --git a/Resources/Locale/en-US/loadouts/itemgroups.ftl b/Resources/Locale/en-US/loadouts/itemgroups.ftl index eda9f3b898..e6041a1b7a 100644 --- a/Resources/Locale/en-US/loadouts/itemgroups.ftl +++ b/Resources/Locale/en-US/loadouts/itemgroups.ftl @@ -19,6 +19,7 @@ character-item-group-LoadoutSmokes = Smokeables character-item-group-LoadoutBoxKits = Survival Kits character-item-group-LoadoutWritables = Writing Tools character-item-group-LoadoutPets = Pets +character-item-group-LoadoutCards = Playing Cards # Job Specific Template character-item-group-LoadoutJOBBackpacks = JOB Backpacks diff --git a/Resources/Locale/en-US/loadouts/items.ftl b/Resources/Locale/en-US/loadouts/items.ftl index f107823447..72d8275022 100644 --- a/Resources/Locale/en-US/loadouts/items.ftl +++ b/Resources/Locale/en-US/loadouts/items.ftl @@ -1,3 +1,5 @@ +loadout-description-LoadoutItemBlackDeck = A black box containing the standard 53 playing cards. Please gamble responsibly. +loadout-description-LoadoutItemNTDeck = A Nanotrasen-branded box containing the standard 53 playing cards. Please gamble responsibly. loadout-description-LoadoutItemCig = Cool guys always have one. loadout-description-LoadoutItemCigsGreen = A pack a day keeps the doctor well-paid! loadout-description-LoadoutItemCigsRed = A pack a day keeps the doctor well-paid! diff --git a/Resources/Locale/en-US/markings/face.ftl b/Resources/Locale/en-US/markings/face.ftl index 50fb935bef..e50803dffd 100644 --- a/Resources/Locale/en-US/markings/face.ftl +++ b/Resources/Locale/en-US/markings/face.ftl @@ -90,3 +90,6 @@ marking-FaceNeckSlimThick-neck_thick_f = Neck Cover (Slim Thick) marking-FaceNeckWideThick = Neck Cover (Wide Thick) marking-FaceNeckWideThick-neck_thick_m = Neck Cover (Wide Thick) + +marking-IronJaw = Iron Jaw +marking-IronJaw-iron_jaw = Iron Jaw diff --git a/Resources/Locale/en-US/markings/gauze.ftl b/Resources/Locale/en-US/markings/gauze.ftl index f8bedc3195..7ed35a90ba 100644 --- a/Resources/Locale/en-US/markings/gauze.ftl +++ b/Resources/Locale/en-US/markings/gauze.ftl @@ -46,6 +46,9 @@ marking-GauzeUpperLegRight = Gauze Thigh Wrap (Right) marking-GauzeBlindfold-gauze_blindfold = Gauze Blindfold marking-GauzeBlindfold = Gauze Blindfold +marking-GauzeHead-gauze_head = Gauze Head Wrap +marking-GauzeHead = Gauze Head Wrap + marking-GauzeLizardBlindfold-gauze_lizard_blindfold = Gauze Blindfold marking-GauzeLizardBlindfold = Gauze Blindfold diff --git a/Resources/Locale/en-US/markings/plasmaman_wings.ftl b/Resources/Locale/en-US/markings/plasmaman_wings.ftl new file mode 100644 index 0000000000..af5b56b28c --- /dev/null +++ b/Resources/Locale/en-US/markings/plasmaman_wings.ftl @@ -0,0 +1,2 @@ +marking-WingsSkeleton = Skeleton Wings +marking-WingsSkeleton-skeleton = Skeleton Wings diff --git a/Resources/Locale/en-US/metabolism/metabolizer-types.ftl b/Resources/Locale/en-US/metabolism/metabolizer-types.ftl index d0f57e2bc0..97d5c068c4 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 aa348ce627..213fbb7443 100644 --- a/Resources/Locale/en-US/mood/mood.ftl +++ b/Resources/Locale/en-US/mood/mood.ftl @@ -1,4 +1,4 @@ -mood-show-effects-start = [font size=12]Mood:[/font] +mood-show-effects-start = [font size=12]Mood:[/font] mood-effect-HungerOverfed = I ate so much, I feel as though I'm about to burst! mood-effect-HungerOkay = I am feeling full. @@ -78,3 +78,10 @@ mood-effect-EthanolBenefit = I feel so relaxed from drinking. mood-effect-SpaceDrugsBenefit = Woaaaah, such pretty colors maaaaan. It's like I can hear color and taste sound maaan. + +# Plasmaman +mood-effect-PlasmamanIngestPlasma = + My body is rejuvenated by the fresh plasma coursing through my body. + +mood-effect-PlasmamanIngestMilk = + I can feel the milk's calcium repairing my bones. This is dairy-lightful! diff --git a/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl b/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl new file mode 100644 index 0000000000..04d705ae49 --- /dev/null +++ b/Resources/Locale/en-US/self-extinguisher/self-extinguisher.ftl @@ -0,0 +1,18 @@ +self-extinguisher-verb = Self-Extinguish + +self-extinguisher-examine-cooldown-ready = The self-extinguisher is ready to be used. +self-extinguisher-examine-cooldown-recharging = The self-extinguisher is recharging for [color=teal]{$cooldown}[/color] seconds. +self-extinguisher-examine-no-charges = The self-extinguisher is recharging for [color=teal]{$cooldown}[/color] seconds. + +self-extinguisher-no-charges = The {$item} has no charges left! +self-extinguisher-on-cooldown = The {$item}'s extinguisher is recharging! +self-extinguisher-not-on-fire-self = You are not on fire! +self-extinguisher-not-on-fire-other = {$target} {CONJUGATE-BE($target)} not on fire! +self-extinguisher-not-immune-to-fire-self = You are not insulated against fire! +self-extinguisher-not-immune-to-fire-other = {$target} {CONJUGATE-BE($target)} not insulated against fire! + +self-extinguisher-extinguish-self = The {$item} extinguishes you! +self-extinguisher-extinguish-other = The {$item} extinguishes {$target}! + +self-extinguisher-refill = You refill the suit's self-extinguisher, using up the cartridge. +self-extinguisher-refill-full = The self-extinguisher is full. diff --git a/Resources/Locale/en-US/species/species.ftl b/Resources/Locale/en-US/species/species.ftl index bfebc705c5..6ffc9ac2bd 100644 --- a/Resources/Locale/en-US/species/species.ftl +++ b/Resources/Locale/en-US/species/species.ftl @@ -1,4 +1,4 @@ -## Species Names +## Species Names species-name-human = Human species-name-dwarf = Dwarf @@ -12,7 +12,8 @@ species-name-skeleton = Skeleton species-name-vox = Vox species-name-ipc = IPC species-name-shadowkin = Shadowkin +species-name-plasmaman = Plasmaman ## Misc species things -snail-hurt-by-salt-popup = The salty solution burns like acid! \ No newline at end of file +snail-hurt-by-salt-popup = The salty solution burns like acid! diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 0dcbc1ba66..523d37c839 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -436,6 +436,9 @@ uplink-syndicate-pai-desc = A Syndicate variant of the pAI with access to the Sy uplink-bribe-name = Lobbying Bundle uplink-bribe-desc = A heartfelt gift that can help you sway someone's opinion. Real or counterfeit? Yes. +uplink-bribe-plasmaman-name = Lobbying Bundle +uplink-bribe-plasmaman-desc = A heartfelt gift that can help you sway someone's opinion. Real or counterfeit? Yes. Includes a tacticool envirosuit for a tacticool plasmaman like you. + uplink-hypodart-name = Hypodart uplink-hypodart-desc = A seemingly unremarkable dart with an enlarged reservoir for chemicals. It can store up to 7u reagents in itself, and instantly inject when it hits the target. Starts empty. diff --git a/Resources/Locale/en-US/thief/backpack.ftl b/Resources/Locale/en-US/thief/backpack.ftl index 90cb0031fb..b779bded0b 100644 --- a/Resources/Locale/en-US/thief/backpack.ftl +++ b/Resources/Locale/en-US/thief/backpack.ftl @@ -54,6 +54,13 @@ thief-backpack-category-communicator-description = for all station channels, a cybersun pen, a portable crew monitor, a voice chameleon mask and lots of money for business deals. +thief-backpack-category-communicator-plasmaman-name = communicator's kit +thief-backpack-category-communicator-plasmaman-description = + A communication enthusiast's kit. Includes a master key + for all station channels, a cybersun pen, a portable + crew monitor, a voice chameleon mask, a tacticool envirosuit + and lots of money for business deals. + thief-backpack-category-smuggler-name = smuggler's kit thief-backpack-category-smuggler-description = A kit for those who like to have big pockets. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 00abe7bea6..b0cbf85773 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. @@ -328,7 +331,7 @@ trait-description-Clumsy = trait-name-Small = Small trait-description-Small = You are much smaller than a typical person, and can climb into spaces others would not normally be able to fit into, such as duffel bags. - This trait does not in any way modify your character's size, it merely requires that your character be at most the size of a standard Felinid. + This trait does not in any way modify your character's size, it merely requires that your character be at most the size of a standard Tajaran. trait-name-TemperatureTolerance = Temperature Tolerance trait-description-TemperatureTolerance = diff --git a/Resources/Maps/glacier.yml b/Resources/Maps/glacier.yml index b19e3c64f4..caa8e3c48f 100644 --- a/Resources/Maps/glacier.yml +++ b/Resources/Maps/glacier.yml @@ -46154,7 +46154,7 @@ entities: occludes: True ents: - 6158 - toggleable-clothing: !type:ContainerSlot + toggleable-clothing: !type:Container showEnts: False occludes: True ent: null diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 0a57157f1b..5014263a81 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -444,3 +444,19 @@ - type: InstantAction useDelay: 4 +- type: entity + id: ActionSelfExtinguish + name: Self-Extinguish + description: Extinguishes you if you are on fire and insulated against self-ignition. + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + itemIconStyle: BigItem + icon: + sprite: Objects/Misc/fire_extinguisher.rsi + state: fire_extinguisher_open + iconCooldown: + sprite: Objects/Misc/fire_extinguisher.rsi + state: fire_extinguisher_closed + iconDisabled: Interface/Default/blocked.png + event: !type:SelfExtinguishEvent diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index f391a3cf22..759fe70423 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -8,6 +8,7 @@ - category: Mood - category: Stamina - alertType: SuitPower + - alertType: ModsuitPower # Goobstation - Modsuits - category: Internals - alertType: Fire - alertType: Handcuffed @@ -54,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 @@ -617,4 +636,4 @@ - sprite: /Textures/Interface/Alerts/deflecting.rsi state: deflecting0 name: alerts-deflecting-name - description: alerts-deflecting-desc \ No newline at end of file + description: alerts-deflecting-desc diff --git a/Resources/Prototypes/Body/Organs/plasmaman.yml b/Resources/Prototypes/Body/Organs/plasmaman.yml new file mode 100644 index 0000000000..fa69a490ea --- /dev/null +++ b/Resources/Prototypes/Body/Organs/plasmaman.yml @@ -0,0 +1,150 @@ +- type: entity + id: BasePlasmamanOrgan + abstract: true + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/organs.rsi + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 5 # Not very nutritious + - ReagentId: Plasma + Quantity: 2.5 + food: + maxVol: 5 + reagents: + - ReagentId: Plasma + Quantity: 5 + - type: Extractable + grindableSolutionName: food + juiceSolution: + reagents: + - ReagentId: Plasma + Quantity: 5 + - type: FlavorProfile + flavors: + - plasma + +- type: entity + id: OrganPlasmamanLungs + parent: [ BasePlasmamanOrgan, OrganHumanLungs ] + name: plasmaman lungs + description: The lungs yearn for the plasma. Only plasma gas can satiate these lungs, and oxygen is lethally toxic. + components: + - type: Sprite + layers: + - state: lungs + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: Lung + alert: LowPlasma + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 5 + - ReagentId: Plasma + Quantity: 2.5 + Lung: + maxVol: 100.0 + canReact: false + food: + maxVol: 5 + reagents: + - ReagentId: Plasma + Quantity: 5 + +- type: entity + id: OrganPlasmamanStomach + parent: [ BasePlasmamanOrgan, OrganHumanStomach ] + name: plasmaman stomach + description: Why do plasmamen have stomachs if they don't need to eat? + components: + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 8 + - ReagentId: Plasma + Quantity: 4 + stomach: + maxVol: 50 + food: + maxVol: 8 + reagents: + - ReagentId: Plasma + Quantity: 8 + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Plasma + Quantity: 8 + +- type: entity + id: OrganPlasmamanEyes + parent: [ BasePlasmamanOrgan, OrganHumanEyes ] + name: plasmaman eyes + components: + - type: Sprite + layers: + - state: eyes + +- type: entity + id: OrganPlasmamanLiver + parent: [ BasePlasmamanOrgan, OrganHumanLiver ] + name: plasmaman liver + components: + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + +- type: entity + id: OrganPlasmamanTongue + parent: [ BasePlasmamanOrgan, OrganHumanTongue ] + name: plasmaman tongue + +- type: entity + id: OrganPlasmamanKidneys + parent: [ BasePlasmamanOrgan, OrganHumanKidneys ] + name: plasmaman kidneys + components: + - type: Sprite + layers: + - state: kidneys + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + +- type: entity + id: OrganPlasmamanHeart + parent: [ BasePlasmamanOrgan, OrganHumanHeart ] + name: plasmaman heart + description: It pulses with plasma even outside the body. + components: + - type: Metabolizer + metabolizerTypes: [ Plasmaman ] + +- type: entity + id: OrganPlasmamanBrain + parent: [ BasePlasmamanOrgan, OrganHumanBrain ] + name: plasmaman brain + components: + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 5 + - ReagentId: Plasma + Quantity: 2.5 + food: + maxVol: 10 + reagents: + - ReagentId: GreyMatter + Quantity: 5 + - ReagentId: Plasma + Quantity: 5 diff --git a/Resources/Prototypes/Body/Parts/plasmaman.yml b/Resources/Prototypes/Body/Parts/plasmaman.yml new file mode 100644 index 0000000000..2fdec53085 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/plasmaman.yml @@ -0,0 +1,133 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartPlasmaman + parent: [BaseItem, BasePart] + name: plasmaman body part + abstract: true + components: + - type: Sprite + sprite: Mobs/Species/Plasmaman/parts.rsi + - type: Butcherable + butcheringType: Knife + butcherDelay: 4.0 + spawned: + - id: SheetPlasma1 + amount: 1 + - type: IgniteFromGasPart + gas: Oxygen + +- type: entity + id: TorsoPlasmaman + name: plasmaman torso + parent: [PartPlasmaman, BaseTorso] + components: + - type: Sprite + state: torso_m + - type: Butcherable + butcherDelay: 6.0 + spawned: + - id: SheetPlasma1 + amount: 3 + - type: IgniteFromGasPart + fireStacks: 0.06 + +- type: entity + id: HeadPlasmaman + name: plasmaman head + parent: [PartPlasmaman, BaseHead] + components: + - type: Sprite + state: head_m + - type: Butcherable + butcherDelay: 5.0 + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftArmPlasmaman + name: left plasmaman arm + parent: [PartPlasmaman, BaseLeftArm] + components: + - type: Sprite + state: l_arm + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: RightArmPlasmaman + name: right plasmaman arm + parent: [PartPlasmaman, BaseRightArm] + components: + - type: Sprite + state: r_arm + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftHandPlasmaman + name: left plasmaman hand + parent: [PartPlasmaman, BaseLeftHand] + components: + - type: Sprite + state: l_hand + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: RightHandPlasmaman + name: right plasmaman hand + parent: [PartPlasmaman, BaseRightHand] + components: + - type: Sprite + state: r_hand + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: LeftLegPlasmaman + name: left plasmaman leg + parent: [PartPlasmaman, BaseLeftLeg] + components: + - type: Sprite + state: l_leg + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: RightLegPlasmaman + name: right plasmaman leg + parent: [PartPlasmaman, BaseRightLeg] + components: + - type: Sprite + state: r_leg + - type: IgniteFromGasPart + fireStacks: 0.02 + +- type: entity + id: LeftFootPlasmaman + name: left plasmaman foot + parent: [PartPlasmaman, BaseLeftFoot] + components: + - type: Sprite + state: l_foot + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 + +- type: entity + id: RightFootPlasmaman + name: right plasmaman foot + parent: [PartPlasmaman, BaseRightFoot] + components: + - type: Sprite + state: r_foot + - type: Butcherable + butcherDelay: 3.0 + - type: IgniteFromGasPart + fireStacks: 0.01 diff --git a/Resources/Prototypes/Body/Prototypes/plasmaman.yml b/Resources/Prototypes/Body/Prototypes/plasmaman.yml new file mode 100644 index 0000000000..a41ad0802a --- /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 c04e49f413..55645819c2 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml @@ -68,6 +68,26 @@ category: cargoproduct-category-name-emergency group: market +- type: cargoProduct + id: EmergencyPlasmaInternals + icon: + sprite: Objects/Tanks/plasmaman.rsi + state: icon + product: CratePlasmaInternals + cost: 750 # Plasma is expensive! + category: cargoproduct-category-name-emergency + group: market + +- type: cargoProduct + id: EmergencyPlasmamanEnvirosuit + icon: + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + state: icon + product: CratePlasmamanEnvirosuit + cost: 600 + category: cargoproduct-category-name-emergency + group: market + - type: cargoProduct id: EmergencyBiosuit icon: diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml index d267ddb2ed..7380198183 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/cargo.yml b/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml index 29de9f67a4..0af3bba5ae 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml @@ -331,6 +331,9 @@ - id: PlushieTabi # TheDen prob: 0.01 orGroup: Plushies + - id: PlushieJenn # TheDen + prob: 0.01 + orGroup: Plushies #useful - id: AmeJar prob: 0.01 @@ -440,4 +443,4 @@ orGroup: NotUseful - id: WeakKudzu prob: 0.01 - orGroup: NotUseful \ No newline at end of file + orGroup: NotUseful diff --git a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml index 9532fbf74e..1d9d92da01 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml @@ -87,6 +87,40 @@ - id: NitrogenTankFilled amount: 4 +- type: entity + id: CratePlasmaInternals + parent: CrateInternals + name: internals crate (plasma) + description: Contains four breath masks and four plasma internals tanks. Intended for Plasmamen. + components: + - type: StorageFill + contents: + - id: ClothingMaskGas + amount: 2 + - id: ClothingMaskBreath + amount: 2 + - id: DoubleEmergencyPlasmaTankFilled + amount: 4 + +- type: entity + id: CratePlasmamanEnvirosuit + parent: CrateInternals + name: plasma envirosuit crate + description: Contains two full sets of envirosuits, two breath masks, and two plasma internals tanks. Intended for Plasmamen. + components: + - type: StorageFill + contents: + - id: ClothingUniformEnvirosuit + amount: 2 + - id: ClothingHeadEnvirohelmEmpty + amount: 2 + - id: ClothingHandsGlovesEnvirogloves + amount: 2 + - id: ClothingMaskBreath + amount: 2 + - id: DoubleEmergencyPlasmaTankFilled + amount: 2 + - type: entity id: CrateEmergencyRadiation parent: CrateRadiation diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index c4e59f452f..f9b92a77f8 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -73,6 +73,8 @@ id: PlushieAlice - !type:EntSelector id: PlushieTabi + - !type:EntSelector + id: PlushieJenn - type: entity id: CrateFunPlushie diff --git a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml index ba97af3925..82f5bd6aa6 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml @@ -21,6 +21,7 @@ - id: ClothingHandsGlovesCombat - id: DoubleEmergencyOxygenTankFilled - id: DoubleEmergencyNitrogenTankFilled + - id: DoubleEmergencyPlasmaTankFilled - type: entity id: CrateSyndicateSuperSurplusBundle diff --git a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml index 58a49aa6e9..5b96ba96d8 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml @@ -47,6 +47,33 @@ - id: ClothingMaskNeckGaiter - id: SyndieHandyFlag +- type: entity + id: BriefcaseSyndieLobbyingBundlePlasmamanFilled + parent: BriefcaseSyndie + suffix: Syndicate, Spesos, Plasmaman + components: + - type: StorageFill + contents: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash30000 + amount: 1 + - id: EncryptionKeySyndie + - id: RubberStampTrader + - id: PhoneInstrumentSyndicate + - id: ClothingUniformEnvirosuitTacticool + - id: ClothingHeadEnvirohelmTacticool + - id: ClothingOuterCoatJensenFilled + - id: ClothingHandsGlovesCombat + +- type: entity # No more space in briefcase due to envirohelm so put the syndicate flag in the jensen coat + id: ClothingOuterCoatJensenFilled + parent: ClothingOuterCoatJensen + suffix: Syndicate Flag Inside + components: + - type: StorageFill + contents: + - id: SyndieHandyFlag + - type: entity id: BriefcaseThiefBribingBundleFilled parent: BriefcaseSyndie @@ -62,3 +89,19 @@ - id: ClothingHandsGlovesCombat - id: ClothingMaskNeckGaiter - id: ToyFigurineThief + +- type: entity + id: BriefcaseThiefBribingBundlePlasmamanFilled + parent: BriefcaseSyndie + suffix: Thief, Spesos, Plasmaman + components: + - type: StorageFill + contents: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash20000 + amount: 1 + - id: ClothingUniformEnvirosuitTacticool + - id: ClothingHeadEnvirohelmTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ToyFigurineThief diff --git a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml index 2cf1354c14..379de235fc 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml @@ -63,6 +63,22 @@ - 0.270782035 # nitrogen temperature: 293.15 +- type: entity + id: EmergencyPlasmaTankFilled + parent: EmergencyPlasmaTank + suffix: Filled + components: + - type: GasTank + outputPressure: 5.325 + air: + # 16 minutes with Plasmaman lungs + volume: 0.66 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 + - 0.270782035 # nitrogen + temperature: 293.15 - type: entity id: ExtendedEmergencyOxygenTankFilled @@ -93,6 +109,22 @@ - 0.615413715 # nitrogen temperature: 293.15 +- type: entity + id: ExtendedEmergencyPlasmaTankFilled + parent: ExtendedEmergencyPlasmaTank + suffix: Filled + components: + - type: GasTank + outputPressure: 5.325 + air: + # 36 minutes with Plasmaman lungs + volume: 1.5 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 + - 0.615413715 # plasma + temperature: 293.15 - type: entity id: DoubleEmergencyOxygenTankFilled @@ -123,6 +155,23 @@ - 1.025689525 # nitrogen temperature: 293.15 +- type: entity + id: DoubleEmergencyPlasmaTankFilled + parent: DoubleEmergencyPlasmaTank + suffix: Filled + components: + - type: GasTank + outputPressure: 5.325 + air: + # 60 minutes with Plasmaman lungs + volume: 1.5 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 + - 1.025689525 # plasma + temperature: 293.15 + - type: entity id: EmergencyFunnyOxygenTankFilled parent: EmergencyFunnyOxygenTank @@ -142,7 +191,7 @@ - 0 # water vapor - 0 # ammonia - 0.014251686 # 5% N2O - # 0.285033721 total + # 0.285033721 total temperature: 293.15 - type: entity @@ -211,7 +260,7 @@ suffix: Filled components: - type: GasTank - outputPressure: 101.3 + outputPressure: 21.3 air: # 6 minutes of agony volume: 5 @@ -221,3 +270,13 @@ - 0 # CO2 - 2.051379050 # plasma temperature: 293.15 + +- type: entity + id: PlasmaTankFilledInternals + parent: PlasmaTankFilled + name: plasma tank + suffix: Filled, Plasmaman Internals + components: + - type: GasTank + # 120 minutes with Plasmaman lungs + outputPressure: 5.325 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml index f022b4b9a5..239fa324b5 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml @@ -16,3 +16,4 @@ PaperCNCSheet: 6 MysteryFigureBox: 2 BooksBag: 3 + CardBoxBlack: 3 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml index fce18024a7..7dbcce131b 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/tankdispenser.yml @@ -3,6 +3,7 @@ startingInventory: OxygenTankFilled: 10 NitrogenTankFilled: 10 + PlasmaTankFilled: 10 - type: vendingMachineInventory id: TankDispenserEngineeringInventory diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index e70e93732f..b0b7810e19 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -2,7 +2,7 @@ id: ChameleonSet name: thief-backpack-category-chameleon-name description: thief-backpack-category-chameleon-description - sprite: + sprite: sprite: /Textures/Clothing/OuterClothing/Misc/black_hoodie.rsi state: icon content: @@ -20,7 +20,7 @@ id: ToolsSet name: thief-backpack-category-tools-name description: thief-backpack-category-tools-description - sprite: + sprite: sprite: Objects/Tools/jaws_of_life.rsi state: jaws_pry content: @@ -67,7 +67,7 @@ id: SleeperSet name: thief-backpack-category-sleeper-name description: thief-backpack-category-sleeper-description - sprite: + sprite: sprite: Objects/Tanks/anesthetic.rsi state: icon content: @@ -84,9 +84,14 @@ id: CommunicatorSet name: thief-backpack-category-communicator-name description: thief-backpack-category-communicator-description - sprite: + sprite: sprite: Objects/Tools/spy_device.rsi state: icon + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman content: - EncryptionKeyStationMaster - CyberPen @@ -94,12 +99,30 @@ - BriefcaseThiefBribingBundleFilled - ClothingMaskGasVoiceChameleon #- todo Chameleon Stamp - + +- type: thiefBackpackSet + id: CommunicatorSetPlasmaman + name: thief-backpack-category-communicator-plasmaman-name + description: thief-backpack-category-communicator-plasmaman-description + sprite: + sprite: Objects/Tools/spy_device.rsi + state: icon + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + content: + - EncryptionKeyStationMaster + - CyberPen + - SpyCrewMonitor + - BriefcaseThiefBribingBundlePlasmamanFilled + - ClothingMaskGasVoiceChameleon + - type: thiefBackpackSet id: SmugglerSet name: thief-backpack-category-smuggler-name description: thief-backpack-category-smuggler-description - sprite: + sprite: sprite: Clothing/Neck/Cloaks/void.rsi state: icon content: diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index ca196b3ec0..64e3eba5aa 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -815,6 +815,27 @@ Telecrystal: 4 categories: - UplinkDeception + conditions: + - !type:BuyerSpeciesCondition + blacklist: + - Plasmaman + +- type: listing + id: UplinkBribePlasmaman + name: uplink-bribe-plasmaman-name + description: uplink-bribe-plasmaman-desc + productEntity: BriefcaseSyndieLobbyingBundlePlasmamanFilled + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 2 + cost: + Telecrystal: 4 + categories: + - UplinkDeception + conditions: + - !type:BuyerSpeciesCondition + whitelist: + - Plasmaman # - type: listing # id: UplinkGigacancerScanner @@ -833,8 +854,6 @@ icon: { sprite: /Textures/Objects/Tools/Decoys/operative_decoy.rsi, state: folded } productEntity: ClothingBackpackDuffelSyndicateDecoyKitFilled discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 3 cost: Telecrystal: 1 categories: @@ -1612,8 +1631,6 @@ description: uplink-syndicate-stamp-desc productEntity: RubberStampSyndicate discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 cost: Telecrystal: 1 categories: diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml index d679deee4c..0554567366 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml @@ -33,3 +33,7 @@ id: LoadoutHandsGlovesFingerlessWhite - type: loadout id: LoadoutHandsGlovesEvening + - type: loadout + id: LoadoutHandsGlovesEnviroglovesColor + - type: loadout + id: LoadoutHandsGlovesEnviroglovesEvening diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml index 73dc17449b..4c8527858a 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml @@ -361,3 +361,67 @@ id: LoadoutUniformJumpsuitFlannelKhakis - type: loadout id: LoadoutUniformJumpsuitFlannelBlackKhakis + - type: loadout + id: LoadoutUniformEnvirosuit + - type: loadout + id: LoadoutUniformEnvirosuitBlackPink + - type: loadout + id: LoadoutUniformEnvirosuitBlackPinkAlt + - type: loadout + id: LoadoutUniformEnvirosuitMartialGi + - type: loadout + id: LoadoutUniformEnvirosuitSafari + - type: loadout + id: LoadoutUniformEnvirosuitTrans + - type: loadout + id: LoadoutUniformEnvirosuitAncientVoid + - type: loadout + id: LoadoutUniformEnvirosuitColorWhite + - type: loadout + id: LoadoutUniformEnvirosuitColorGrey + - type: loadout + id: LoadoutUniformEnvirosuitColorBlack + - type: loadout + id: LoadoutUniformEnvirosuitColorRed + - type: loadout + id: LoadoutUniformEnvirosuitColorGreen + - type: loadout + id: LoadoutUniformEnvirosuitColorDarkGreen + - type: loadout + id: LoadoutUniformEnvirosuitColorBlue + - type: loadout + id: LoadoutUniformEnvirosuitColorDarkBlue + - type: loadout + id: LoadoutUniformEnvirosuitColorTeal + - type: loadout + id: LoadoutUniformEnvirosuitColorMaroon + - type: loadout + id: LoadoutUniformEnvirosuitColorPink + - type: loadout + id: LoadoutUniformEnvirosuitColorYellow + - type: loadout + id: LoadoutUniformEnvirosuitColorPurple + - type: loadout + id: LoadoutUniformEnvirosuitColorOrange + - type: loadout + id: LoadoutUniformEnvirosuitColorLightBrown + - type: loadout + id: LoadoutUniformEnvirosuitColorBrown + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacks + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksNegative + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorRed + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorOrange + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorGreen + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBlue + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBrown + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNK + - type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNKAlt diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml index c8beb22b39..05267c4e1a 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml @@ -41,6 +41,18 @@ id: Marish - type: trait id: Mouse + - type: trait + id: Azaziba + - type: trait + id: SiikMaas + - type: trait + id: NalRasan + - type: trait + id: SiikTajr + - type: trait + id: YaSsa + - type: trait + id: Delvahii - type: characterItemGroup id: TraitsAccents diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml index cc1e82ceb6..b08afa9252 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml @@ -134,3 +134,12 @@ id: LoadoutItemPetMothroach - type: loadout id: LoadoutItemPetCockroach + +- type: characterItemGroup + id: LoadoutCards + maxItems: 1 + items: + - type: loadout + id: LoadoutItemBlackDeck + - type: loadout + id: LoadoutItemNTDeck diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml index 3bd4172dd2..aca3f2e5fc 100644 --- a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml @@ -75,3 +75,5 @@ id: LoadoutCourierUniformMailSuit - type: loadout id: LoadoutCourierUniformMailSkirt + - type: loadout + id: LoadoutCourierUniformEnvirosuitMailCarrier diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml index c2aa975be5..4912033f6d 100644 --- a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml @@ -234,3 +234,7 @@ id: LoadoutUniformJumpsuitSecFormal - type: loadout id: LoadoutUniformJumpsuitSecSummer + - type: loadout + id: LoadoutSecurityUniformEnvirosuitBlue + - type: loadout + id: LoadoutSecurityUniformEnvirosuitGrey diff --git a/Resources/Prototypes/Chemistry/metabolizer_types.yml b/Resources/Prototypes/Chemistry/metabolizer_types.yml index 80f69893c6..3812613584 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 3cc2bb4fd7..86a6fab9c5 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -372,6 +372,18 @@ Shock: 1.25 Radiation: 1.3 +- type: damageModifierSet + id: Plasmaman + coefficients: + Blunt: 1.5 + Slash: 0.85 + Piercing: 0.75 + Cold: 0 + Heat: 1.5 + Poison: 0.8 + Radiation: 0 + Bloodloss: 0.0 # Immune to weapons that directly deal bloodloss damage + - type: damageModifierSet id: DermalArmor coefficients: diff --git a/Resources/Prototypes/Datasets/Names/plasmaman.yml b/Resources/Prototypes/Datasets/Names/plasmaman.yml new file mode 100644 index 0000000000..3e12b9e379 --- /dev/null +++ b/Resources/Prototypes/Datasets/Names/plasmaman.yml @@ -0,0 +1,326 @@ +- type: dataset + id: names_plasmaman + values: + # Periodic table elements + - Actinium + - Aluminium + - Americium + - Antimony + - Argon + - Arsenic + - Astatine + - Barium + - Berkelium + - Beryllium + - Bismuth + - Bohrium + - Boron + - Bromine + - Cadmium + - Caesium + - Calcium + - Californium + - Carbon + - Cerium + - Chlorine + - Chromium + - Cobalt + - Copernicium + - Copper + - Curium + - Darmstadtium + - Dubnium + - Dysprosium + - Einsteinium + - Erbium + - Europium + - Fermium + - Flerovium + - Fluorine + - Francium + - Gadolinium + - Gallium + - Germanium + - Gold + - Hafnium + - Hassium + - Helium + - Holmium + - Hydrogen + - Indium + - Iodine + - Iridium + - Iron + - Krypton + - Lanthanum + - Lawrencium + - Lead + - Lithium + - Livermorium + - Lutetium + - Magnesium + - Manganese + - Meitnerium + - Mendelevium + - Mercury + - Molybdenum + - Moscovium + - Neodymium + - Neon + - Neptunium + - Nickel + - Nihonium + - Niobium + - Nitrogen + - Nobelium + - Oganesson + - Osmium + - Oxygen + - Palladium + - Phosphorus + - Platinum + - Plutonium + - Polonium + - Potassium + - Praseodymium + - Promethium + - Protactinium + - Radium + - Radon + - Rhenium + - Rhodium + - Roentgenium + - Rubidium + - Ruthenium + - Rutherfordium + - Samarium + - Scandium + - Seaborgium + - Selenium + - Silicon + - Silver + - Sodium + - Strontium + - Sulfur + - Tantalum + - Technetium + - Tellurium + - Tennessine + - Terbium + - Thallium + - Thorium + - Thulium + - Tin + - Titanium + - Tungsten + - Uranium + - Vanadium + - Xenon + - Ytterbium + - Yttrium + - Zinc + - Zirconium + # Periodic table groups + - Metalloid + - Alkali + - Alkaline + - Triel + - Tetrel + - Chalcogen + - Pnictogen + - Halogen + - Noble + # Periodic table series + - Lanthanide + - Actinide + # Polyatomic cations + - Ammonium + - Hydronium + - Nitronium + - Pyrylium + # Anions + - Hydride + - Oxide + - Fluoride + - Sulfide + - Selenide + - Telluride + - Chloride + - Nitride + - Phospide + - Arsenide + - Bromide + - Iodide + - Azide + - Bisulfide + - Hydroxide + - Acetylide + - Ethoxide + - Cyanide + - Amide + - Phenoxide + - Peroxide + - Superoxide + - Acetylide + # Oxoanions + - Sulfate + - Sulfite + - Phosphate + - Phospite + - Arsenate + - Arsenite + - Nitrate + - Nitrite + - Thiosulfate + - Perchlorate + - Iodate + - Chlorate + - Bromate + - Perbromate + - Chlorite + - Hypochlorite + - Hypobromite + - Carbonate + - Chromate + - Bicarbonate + - Dichromate + - Persulfate + - Pyrosulfite + - Pyrosulfate + - Pyrophosphite + - Pyrophosphate + - Pyroarsenate + - Dicarbonate + - Pyrocarbonate + - Pyroselenite + - Ethanolate + - Benzoate + - Citrate + - Manganate + - Zincate + - Aluminate + - Tungstate + - Orthosilicate + - Metasilicate + - Silicate + - Cyanate + - Thiocyanate + - Permanganate + - Sulfonate + - Isocyanate + - Carbamate + # Anions from organic acids + - Acetate + - Formate + - Oxalate + - Propionate + - Butyrate + - Malate + # Isotopes + - Protium + - Deuterium + - Tritium + - Uranium-235 + - Uranium-238 + - Radon-222 + - Thorium-232 + # Compounds + - Ammonia + - Methane + - Glucose + - Ethanol + - Formaldehyde + - Acetylene + - Toluene + # SS14 chemicals + - Bananium + - Fresium + - Carpetium + - Razorium + - Artifexium + - Barozine + - Frezon + - Phlogiston + - Licoxide + - Lipolicide + - Tazinide + - Lotophagoi + - Vestine + - Thermite + - Saxoite + - Sigynate + - Nocturine + - Impedrezene + - Ephedrine + # Skeleton names from skeleton_first.yml - double weight + - Sternum + - Sternum + - Ribs + - Ribs + - Vertebrae + - Vertebrae + - Sacrum + - Sacrum + - Mandible + - Mandible + - Clavicle + - Clavicle + - Scapula + - Scapula + - Humerus + - Humerus + - Radius + - Radius + - Ulna + - Ulna + - Carpals + - Carpals + - Phalanges + - Phalanges + - Pelvis + - Pelvis + - Femur + - Femur + - Tibia + - Tibia + - Fibula + - Fibula + - Marrow + - Marrow + - Tarsals + - Tarsals + - Patella + - Patella + - Tailbone + - Tailbone + - Rib + - Rib + - Hyoid + - Hyoid + - Coccyx + - Coccyx + - Tarsus + - Tarsus + - Lacrimal + - Lacrimal + - Bone + - Bone + # Bonus Skeleton names + - Skull + - Skull + - Maxilla + - Maxilla + - Zygomatic + - Zygomatic + - Malleus + - Malleus + - Incus + - Incus + - Stapes + - Stapes + - Metacarpals + - Metacarpals + - Metatarsals + - Metatarsals + - Ribs + - Ribs diff --git a/Resources/Prototypes/DeltaV/Actions/types.yml b/Resources/Prototypes/DeltaV/Actions/types.yml index 560b6020dc..3be0c99023 100644 --- a/Resources/Prototypes/DeltaV/Actions/types.yml +++ b/Resources/Prototypes/DeltaV/Actions/types.yml @@ -9,3 +9,15 @@ icon: DeltaV/Interface/Actions/mouthStorageOpen.png event: !type:OpenStorageImplantEvent +- type: entity + id: ActionChitzite + name: Cough Up Chitzite + description: Purge the excess radiation build-up from your body by expelling it as a mass of toxic material. + components: + - type: InstantAction + charges: 0 + enabled: false + maxCharges: 1 + icon: { sprite: DeltaV/Objects/Specific/Species/chitinid.rsi, state: chitzite } + useDelay: 300 + event: !type:ChitziteActionEvent diff --git a/Resources/Prototypes/DeltaV/Body/Organs/chitinid.yml b/Resources/Prototypes/DeltaV/Body/Organs/chitinid.yml new file mode 100644 index 0000000000..38a0e0b221 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Organs/chitinid.yml @@ -0,0 +1,33 @@ +- type: entity + id: OrganChitinidStomach + parent: [OrganAnimalStomach, OrganHumanStomach] + name: stomach + description: "Gross. This is hard to stomach." + components: + - type: Organ # Shitmed Change + slotId: stomach # Shitmed Change + - type: Sprite + state: stomach + - type: Item + size: Small + heldPrefix: stomach + - type: SolutionContainerManager + solutions: + stomach: + maxVol: 50 + food: + maxVol: 5 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 + - type: Stomach + # The stomach metabolizes stuff like foods and drinks. + # TODO: Have it work off of the ent's solution container, and move this + # to intestines instead. + - type: Metabolizer + # mm yummy + maxReagents: 3 + metabolizerTypes: [Human] + groups: + - id: Food + - id: Drink diff --git a/Resources/Prototypes/DeltaV/Body/Parts/chitinid.yml b/Resources/Prototypes/DeltaV/Body/Parts/chitinid.yml new file mode 100644 index 0000000000..507ba70f48 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Parts/chitinid.yml @@ -0,0 +1,112 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartChitinidBase + parent: [BaseItem, BasePart] + name: "Chitinid body part" + abstract: true + components: + - type: Sprite + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoChitinid + name: "chitinid torso" + parent: [PartChitinidBase, BaseTorso] + components: + - type: Sprite + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + + +- type: entity + id: HeadChitinid + name: "chitinid head" + parent: [PartChitinidBase, BaseHead] + components: + - type: Sprite + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmChitinid + name: "left chitinid arm" + parent: [PartChitinidBase, BaseLeftArm] + components: + - type: Sprite + state: "l_arm" + +- type: entity + id: RightArmChitinid + name: "right chitinid arm" + parent: [PartChitinidBase, BaseRightArm] + components: + - type: Sprite + state: "r_arm" + +- type: entity + id: LeftHandChitinid + name: "left chitinid hand" + parent: [PartChitinidBase, BaseLeftHand] + components: + - type: Sprite + state: "l_hand" + +- type: entity + id: RightHandChitinid + name: "right chitinid hand" + parent: [PartChitinidBase, BaseRightHand] + components: + - type: Sprite + state: "r_hand" + +- type: entity + id: LeftLegChitinid + name: "left chitinid leg" + parent: [PartChitinidBase, BaseLeftLeg] + components: + - type: Sprite + state: "l_leg" + +- type: entity + id: RightLegChitinid + name: "right chitinid leg" + parent: [PartChitinidBase, BaseRightLeg] + components: + - type: Sprite + state: "r_leg" + +- type: entity + id: LeftFootChitinid + name: "left chitinid foot" + parent: [PartChitinidBase, BaseLeftFoot] + components: + - type: Sprite + state: "l_foot" + +- type: entity + id: RightFootChitinid + name: "right chitinid foot" + parent: [PartChitinidBase, BaseRightFoot] + components: + - type: Sprite + state: "r_foot" diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/chitinid.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/chitinid.yml new file mode 100644 index 0000000000..18428a67a6 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/chitinid.yml @@ -0,0 +1,49 @@ +- type: body + id: Chitinid + name: "chitinid" + root: torso + slots: + head: + part: HeadChitinid + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganHumanEyes + torso: + part: TorsoChitinid + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganChitinidStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + connections: + - right arm + - left arm + - right leg + - left leg + right arm: + part: RightArmChitinid + connections: + - right hand + left arm: + part: LeftArmChitinid + connections: + - left hand + right hand: + part: RightHandChitinid + left hand: + part: LeftHandChitinid + right leg: + part: RightLegChitinid + connections: + - right foot + left leg: + part: LeftLegChitinid + connections: + - left foot + right foot: + part: RightFootChitinid + left foot: + part: LeftFootChitinid diff --git a/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml b/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml index 4e1cfaeec0..22cdd202d1 100644 --- a/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml +++ b/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml @@ -17,3 +17,12 @@ Blunt: 1.3 Slash: 1.15 Piercing: 1.15 + +- type: damageModifierSet + id: Chitinid + coefficients: + Blunt: 1.15 + Piercing: 1.25 + Slash: 0.9 + Cold: 1.1 + Radiation: 0.2 diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_female.yml b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_female.yml new file mode 100644 index 0000000000..be91ea3150 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_female.yml @@ -0,0 +1,34 @@ +- type: dataset + id: NamesChitinidFirstFemale + values: + - Amer'ix + - An'bela + - An'ora + - Aza'ran + - Be'riah + - Bel'os + - Da'lrah + - Di'azo + - E'nzo + - Em'era + - Fi'n'rah + - He'teka + - Ir'iska + - Ish'kar + - Isha'ba + - Jes'sri'ka + - Kalz'za + - Kaz'zek + - Lot'tikz + - Ral'zol + - Ri'isano + - Talzz'ark + - Tess'ara + - Tez'mal'zar + - Thri'kis + - Vani'si'kar + - Ve'rai + - Vish'ra + - Zan'ova + - Zen'ofi + - Zzer'ak diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_male.yml b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_male.yml new file mode 100644 index 0000000000..355f5cffb9 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/chitinid_first_male.yml @@ -0,0 +1,36 @@ +- type: dataset + id: NamesChitinidFirstMale + values: + - Al'vos + - Amue'val + - Barma'tos + - Ben'idar + - Bil'verrok + - Crik'xis + - Daru'nta + - Dee'aldas + - Drx'var + - Hen'sra + - Hux'von + - Ilv'imon + - Is'irax + - Ish'nax + - Jax'zaril'va + - L'ofa + - Lo'zok + - Lu'vurx + - Luc'irax + - Mer'tex + - Od'dalis + - Si'ley + - Sim'sker + - Tal'vos + - Ti'ril + - Vir'lker + - Vir'muel + - Vix'vol + - Von'draz + - Vu'lta'voss + - Xixa'ba + - Yarr'wat + - Zay'zz diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml index 6e9913aa11..f39a0598f2 100644 --- a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml @@ -28,17 +28,9 @@ description: ghost-role-information-listeningop-description rules: ghost-role-information-listeningop-rules requirements: # Worth considering these numbers for the goal of making sure someone willing to MRP takes this. - - !type:CharacterOverallTimeRequirement - min: 259200 # 72 hours - !type:CharacterDepartmentTimeRequirement department: Security min: 40000 # 11.1 hours - - !type:CharacterDepartmentTimeRequirement - department: Civilian - min: 40000 # 11.1 hours - - !type:CharacterDepartmentTimeRequirement - department: Command - min: 40000 # 11.1 hours - type: GhostRoleMobSpawner prototype: MobHumanSyndicateListener - type: Sprite diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/chitinid.yml new file mode 100644 index 0000000000..a8644a4e07 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/chitinid.yml @@ -0,0 +1,458 @@ +# Antennas +- type: marking + id: ChitinidAntennasDefault + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: default + +- type: marking + id: ChitinidAntennasCurly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: curly + +- type: marking + id: ChitinidAntennasGray + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: gray + +- type: marking + id: ChitinidAntennasSlick + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: slick + +- type: marking + id: ChitinidAntennasLong + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: long + +- type: marking + id: ChitinidAntennasBee + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: bee + +- type: marking + id: ChitinidAntennasShort + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: short + +- type: marking + id: ChitinidAntennasFirefly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: firefly_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: firefly_secondary + +- type: marking + id: ChitinidAntennasRadar + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: radar + +- type: marking + id: ChitinidAntennasSpeed + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi + state: speed + + +# Wings +- type: marking + id: ChitinidWingsDefault + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: default + +- type: marking + id: ChitinidWingsSmooth + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: smooth + +- type: marking + id: ChitinidWingsHoneypot + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: honeypot_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: honeypot_secondary + +- type: marking + id: ChitinidWingsStubby + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: stubby + +- type: marking + id: ChitinidWingsBee + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: bee_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: bee_secondary + +- type: marking + id: ChitinidWingsFirefly + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: firefly_primary + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi + state: firefly_secondary + +# Body markings: +# Charred +- type: marking + id: ChitinidChestCharred + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_chest + +- type: marking + id: ChitinidHeadCharred + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_head + +- type: marking + id: ChitinidLLegCharred + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_l_leg + +- type: marking + id: ChitinidRLegCharred + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_r_leg + +- type: marking + id: ChitinidLArmCharred + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_l_arm + +- type: marking + id: ChitinidRArmCharred + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: charred_r_arm + +# Plated +- type: marking + id: ChitinidChestPlated + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: plated_chest + +- type: marking + id: ChitinidLArmPlated + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: plated_l_arm + +- type: marking + id: ChitinidRArmPlated + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: plated_r_arm + +# Stripes +- type: marking + id: ChitinidChestStripes + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_chest + +- type: marking + id: ChitinidHeadStripes + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_head + +- type: marking + id: ChitinidLLegStripes + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_l_leg + +- type: marking + id: ChitinidRLegStripes + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_r_leg + +- type: marking + id: ChitinidLArmStripes + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_l_arm + +- type: marking + id: ChitinidRArmStripes + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: stripes_r_arm + +# Radiant +- type: marking + id: ChitinidChestRadiant + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_chest + +- type: marking + id: ChitinidHeadRadiant + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_head + +- type: marking + id: ChitinidLLegRadiant + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_l_leg + +- type: marking + id: ChitinidRLegRadiant + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_r_leg + +- type: marking + id: ChitinidLArmRadiant + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_l_arm + +- type: marking + id: ChitinidRArmRadiant + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: radiant_r_arm + +# Toxic +- type: marking + id: ChitinidChestToxic + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_chest + +- type: marking + id: ChitinidHeadToxic + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_head + +- type: marking + id: ChitinidLLegToxic + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_l_leg + +- type: marking + id: ChitinidRLegToxic + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_r_leg + +- type: marking + id: ChitinidLArmToxic + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_l_arm + +- type: marking + id: ChitinidRArmToxic + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: toxic_r_arm + +# Spotted +- type: marking + id: ChitinidChestSpotted + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_chest + +- type: marking + id: ChitinidHeadSpotted + bodyPart: Head + markingCategory: Head + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_head + +- type: marking + id: ChitinidLLegSpotted + bodyPart: LLeg + markingCategory: LeftLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_l_leg + +- type: marking + id: ChitinidRLegSpotted + bodyPart: RLeg + markingCategory: RightLeg + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_r_leg + +- type: marking + id: ChitinidLArmSpotted + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_l_arm + +- type: marking + id: ChitinidRArmSpotted + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Chitinid] + sprites: + - sprite: DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi + state: spotted_r_arm diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml index f11b7f04d4..b50ca1d77e 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml @@ -2,7 +2,7 @@ id: FelinidFluffyTailRings bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid, Human, IPC] + speciesRestriction: [Felinid, Human, IPC, Tajaran] sprites: - sprite: DeltaV/Mobs/Customization/Felinid/felinid_tails.rsi state: Felinid_fluffy_tail_full @@ -13,7 +13,7 @@ id: FelinidFluffyTail bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid, Human, IPC] + speciesRestriction: [Felinid, Human, IPC, Tajaran] sprites: - sprite: DeltaV/Mobs/Customization/Felinid/felinid_tails.rsi state: Felinid_fluffy_tail_full @@ -22,7 +22,7 @@ id: FelinidAlternativeTail bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid, Human, IPC] + speciesRestriction: [Felinid, Human, IPC, Tajaran] sprites: - sprite: DeltaV/Mobs/Customization/Felinid/alternative_tail.rsi state: m_waggingtail_cat_FRONT diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/hair.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/hair.yml index 51cba35429..c929b854ff 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/hair.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/hair.yml @@ -77,19 +77,3 @@ sprites: - sprite: DeltaV/Mobs/Customization/hair.rsi state: classic_long - -- type: marking - id: HumanHairClassicLong2 - bodyPart: Hair - markingCategory: Hair - sprites: - - sprite: DeltaV/Mobs/Customization/hair.rsi - state: classic_long2 - -- type: marking - id: HumanHairClassicLong3 - bodyPart: Hair - markingCategory: Hair - sprites: - - sprite: DeltaV/Mobs/Customization/hair.rsi - state: classic_long3 diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/chitinid.yml new file mode 100644 index 0000000000..4c8a784731 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/chitinid.yml @@ -0,0 +1,5 @@ +- type: entity + save: false + name: Urist McAnt + parent: BaseMobChitinid + id: MobChitinid diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml new file mode 100644 index 0000000000..2dfd110184 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml @@ -0,0 +1,169 @@ +- type: entity + save: false + name: Urist McAnt + parent: BaseMobSpeciesOrganic + id: BaseMobChitinid + abstract: true + components: + - type: HumanoidAppearance + species: Chitinid + hideLayersOnEquip: + - HeadTop + + - type: Hunger + baseDecayRate: 0.0467 #needs to eat more to survive + - type: Thirst + + - type: UnpoweredFlashlight + - type: PointLight + enabled: false + radius: 3 + softness: 5 + color: "#2CFA1F" + autoRot: true + + - type: Carriable + + - type: Icon + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: full + + - type: Body + prototype: Chitinid + requiredLegs: 2 + + - type: Damageable + damageContainer: Biological + damageModifierSet: Chitinid + + - type: Speech + speechVerb: Chitinid + allowedEmotes: ['Chitter', 'Click', 'Hiss'] + + - type: MeleeWeapon + animation: WeaponArcBite + soundHit: + path: /Audio/Effects/bite.ogg + damage: + types: + Piercing: 5 + + + - type: TypingIndicator + proto: Chitinid + + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeat + amount: 5 + + - type: Bloodstream + bloodReagent: InsectBlood + + - type: DamageVisuals + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#808A51" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + + - type: Vocal + sounds: + Male: UnisexChitinid + Female: UnisexChitinid + Unsexed: UnisexChitinid + + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.42 + density: 220 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + + - type: Temperature # Ants hate the cold + heatDamageThreshold: 320 + coldDamageThreshold: 230 + currentTemperature: 310.15 + specificHeat: 46 + coldDamage: + types: + Cold : 1.25 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 1.0 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 289: 0.6 + 275: 0.4 + 250: 0.3 + + - type: Sprite # sprite again because we want different layer ordering + noRot: true + drawdepth: Mobs + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - map: [ "jumpsuit" ] + - map: [ "enum.HumanoidVisualLayers.LHand" ] + - map: [ "enum.HumanoidVisualLayers.RHand" ] + - map: [ "enum.HumanoidVisualLayers.LFoot" ] + - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "id" ] + - map: [ "back" ] + - map: [ "neck" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] #in the utopian future we should probably have a wings enum inserted here so everyhting doesn't break + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_moth" + visible: false + - type: Chitinid + - type: BlockInjection + blockReason: chitinid + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Chittin + understands: + - TauCetiBasic + - Chittin + +- type: entity + parent: BaseSpeciesDummy + id: MobChitinidDummy + categories: [ HideSpawnMenu ] + components: + - type: HumanoidAppearance + species: Chitinid diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index 8f031b05f8..824171e99a 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -167,9 +167,8 @@ animation: WeaponArcBite damage: types: - Piercing: 1 - Poison: 2 - Asphyxiation: 2 + Piercing: 2 + Poison: 3 - type: SolutionContainerManager solutions: melee: diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/chitinid.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/chitinid.yml new file mode 100644 index 0000000000..1e66d4295c --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/chitinid.yml @@ -0,0 +1,33 @@ +- type: entity + parent: BaseItem + id: Chitzite + name: chitzite + description: A small radioactive stone formed in the chest cavity of a radioactive chitinid, gross.... but kinda pretty? + components: + - type: Sprite + sprite: DeltaV/Objects/Specific/Species/chitinid.rsi + layers: + - state: chitzite + - state: chitzite_glow + - type: RadiationSource + intensity: 0.5 + - type: Extractable + grindableSolutionName: chitzite + - type: SolutionContainerManager + solutions: + chitzite: + maxVol: 5 + reagents: + - ReagentId: Uranium + Quantity: 2.5 + - ReagentId: Radium + Quantity: 2.5 + - type: MeleeWeapon + damage: + types: + Blunt: 3 + Radiation: 3 + - type: Tag + tags: + - Recyclable + - Trash diff --git a/Resources/Prototypes/DeltaV/Guidebook/species.yml b/Resources/Prototypes/DeltaV/Guidebook/species.yml index 6e797ce715..7c8ac56c9b 100644 --- a/Resources/Prototypes/DeltaV/Guidebook/species.yml +++ b/Resources/Prototypes/DeltaV/Guidebook/species.yml @@ -2,3 +2,8 @@ id: Rodentia name: species-name-rodentia text: "/ServerInfo/Guidebook/Mobs/DeltaV/Rodentia.xml" + +- type: guideEntry + id: Chitinid + name: species-name-chitinid + text: "/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml" diff --git a/Resources/Prototypes/DeltaV/Objectives/traitor.yml b/Resources/Prototypes/DeltaV/Objectives/traitor.yml index 1ad03ea98f..7b7c81f153 100644 --- a/Resources/Prototypes/DeltaV/Objectives/traitor.yml +++ b/Resources/Prototypes/DeltaV/Objectives/traitor.yml @@ -43,3 +43,34 @@ - type: StealCondition stealGroup: BoxFolderRdClipboard # owner: job-name-rd + +# teach lesson +- type: entity + abstract: true + parent: BaseTargetObjective + id: BaseTeachLessonObjective + components: + - type: Objective + unique: false + icon: + sprite: Objects/Weapons/Guns/Pistols/viper.rsi + state: icon + - type: TeachLessonCondition + - type: CodeCondition + - type: ObjectiveBlacklistRequirement + blacklist: + components: + - SocialObjective + +- type: entity + parent: [BaseTraitorObjective, BaseTeachLessonObjective] + id: TeachLessonRandomPersonObjective + description: Kill them, and show everyone we mean business. They only need to die once. + components: + - type: Objective + difficulty: 1.75 + unique: false + - type: TargetObjective + title: objective-condition-teach-person-title + - type: PickRandomPerson + - type: TeachLessonCondition diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml index 6785e74acb..0b8a4bd11f 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml @@ -1,5 +1,7 @@ - type: startingGear id: CourierGear + subGear: + - CourierPlasmamanGear equipment: head: ClothingHeadCourier jumpsuit: ClothingUniformCourier @@ -11,3 +13,11 @@ innerClothingSkirt: ClothingUniformSkirtCourier satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: CourierPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCourier + head: ClothingHeadEnvirohelmCourier + gloves: ClothingHandsGlovesEnviroglovesCargo diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml index a69af3353d..03efbd1755 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml @@ -38,9 +38,19 @@ - type: startingGear id: AdminAssistantGear + subGear: + - AdminAssistantPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitAdminAssistant id: AdminAssistantPDA ears: ClothingHeadsetAdminAssist shoes: ClothingShoesLeather innerClothingSkirt: ClothingUniformJumpskirtAdminAssistant + +- type: startingGear + id: AdminAssistantPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitAdminAssistant + head: ClothingHeadEnvirohelmAdminAssistant + gloves: ClothingHandsGlovesEnviroglovesAdminAssistant diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml index db5e717a01..af0bca2ea0 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Fun/misc_startinggear.yml @@ -55,6 +55,8 @@ - type: startingGear id: SyndicateListenerGear + subGear: + - SyndicatePlasmamanGear # TODO: syndicate listener enviropyjamas equipment: jumpsuit: ClothingUniformJumpsuitPyjamaSyndicateBlack head: ClothingHeadPyjamaSyndicateBlack diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml index 448c6542bb..2f6a0ca578 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/chief_justice.yml @@ -37,6 +37,8 @@ - type: startingGear id: CJGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChiefJustice back: ClothingBackpackFilled # TODO- make Justice department bags diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml index c2032b67eb..7e4a2ebff0 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/clerk.yml @@ -28,6 +28,8 @@ - type: startingGear id: ClerkGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitClerk back: ClothingBackpackFilled diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml index 7dab2af005..48c18b8457 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Justice/prosecutor.yml @@ -18,6 +18,8 @@ - type: startingGear id: ProsecutorGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitProsecutor neck: ClothingNeckProsecutorbadge diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml index 802ef248f2..ea2bbe305a 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml @@ -31,9 +31,16 @@ - type: CPRTraining - type: SurgerySpeedModifier speedModifier: 2.0 + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CorpsmanGear # see Prototypes/Roles/Jobs/Fun/misc_startinggear.yml for "BrigmedicGear" + subGear: + - CorpsmanPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitBrigmedic outerClothing: ClothingOuterArmorPlateCarrier @@ -48,3 +55,11 @@ innerClothingSkirt: ClothingUniformJumpskirtBrigmedic satchel: ClothingBackpackSatchelBrigmedicFilled duffelbag: ClothingBackpackDuffelBrigmedicFilled + +- type: startingGear + id: CorpsmanPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitBrigmedic + head: ClothingHeadEnvirohelmBrigmedic + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/DeltaV/Species/chitinid.yml b/Resources/Prototypes/DeltaV/Species/chitinid.yml new file mode 100644 index 0000000000..6fa19aa9fe --- /dev/null +++ b/Resources/Prototypes/DeltaV/Species/chitinid.yml @@ -0,0 +1,165 @@ +- type: species + id: Chitinid + name: species-name-chitinid + roundStart: true + prototype: MobChitinid + sprites: MobChitinidSprites + defaultSkinTone: "#ffda93" + markingLimits: MobChitinidMarkingLimits + dollPrototype: MobChitinidDummy + skinColoration: Hues + maleFirstNames: NamesChitinidFirstMale + femaleFirstNames: NamesChitinidFirstFemale + naming: First + +- type: speciesBaseSprites + id: MobChitinidSprites + sprites: + Head: MobChitinidHead + Snout: MobHumanoidAnyMarking + Chest: MobChitinidTorso + HeadTop: MobHumanoidAnyMarking + HeadSide: MobHumanoidAnyMarking + Tail: MobHumanoidAnyMarking + Eyes: MobChitinidEyes + LArm: MobChitinidLArm + RArm: MobChitinidRArm + LHand: MobChitinidLHand + RHand: MobChitinidRHand + LLeg: MobChitinidLLeg + RLeg: MobChitinidRLeg + LFoot: MobChitinidLFoot + RFoot: MobChitinidRFoot + +- type: humanoidBaseSprite + id: MobChitinidEyes + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: eyes + +- type: markingPoints + id: MobChitinidMarkingLimits + onlyWhitelisted: true + points: + Hair: + points: 0 + required: false + FacialHair: + points: 0 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ ChitinidWingsDefault ] + Snout: + points: 1 + required: false + HeadTop: + points: 1 + required: true + defaultMarkings: [ ChitinidAntennasDefault ] + HeadSide: + points: 1 + required: false + Head: + points: 1 + required: false + Chest: + points: 1 + required: false + LeftLeg: + points: 2 + required: false + RightLeg: + points: 2 + required: false + LeftArm: + points: 2 + required: false + RightArm: + points: 2 + required: false + +- type: humanoidBaseSprite + id: MobChitinidHead + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobChitinidHeadMale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobChitinidHeadFemale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobChitinidTorso + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobChitinidTorsoMale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobChitinidTorsoFemale + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobChitinidLLeg + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobChitinidLHand + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobChitinidLArm + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobChitinidLFoot + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobChitinidRLeg + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobChitinidRHand + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobChitinidRArm + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobChitinidRFoot + baseSprite: + sprite: DeltaV/Mobs/Species/Chitinid/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml b/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml index 0692dbebc8..134d5b5b02 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_emote_sounds.yml @@ -218,3 +218,33 @@ collection: Weh Squeak: path: /Audio/Animals/mouse_squeak.ogg + Hiss: + path: /Audio/Animals/snake_hiss.ogg + +- type: emoteSounds + id: UnisexChitinid + params: + variation: 0.125 + sounds: + Buzz: + path: /Audio/DeltaV/Voice/Chitinid/moth_scream.ogg + Scream: + path: /Audio/Voice/Arachnid/arachnid_scream.ogg + Laugh: + path: /Audio/DeltaV/Voice/Chitinid/moth_laugh.ogg + Chitter: + path: /Audio/Voice/Arachnid/arachnid_chitter.ogg + Click: + path: /Audio/Voice/Arachnid/arachnid_click.ogg + Crying: + collection: FemaleCry + Weh: + collection: Weh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + Yawn: + collection: MaleYawn + Hiss: + path: /Audio/Animals/snake_hiss.ogg diff --git a/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml b/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml index 89db03d2fc..0d6a3b7e0e 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_sounds.yml @@ -15,3 +15,12 @@ path: /Audio/DeltaV/Voice/Harpy/chirp1.ogg exclaimSound: path: /Audio/DeltaV/Voice/Harpy/chirp1.ogg + +- type: speechSounds + id: Chitinid + saySound: + path: /Audio/Voice/Talk/speak_1.ogg + askSound: + path: /Audio/Voice/Talk/speak_1_ask.ogg + exclaimSound: + path: /Audio/Voice/Talk/speak_1_exclaim.ogg \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml b/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml index a712223b1d..e5c4b72724 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_verbs.yml @@ -33,3 +33,12 @@ - chat-speech-verb-rodentia-2 - chat-speech-verb-rodentia-3 - chat-speech-verb-rodentia-4 + +- type: speechVerb + id: Chitinid + name: chat-speech-verb-name-chitinid + speechVerbStrings: + - chat-speech-verb-chitinid-1 + - chat-speech-verb-chitinid-2 + - chat-speech-verb-chitinid-3 + - chat-speech-verb-chitinid-4 diff --git a/Resources/Prototypes/DeltaV/typing_indicator.yml b/Resources/Prototypes/DeltaV/typing_indicator.yml index 42cf895bd6..7085e0fcb4 100644 --- a/Resources/Prototypes/DeltaV/typing_indicator.yml +++ b/Resources/Prototypes/DeltaV/typing_indicator.yml @@ -9,3 +9,9 @@ spritePath: /Textures/DeltaV/Effects/speech.rsi typingState: rodentia0 offset: 0, 0.2 # 0625 + +- type: typingIndicator + id: Chitinid + spritePath: /Textures/DeltaV/Effects/speech.rsi + typingState: chitinid0 + offset: -0.2, 0.1 # 0625 diff --git a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml index 02cf0ab6f6..a00bab327d 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml @@ -44,3 +44,17 @@ - type: Fiber fiberMaterial: fibers-synthetic - type: FingerprintMask + +- type: entity + parent: ClothingHandsGlovesSyntheticBase + abstract: true + id: ClothingHandsGlovesEnviroglovesBase + components: + - type: Armor + modifiers: + coefficients: + Caustic: 0.95 + - type: IgniteFromGasImmunity + parts: + - LeftHand + - RightHand diff --git a/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml new file mode 100644 index 0000000000..656bae9e95 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Hands/envirogloves.yml @@ -0,0 +1,655 @@ +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnvirogloves + name: plasma envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#913b00" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#913b00" + right: + - state: inhand-right + color: "#913b00" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#913b00" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesBlack + name: black envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#2f2e31" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#2f2e31" + right: + - state: inhand-right + color: "#2f2e31" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#2f2e31" + - type: Fiber + fiberColor: fibers-black + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesNitrile + name: nitrile envirogloves + description: Pricy nitrile gloves made for Plasmamen. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#234f60" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#234f60" + right: + - state: inhand-right + color: "#234f60" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#234f60" + - type: Fiber + fiberMaterial: fibers-nitrile + - type: FingerprintMask + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesWhite + name: white envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#ffffff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + right: + - state: inhand-right + color: "#ffffff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#ffffff" + - type: Fiber + fiberColor: fibers-white + +- type: entity + parent: ClothingHandsGlovesEnviroglovesWhite + id: ClothingHandsGlovesEnviroglovesColor + name: envirogloves + description: Covers up those scandalous boney hands. + suffix: Loadouts, Colorable + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesEvening + name: evening envirogloves + description: Who said Plasmamen can't serve elegance and looks? + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/evening_gloves.rsi + - type: Clothing + sprite: Clothing/Hands/Gloves/evening_gloves.rsi + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesRoboticist + name: roboticist envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#932500" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#932500" + right: + - state: inhand-right + color: "#932500" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#932500" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesJanitor + name: janitor envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#883391" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#883391" + right: + - state: inhand-right + color: "#883391" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#883391" + - type: Fiber + fiberColor: fibers-purple + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesCargo + name: logistics envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#bb9042" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#bb9042" + right: + - state: inhand-right + color: "#bb9042" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#bb9042" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesEngineering + name: engineering envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#d75600" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#d75600" + right: + - state: inhand-right + color: "#d75600" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#d75600" + - type: Fiber + fiberColor: fibers-orange + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesAtmos + name: atmos envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#00a5ff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#00a5ff" + right: + - state: inhand-right + color: "#00a5ff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#00a5ff" + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesSalvage + name: salvage envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#47453d" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#47453d" + right: + - state: inhand-right + color: "#47453d" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#47453d" + - type: Fiber + fiberColor: fibers-olive + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesLeather + name: hydroponics envirogloves + description: These leather gloves protect your boney hands against thorns, barbs, prickles, and spikes. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#3164ff" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#3164ff" + right: + - state: inhand-right + color: "#3164ff" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#3164ff" + - type: GloveHeatResistance + heatResistance: 1400 + - type: Fiber + fiberMaterial: fibers-leather + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesPrototype + name: prototype envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#911801" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#911801" + right: + - state: inhand-right + color: "#911801" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#911801" + - type: Fiber + fiberColor: fibers-red + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesClown + name: clown envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#ff0000" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#ff0000" + right: + - state: inhand-right + color: "#ff0000" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#ff0000" + - type: Fiber + fiberColor: fibers-red + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesHoP + name: head of personnel's envirogloves + description: Covers up those scandalous, bony hands. Appears to be an attempt at making a replica of the captain's gloves. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Envirogloves/hop.rsi + layers: + - state: icon + - type: Item + sprite: Clothing/Hands/Gloves/Envirogloves/hop.rsi + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + - type: Clothing + sprite: Clothing/Hands/Gloves/Envirogloves/hop.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesChiefEngineer + name: chief engineer's envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#45ff00" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#45ff00" + right: + - state: inhand-right + color: "#45ff00" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#45ff00" + - type: Fiber + fiberColor: fibers-green + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesResearchDirector + name: research director's envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#64008a" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#64008a" + right: + - state: inhand-right + color: "#64008a" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#64008a" + - type: Fiber + fiberColor: fibers-purple + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesPurple + name: purple envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#a349a4" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#a349a4" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#a349a4" + - type: Fiber + fiberColor: fibers-purple + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesAdminAssistant + name: administrative assistant's envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#315266" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#315266" + right: + - state: inhand-right + color: "#315266" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#315266" + - type: Fiber + fiberColor: fibers-blue + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesColorDarkGreen + name: dark green envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#79CC26" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#79CC26" + right: + - state: inhand-right + color: "#79CC26" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#79CC26" + - type: Fiber + fiberColor: fibers-green + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesColorDarkGrey + name: dark grey envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#616161" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#616161" + right: + - state: inhand-right + color: "#616161" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#616161" + - type: Fiber + fiberColor: fibers-grey + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesGladiator + name: gladiator envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#dab13b" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#dab13b" + right: + - state: inhand-right + color: "#dab13b" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#dab13b" + - type: Fiber + fiberColor: fibers-yellow + +- type: entity + parent: ClothingHandsGlovesEnviroglovesBase + id: ClothingHandsGlovesEnviroglovesReporter + name: reporter envirogloves + description: Covers up those scandalous boney hands. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Color/color.rsi + layers: + - state: icon + color: "#79121b" + - type: Item + sprite: Clothing/Hands/Gloves/Color/color.rsi + inhandVisuals: + left: + - state: inhand-left + color: "#79121b" + right: + - state: inhand-right + color: "#79121b" + - type: Clothing + sprite: Clothing/Hands/Gloves/Color/color.rsi + clothingVisuals: + gloves: + - state: equipped-HAND + color: "#79121b" + - type: Fiber + fiberColor: fibers-red diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml index 08a3eb568f..4d791e018e 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml @@ -126,6 +126,9 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.2 + - type: IgniteFromGasImmunity + parts: + - Head - type: IngestionBlocker - type: Clothing #Copies ClothingHeadHardsuitBase behavior @@ -135,6 +138,7 @@ tags: - WhitelistChameleon - HelmetEVA + - PlasmamanSafe - type: IdentityBlocker - type: HideLayerClothing slots: @@ -165,6 +169,9 @@ coefficient: 0.1 - type: FireProtection reduction: 0.2 + - type: IgniteFromGasImmunity + parts: + - Head - type: Armor modifiers: coefficients: @@ -178,12 +185,174 @@ - type: Tag tags: - WhitelistChameleon + - PlasmamanSafe - type: IdentityBlocker - type: HideLayerClothing slots: - Hair - Snout +- type: entity + abstract: true + parent: ClothingHeadBase + id: ClothingHeadEnvirohelmBase + name: base envirosuit helmet + components: + - type: Sprite + layers: + - state: icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + size: Normal + heldPrefix: off + - type: Clothing + equipDelay: 0.4 + unequipDelay: 0.6 # Slightly higher delay to protect against accidental unequips + equippedPrefix: off + clothingVisuals: + head: + - state: equipped-HELMET + - type: IgniteFromGasImmunity + parts: + - Head + - type: Armor + modifiers: + coefficients: + Caustic: 0.90 + - type: EyeProtection + - type: BreathMask + - type: PressureProtection # Same as EVA helmet + highPressureMultiplier: 0.6 + lowPressureMultiplier: 1000 + - type: TemperatureProtection + coefficient: 0.2 + - type: IngestionBlocker + - type: Tag + tags: + - WhitelistChameleon + - Envirohelm + - PlasmamanSafe + - type: HideLayerClothing + slots: + - Hair + - Snout + clothingSlots: + - mask + - type: ToggleableLightVisuals + clothingVisuals: + head: + - state: on-equipped-HELMET + shader: unshaded + - type: PointLight + enabled: false + color: "#ffa1ff" + radius: 4 + energy: 3 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + netsync: false + - type: Appearance + - type: HandheldLight + addPrefix: true + blinkingBehaviourId: blinking + radiatingBehaviourId: radiating + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour + id: radiating + interpolate: Linear + maxDuration: 2.0 + startValue: 3.0 + endValue: 2.0 + isLooped: true + reverseWhenFinished: true + - !type:PulseBehaviour + id: blinking + interpolate: Nearest + maxDuration: 1.0 + minValue: 0.1 + maxValue: 2.0 + isLooped: true + - type: PowerCellSlot + cellSlotId: cell_slot + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMedium + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot {} + - type: GuideHelp # While the playerbase is getting introduced to Plasmamen, add their guidebook here + guides: [ Plasmaman ] + +# When making new custom envirohelms, inherit from this entity and +# replace the color fields on the layers +- type: entity + abstract: true + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCustomBase + name: base custom envirosuit helmet + components: + - type: ToggleableLightVisuals + inhandVisuals: + left: + - state: on-inhand-left + shader: unshaded + right: + - state: on-inhand-right + shader: unshaded + clothingVisuals: + head: + - state: on-equipped-HELMET + shader: unshaded + - type: Sprite + sprite: Clothing/Head/Envirohelms/custom.rsi + layers: + - state: icon + color: "#FFFFFF" + - state: accent-icon + color: "#FF0000" + # - state: midaccent-icon + # color: "#0000FF" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#FFFFFF" + - state: accent-inhand-left + color: "#FF0000" + # - state: midaccent-inhand-left + # color: "#0000FF" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#FFFFFF" + - state: accent-inhand-right + color: "#FF0000" + # - state: midaccent-inhand-right + # color: "#0000FF" + - state: visor-inhand-right + - type: Clothing + sprite: Clothing/Head/Envirohelms/custom.rsi + clothingVisuals: + head: + - state: equipped-HELMET + color: "#FFFFFF" + - state: accent-equipped-HELMET + color: "#FF0000" + # - state: midaccent-equipped-HELMET + # color: "#0000FF" + - state: visor-equipped-HELMET + - type: entity abstract: true parent: ClothingHeadHardsuitBase diff --git a/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml b/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml new file mode 100644 index 0000000000..e051018950 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Head/envirohelms.yml @@ -0,0 +1,2192 @@ +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelm + name: plasma envirosuit helmet + description: A special containment helmet that allows plasma-based lifeforms to exist safely in an oxygenated environment. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/plain.rsi + - type: Item + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + - type: Clothing + sprite: Clothing/Head/Envirohelms/plain.rsi + - type: ToggleableLightVisuals + inhandVisuals: + left: + - state: on-inhand-left + shader: unshaded + right: + - state: on-inhand-right + shader: unshaded + +- type: entity + parent: ClothingHeadEnvirohelm + id: ClothingHeadEnvirohelmEmpty + suffix: Empty + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmAtmos + name: atmospherics envirosuit helmet + description: A space-worthy helmet specially designed for atmos technician Plasmamen, the usual purple stripes being replaced by atmos' blue. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/atmos.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/atmos.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCargo + name: logistics envirosuit helmet + description: A Plasmaman envirohelmet designed for cargo technicians. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/cargo.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/cargo.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCaptain + name: captain's envirosuit helmet + description: A special containment helmet designed for the Captain. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/captain.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/captain.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChiefEngineer + name: chief engineer's envirosuit helmet + description: A special containment helmet designed for the Chief Engineer, the usual purple stripes being replaced by the chief's green. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/ce.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/ce.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChaplain + name: chaplain's envirosuit helmet + description: An envirohelm specially designed for only the most pious of Plasmamen. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/chaplain.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/chaplain.rsi + +- type: entity + parent: ClothingHeadEnvirohelmEnviroslacksColorOrange + id: ClothingHeadEnvirohelmDetective + name: detective's envirosuit helmet + description: A special containment helmet designed for detectives, protecting them from burning alive, alongside other undesirables. + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmChemist + name: chemistry envirosuit helmet + description: A Plasmaman envirosuit designed for chemists, two orange stripes going down its face. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/chemist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/chemist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmClown + name: clown envirosuit helmet + description: The make-up is painted on, it's a miracle it doesn't chip. HONK! + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/clown.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/clown.rsi + - type: PointLight + color: "#a777ff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCMO + name: chief medical officer's envirosuit helmet + description: A special containment helmet designed for the Chief Medical Officer. The gold stripe differentiates them from other medical staff. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/cmo.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/cmo.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmEngineering + name: engineering envirosuit helmet + description: A space-worthy helmet specially designed for engineer Plasmamen, the usual purple stripes being replaced by engineering's orange. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/engineering.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/engineering.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHoP + name: head of personnel's envirosuit helmet + description: A special containment helmet designed for the Head of Personnel. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hop.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hop.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHoS + name: head of security's envirosuit helmet + description: A special containment helmet designed for the Head of Security. The pair of gold stripes differentiates them from other members of security. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hos.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hos.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmHydroponics + name: hydroponics envirosuit helmet + description: A green and blue envirohelmet designating its wearer as a botanist. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/hydroponics.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/hydroponics.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmJanitor + name: janitor envirosuit helmet + description: A grey helmet bearing a pair of purple stripes, designating the wearer as a janitor. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/janitor.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/janitor.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmAncientVoid + name: NTSRA envirosuit helmet + description: Made out of a modified NTSRA vacsuit, this helmet was Nanotrasen's first-designed envirohelmet for Plasmamen. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/ancientvoid.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/ancientvoid.rsi + clothingVisuals: + head: + - state: equipped-HELMET + - state: visor-equipped-HELMET + - type: ToggleableLightVisuals + clothingVisuals: + head: + - state: visor-equipped-HELMET + shader: unshaded + - type: PointLight + color: "#ffffff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmMedicalDoctor + name: medical envirosuit helmet + description: An envirohelmet designed for Plasmaman Medical personnel, having two stripes down its length to denote as much. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/medical.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/medical.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmGenitcs + name: genetics envirosuit helmet + description: A Plasmaman envirohelmet designed for geneticists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/genetics.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/genetics.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmMime + name: mime envirosuit helmet + description: The make-up is painted on, it's a miracle it doesn't chip. It's not very colourful. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/mime.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/mime.rsi + - type: PointLight + color: "#ffffff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmParamedic + name: paramedic envirosuit helmet + description: An envirohelmet designed for Plasmaman paramedics, with darker blue stripes compared to the medical model. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/paramedic.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/paramedic.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmPrisoner + name: prisoner envirosuit helmet + description: A Plasmaman containment helmet for prisoners. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8300" + - state: accent-icon + color: "#3c3c3c" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8300" + - state: accent-inhand-left + color: "#3c3c3c" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ff8300" + - state: accent-inhand-right + color: "#3c3c3c" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ff8300" + - state: accent-equipped-HELMET + color: "#3c3c3c" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmResearchDirector + name: mystagogue's envirosuit helmet + description: A special containment helmet designed for the Mystagogue. A light brown design is applied to differentiate them from other scientists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/rd.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/rd.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmRoboticist + name: roboticist envirosuit helmet + description: A Plasmaman envirohelmet designed for roboticists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/roboticist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/roboticist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmSalvage + name: salvage envirosuit helmet + description: A khaki helmet given to Plasmamen salvage technicians. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/salvage.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/salvage.rsi + - type: PointLight + color: "#c77eff" + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmScientist + name: science envirosuit helmet + description: A Plasmaman envirohelmet designed for scientists. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/scientist.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/scientist.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSec + name: security envirosuit helmet + description: A Plasmaman containment helmet designed for security officers, protecting them from burning alive, alongside other undesirables. + components: + - type: Sprite + layers: + - state: icon + color: "#8f3132" + - state: accent-icon + color: "#2e2e2e" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#8f3132" + - state: accent-inhand-left + color: "#2e2e2e" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#8f3132" + - state: accent-inhand-right + color: "#2e2e2e" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#8f3132" + - state: accent-equipped-HELMET + color: "#2e2e2e" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSecBlue + name: blue security envirosuit helmet + description: A cool blue envirosuit helmet for Plasmaman Security personnel. + components: + - type: Sprite + layers: + - state: icon + color: "#b9c1d9" + - state: accent-icon + color: "#36476b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b9c1d9" + - state: accent-inhand-left + color: "#36476b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#b9c1d9" + - state: accent-inhand-right + color: "#36476b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#b9c1d9" + - state: accent-equipped-HELMET + color: "#36476b" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSecGrey + name: grey security envirosuit helmet + description: A light grey envirosuit helmet with bright red highlights for Plasmamen Security personnel. + components: + - type: Sprite + layers: + - state: icon + color: "#7e7e7e" + - state: accent-icon + color: "#a61d1d" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#7e7e7e" + - state: accent-inhand-left + color: "#a61d1d" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#7e7e7e" + - state: accent-inhand-right + color: "#a61d1d" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#7e7e7e" + - state: accent-equipped-HELMET + color: "#a61d1d" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmVirology + name: virology envirosuit helmet + description: The helmet worn by the safest people on the station, those who are completely immune to the monstrosities they create. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/virology.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/virology.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmWarden + name: warden's envirosuit helmet + description: A Plasmaman containment helmet designed for the warden. A pair of white stripes being added to differeciate them from other members of security. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/warden.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/warden.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmOperative + name: operative envirosuit helmet + description: Anyone wearing this is badass and deserves at least a cursory nod of respect. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/tacticool.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/tacticool.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmTacticool + name: tacticool envirosuit helmet + description: There's no doubt about it, this helmet puts you above ALL of the other Plasmamen. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/tacticool.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/tacticool.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCentcomAgent + name: CentCom agent's envirosuit helmet + description: A special containment helmet designed for CentCom's legal team. You know, so any coffee spills don't kill the poor sod. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/centcom_agent.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/centcom_agent.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCentcomOfficial + name: CentCom official's envirosuit helmet + description: A special containment helmet designed for CentCom Staff. They sure do love their green. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/centcom_official.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/centcom_official.rsi + +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmCentcomOfficer + name: CentCom officer's envirosuit helmet + description: A special containment helmet designed for CentCom Officers. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/centcom_officer.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/centcom_officer.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmCourier + name: courier's envirosuit helmet + description: An envirosuit helmet for the courier. + components: + - type: Sprite + layers: + - state: icon + color: "#4a281f" + - state: accent-icon + color: "#c2911e" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#4a281f" + - state: accent-inhand-left + color: "#c2911e" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#4a281f" + - state: accent-inhand-right + color: "#c2911e" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#4a281f" + - state: accent-equipped-HELMET + color: "#c2911e" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMailCarrier + name: mail carrier's envirosuit helmet + description: Smells like a good pension. + components: + - type: Sprite + layers: + - state: icon + color: "#394dc6" + - state: accent-icon + color: "#dcdcdc" + - state: midaccent-icon + color: "#d82927" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#394dc6" + - state: accent-inhand-left + color: "#dcdcdc" + - state: midaccent-inhand-left + color: "#d82927" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#394dc6" + - state: accent-inhand-right + color: "#dcdcdc" + - state: midaccent-inhand-right + color: "#d82927" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#394dc6" + - state: accent-equipped-HELMET + color: "#dcdcdc" + - state: midaccent-equipped-HELMET + color: "#d82927" + - state: visor-equipped-HELMET + - type: ClothingAddFaction + faction: Mailman + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMusician + name: musician's envirosuit helmet + description: Experts are perplexed as to how Plasmamen can still play the trumpet with this helmet on. + components: + - type: Sprite + layers: + - state: icon + color: "#3c335b" + - state: accent-icon + color: "#f3f5f4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3c335b" + - state: accent-inhand-left + color: "#f3f5f4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3c335b" + - state: accent-inhand-right + color: "#f3f5f4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3c335b" + - state: accent-equipped-HELMET + color: "#f3f5f4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmReporter + name: reporter envirosuit helmet + description: An envirosuit helmet for the reporter. + components: + - type: Sprite + layers: + - state: icon + color: "#112334" + - state: accent-icon + color: "#79121b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#112334" + - state: accent-inhand-left + color: "#79121b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#112334" + - state: accent-inhand-right + color: "#79121b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#112334" + - state: accent-equipped-HELMET + color: "#79121b" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmGladiator + name: gladiator envirosuit helmet + description: Protects the head from toy spears and poisonous oxygen. + components: + - type: Sprite + layers: + - state: icon + color: "#dab13b" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#dab13b" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#dab13b" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#dab13b" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMantis + name: mantis' envirosuit helmet + description: An envirosuit helmet for the forensic mantis with a fancy gold stripe. + components: + - type: Sprite + layers: + - state: icon + color: "#46566d" + - state: accent-icon + color: "#7d2322" + - state: midaccent-icon + color: "#d4af48" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#46566d" + - state: accent-inhand-left + color: "#7d2322" + - state: midaccent-inhand-left + color: "#d4af48" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#46566d" + - state: accent-inhand-right + color: "#7d2322" + - state: midaccent-inhand-right + color: "#d4af48" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#46566d" + - state: accent-equipped-HELMET + color: "#7d2322" + - state: midaccent-equipped-HELMET + color: "#d4af48" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmSafari + name: safari envirosuit helmet + description: Makes you a target for the locals. + components: + - type: Sprite + layers: + - state: icon + color: "#d3b986" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d3b986" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#d3b986" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#d3b986" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMartialGi + name: gi envirosuit helmet + description: A white envirosuit helmet with black stripes used for martial arts. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#3b3b3b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#3b3b3b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#3b3b3b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#3b3b3b" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmQM + name: logistics officer's envirosuit helmet + description: A special containment helmet designed for the Logistics Officer. + components: + - type: Sprite + layers: + - state: icon + color: "#bb934b" + - state: accent-icon + color: "#ffc000" + - state: midaccent-icon + color: "#d08200" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#bb934b" + - state: accent-inhand-left + color: "#ffc000" + - state: midaccent-inhand-left + color: "#d08200" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#bb934b" + - state: accent-inhand-right + color: "#ffc000" + - state: midaccent-inhand-right + color: "#d08200" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#bb934b" + - state: accent-equipped-HELMET + color: "#ffc000" + - state: midaccent-equipped-HELMET + color: "#d08200" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBoxing + name: boxing envirosuit helmet + description: A white envirosuit helmet with red stripes. + components: + - type: Sprite + layers: + - state: icon + color: "#eeeeee" + - state: accent-icon + color: "#a81818" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#eeeeee" + - state: accent-inhand-left + color: "#a81818" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#eeeeee" + - state: accent-inhand-right + color: "#a81818" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#eeeeee" + - state: accent-equipped-HELMET + color: "#a81818" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmAdminAssistant + name: administrative assistant's envirosuit helmet + description: A white envirosuit helmet with dark blue stripes. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#315266" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#315266" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#315266" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#315266" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBlackPink + name: black pink envirosuit helmet + description: How you like that envirosuit helmet? + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: accent-icon + color: "#f4a1b7" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: accent-inhand-left + color: "#f4a1b7" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#292929" + - state: accent-inhand-right + color: "#f4a1b7" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#292929" + - state: accent-equipped-HELMET + color: "#f4a1b7" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBlackPinkAlt + name: black pink envirosuit helmet + suffix: Alternative + description: This envirosuit helmet makes you want to kill this love. + components: + - type: Sprite + layers: + - state: icon + color: "#f4a1b7" + - state: accent-icon + color: "#292929" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#f4a1b7" + - state: accent-inhand-left + color: "#292929" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#f4a1b7" + - state: accent-inhand-right + color: "#292929" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#f4a1b7" + - state: accent-equipped-HELMET + color: "#292929" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBlueshield + name: blueshield's envirosuit helmet + description: A Plasmaman envirosuit helmet designed for the blueshield. + components: + - type: Sprite + layers: + - state: icon + color: "#535353" + - state: accent-icon + color: "#0044d4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#535353" + - state: accent-inhand-left + color: "#0044d4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#535353" + - state: accent-inhand-right + color: "#0044d4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#535353" + - state: accent-equipped-HELMET + color: "#0044d4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmTrans + name: trans envirosuit helmet + description: The preferred headgear of Transylvanian Plasmamen to prevent burning from oxygen. + components: + - type: Sprite + layers: + - state: icon + color: "#FFFFFF" + - state: accent-icon + color: "#ffb0c0" + - state: sideaccent-icon + color: "#5dd2ff" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#FFFFFF" + - state: accent-inhand-left + color: "#ffb0c0" + - state: sideaccent-inhand-left + color: "#5dd2ff" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#FFFFFF" + - state: accent-inhand-right + color: "#ffb0c0" + - state: sideaccent-inhand-right + color: "#5dd2ff" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#FFFFFF" + - state: accent-equipped-HELMET + color: "#ffb0c0" + - state: sideaccent-equipped-HELMET + color: "#5dd2ff" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmPrisonGuard + name: prison guard's envirosuit helmet + description: Hope a prisoner doesn't snatch this away from you! + components: + - type: Sprite + layers: + - state: icon + color: "#d76b00" + - state: accent-icon + color: "#363636" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d76b00" + - state: accent-inhand-left + color: "#363636" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#d76b00" + - state: accent-inhand-right + color: "#363636" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#d76b00" + - state: accent-equipped-HELMET + color: "#363636" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmBrigmedic + name: corpsman envirosuit helmet + description: A helmet provided to Corpsmen Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#486782" + - state: accent-icon + color: "#2e2e2e" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#486782" + - state: accent-inhand-left + color: "#2e2e2e" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#486782" + - state: accent-inhand-right + color: "#2e2e2e" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#486782" + - state: accent-equipped-HELMET + color: "#2e2e2e" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmNanotrasenRepresentative + name: nanotrasen representative envirosuit helmet + description: A black envirosuit helmet worn by the NanoTrasen Representative, with black and gold accents. + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: accent-icon + color: "#ffce5b" + - state: midaccent-icon + color: "#266199" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: accent-inhand-left + color: "#ffce5b" + - state: midaccent-inhand-left + color: "#266199" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#292929" + - state: accent-inhand-right + color: "#ffce5b" + - state: midaccent-inhand-right + color: "#266199" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#292929" + - state: accent-equipped-HELMET + color: "#ffce5b" + - state: midaccent-equipped-HELMET + color: "#266199" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmMagistrate + name: magistrate envirosuit helmet + description: A plain white envirosuit with yellow stripes. + components: + - type: Sprite + layers: + - state: icon + color: "#ebebeb" + - state: accent-icon + color: "#ffce5b" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ebebeb" + - state: accent-inhand-left + color: "#ffce5b" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ebebeb" + - state: accent-inhand-right + color: "#ffce5b" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ebebeb" + - state: accent-equipped-HELMET + color: "#ffce5b" + - state: visor-equipped-HELMET + +# Color envirohelms +- type: entity + parent: ClothingHeadEnvirohelmBase + id: ClothingHeadEnvirohelmColorWhite + name: white envirosuit helmet + description: A generic white envirohelm. + components: + - type: Sprite + sprite: Clothing/Head/Envirohelms/white.rsi + - type: Clothing + sprite: Clothing/Head/Envirohelms/white.rsi + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorGrey + name: grey envirosuit helmet + description: A grey envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#b3b3b3" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b3b3b3" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#b3b3b3" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#b3b3b3" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorBlack + name: black envirosuit helmet + description: A black envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#3f3f3f" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3f3f3f" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3f3f3f" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3f3f3f" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorRed + name: red envirosuit helmet + description: A red envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#d1423f" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d1423f" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#d1423f" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#d1423f" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorGreen + name: green envirosuit helmet + description: A green envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#9ed63a" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9ed63a" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#9ed63a" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#9ed63a" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorDarkGreen + name: dark green envirosuit helmet + description: A dark green envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#79CC26" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#79CC26" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#79CC26" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#79CC26" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorBlue + name: blue envirosuit helmet + description: A blue envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#52aecc" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#52aecc" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#52aecc" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#52aecc" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorDarkBlue + name: dark blue envirosuit helmet + description: A dark blue envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#3285ba" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3285ba" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3285ba" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3285ba" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorTeal + name: teal envirosuit helmet + description: A teal envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#77f3b7" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#77f3b7" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#77f3b7" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#77f3b7" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorMaroon + name: maroon envirosuit helmet + description: A maroon envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#cc295f" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#cc295f" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#cc295f" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#cc295f" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorPink + name: pink envirosuit helmet + description: A pink envirosuit helmet. So fetch! + components: + - type: Sprite + layers: + - state: icon + color: "#ff8cff" + - state: accent-icon + color: "#8b3e8c" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8cff" + - state: accent-inhand-left + color: "#8b3e8c" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ff8cff" + - state: accent-inhand-right + color: "#8b3e8c" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ff8cff" + - state: accent-equipped-HELMET + color: "#8b3e8c" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorYellow + name: yellow envirosuit helmet + description: A yellow envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#ffe14d" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffe14d" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffe14d" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffe14d" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorPurple + name: purple envirosuit helmet + description: A purple envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#9f70cc" + - state: accent-icon + color: "#843b85" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9f70cc" + - state: accent-inhand-left + color: "#843b85" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#9f70cc" + - state: accent-inhand-right + color: "#843b85" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#9f70cc" + - state: accent-equipped-HELMET + color: "#843b85" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorOrange + name: orange envirosuit helmet + description: An orange envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8c19" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8c19" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ff8c19" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ff8c19" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorLightBrown + name: light brown envirosuit helmet + description: A light brown envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#a17229" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a349a4" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#a17229" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#a17229" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmColorBrown + name: brown envirosuit helmet + description: A brown envirosuit helmet. + components: + - type: Sprite + layers: + - state: icon + color: "#543e1b" + - state: accent-icon + color: "#a349a4" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#543e1b" + - state: accent-inhand-left + color: "#a349a4" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#543e1b" + - state: accent-inhand-right + color: "#a349a4" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#543e1b" + - state: accent-equipped-HELMET + color: "#a349a4" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorRed + name: red enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with red accents. Fancy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#99211f" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#99211f" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#99211f" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#99211f" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorOrange + name: orange enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with orange accents. Zesty! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#c2680f" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#c2680f" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#c2680f" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#c2680f" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorGreen + name: green enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with green accents. Leafy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#5b991f" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#5b991f" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#5b991f" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#5b991f" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksColorBlue + name: blue enviroslacks helmet + description: The pet project of a particularly posh Plasmaman, this envirohelm comes with blue accents. Cool! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#2b5c99" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#2b5c99" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#2b5c99" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#2b5c99" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksMNK + name: MNK enviroslacks helmet + description: A sleek envirohelm brought to you by MNK. Classic! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#363636" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#363636" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#363636" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#ffffff" + - state: accent-equipped-HELMET + color: "#363636" + - state: visor-equipped-HELMET + +- type: entity + parent: ClothingHeadEnvirohelmCustomBase + id: ClothingHeadEnvirohelmEnviroslacksMNKAlt + name: monochrome enviroslacks helmet + description: A sleek envirohelm brought to you by MNK. Noir! + suffix: Alternative + components: + - type: Sprite + layers: + - state: icon + color: "#3b3b3b" + - state: accent-icon + color: "#d6d6d6" + - state: visor-icon + - state: icon-flash + visible: false + shader: unshaded + map: [ "light" ] + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3b3b3b" + - state: accent-inhand-left + color: "#d6d6d6" + - state: visor-inhand-left + right: + - state: inhand-right + color: "#3b3b3b" + - state: accent-inhand-right + color: "#d6d6d6" + - state: visor-inhand-right + - type: Clothing + clothingVisuals: + head: + - state: equipped-HELMET + color: "#3b3b3b" + - state: accent-equipped-HELMET + color: "#d6d6d6" + - state: visor-equipped-HELMET diff --git a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml index 795984bb45..20c42b5a43 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml @@ -22,6 +22,7 @@ - type: Tag tags: - WhitelistChameleon + - ClothingHeadHelmetBasic #Mercenary Helmet - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/Neck/cloaks.yml b/Resources/Prototypes/Entities/Clothing/Neck/cloaks.yml index f02dc068da..84b3df4590 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/cloaks.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/cloaks.yml @@ -8,7 +8,7 @@ sprite: Clothing/Neck/Cloaks/centcomcloakformal.rsi - type: StealTarget stealGroup: HeadCloak # leaving this here because I suppose it might be interesting? - + - type: entity parent: ClothingNeckBase id: ClothingNeckCloakCap @@ -159,7 +159,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: entity parent: ClothingNeckBase @@ -185,7 +185,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: TypingIndicatorClothing proto: moth @@ -287,4 +287,4 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} \ No newline at end of file + toggleable-clothing: !type:Container {} diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 1d938911a1..74561ef197 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -120,7 +120,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} storagebase: !type:Container ents: [] @@ -137,6 +137,18 @@ coefficient: 0.01 - type: FireProtection reduction: 0.75 # almost perfectly sealed, atmos firesuit is better + - type: IgniteFromGasImmunity + parts: + - Torso + - Groin + - LeftArm + - LeftHand + - RightArm + - RightHand + - LeftLeg + - LeftFoot + - RightLeg + - RightFoot - type: ClothingSpeedModifier walkModifier: 0.4 sprintModifier: 0.6 @@ -155,7 +167,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: GroupExamine - type: Tag tags: @@ -164,6 +176,7 @@ - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites - AllowLamiaHardsuit - FullBodyOuter + - PlasmamanSafe - type: Clothing equipDelay: 2.5 # Hardsuits are heavy and take a while to put on/off. unequipDelay: 2.5 @@ -204,6 +217,18 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.01 # Not complete protection from fire + - type: IgniteFromGasImmunity + parts: + - Torso + - Groin + - LeftArm + - LeftHand + - RightArm + - RightHand + - LeftLeg + - LeftFoot + - RightLeg + - RightFoot - type: ClothingSpeedModifier walkModifier: 0.8 sprintModifier: 0.8 @@ -214,6 +239,7 @@ tags: - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - PlasmamanSafe - type: Clothing equipDelay: 1.25 # Softsuits are easier to put on and off unequipDelay: 1 @@ -242,7 +268,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} storagebase: !type:Container ents: [] diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index a9bb8f1dc7..4696e6d8e3 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -44,6 +44,8 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.001 + - type: FireProtection + reduction: 1 - type: ExplosionResistance damageCoefficient: 0.5 - type: Armor @@ -98,6 +100,10 @@ coefficient: 0.75 # 25% - type: GuideHelp guides: [ HephaestusIndustries ] + - type: TemperatureProtection + coefficient: 0.001 + - type: FireProtection + reduction: 1 #Spationaut Hardsuit - type: entity @@ -225,6 +231,8 @@ damageCoefficient: 0.2 - type: TemperatureProtection coefficient: 0.001 + - type: FireProtection + reduction: 1 - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitMaxim - type: GuideHelp @@ -397,6 +405,10 @@ coefficient: 0.65 # 35% - type: GuideHelp guides: [ HephaestusIndustries ] + - type: TemperatureProtection + coefficient: 0.001 + - type: FireProtection + reduction: 1 #Chief Medical Officer's Hardsuit - type: entity @@ -622,7 +634,7 @@ - type: ExplosionResistance damageCoefficient: 0.2 - type: FireProtection - reduction: 0.8 # perfect protection like atmos firesuit for pyro tf2 ops + reduction: 1 # perfect protection like atmos firesuit for pyro tf2 ops - type: Armor modifiers: coefficients: @@ -890,6 +902,10 @@ clothingPrototype: ClothingHeadHelmetHardsuitERTEngineer - type: StaminaDamageResistance coefficient: 0.5 # 50% + - type: TemperatureProtection + coefficient: 0.001 + - type: FireProtection + reduction: 1 #ERT Medic Hardsuit - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml index 66718d519b..bc3a8c84ff 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml @@ -58,7 +58,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} #Prisoner EVA - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml index 96caf94717..9bbd9008a2 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml @@ -144,7 +144,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: ClothingRequiredStepTriggerImmune slots: WITHOUT_POCKET - type: Tag @@ -251,7 +251,7 @@ sprite: Clothing/OuterClothing/Suits/monkey.rsi - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: ClothingRequiredStepTriggerImmune slots: WITHOUT_POCKET - type: Tag @@ -274,7 +274,7 @@ clothingPrototype: ClothingHeadHatHoodIan - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: Construction graph: ClothingOuterSuitIan node: suit @@ -297,7 +297,7 @@ clothingPrototype: ClothingHeadHatHoodCarp - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} - type: entity parent: ClothingOuterSuitCarp @@ -321,4 +321,4 @@ - type: Sprite sprite: Clothing/OuterClothing/Suits/witchrobe.rsi - type: Clothing - sprite: Clothing/OuterClothing/Suits/witchrobe.rsi \ No newline at end of file + sprite: Clothing/OuterClothing/Suits/witchrobe.rsi diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml index 199ce2d056..d932427a50 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml @@ -45,7 +45,7 @@ slot: head - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot {} + toggleable-clothing: !type:Container {} storagebase: !type:Container ents: [] diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml index cea803d104..b10a1c95e6 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml @@ -153,3 +153,108 @@ - state: icon_flipped map: ["foldedLayer"] visible: true + +- type: entity + abstract: true + parent: UnsensoredClothingUniformBase + id: UnsensoredClothingUniformEnvirosuitBase + components: + - type: IgniteFromGasImmunity + parts: + - Torso + - Groin + - LeftArm + - LeftHand + - RightArm + - RightHand + - LeftLeg + - LeftFoot + - RightLeg + - RightFoot + - type: Clothing + equipDelay: 0.4 + unequipDelay: 0.6 # Slightly higher delay to protect against accidental unequips + femaleMask: NoMask + - type: SelfExtinguisher + cooldown: 100 + requiresIgniteFromGasImmune: true + sound: + path: /Audio/Effects/extinguish.ogg + - type: LimitedCharges + maxCharges: 4 + charges: 4 + - type: Armor + modifiers: + coefficients: + Caustic: 0.85 + - type: Tag + tags: + - WhitelistChameleon + - PlasmamanSafe + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET + - type: GuideHelp # While the playerbase is getting introduced to Plasmamen, add their guidebook here + guides: [ Plasmaman ] + +- type: entity + abstract: true + parent: UnsensoredClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitBase + components: + - type: SuitSensor + - type: DeviceNetwork + deviceNetId: Wireless + transmitFrequencyId: SuitSensor + - type: WirelessNetworkConnection + range: 1200 + - type: StationLimitedNetwork + +- type: entity + abstract: true + parent: UnsensoredClothingUniformEnvirosuitBase + id: UnsensoredClothingUniformEnvirosuitCustomBase + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/custom.rsi + layers: + - state: icon + color: "#FFFFFF" + - state: accent-icon + color: "#FF0000" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#FFFFFF" + - state: accent-inhand-left + color: "#FF0000" + right: + - state: inhand-right + color: "#FFFFFF" + - state: accent-inhand-right + color: "#FF0000" + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/custom.rsi + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#FFFFFF" + - state: accent-equipped-INNERCLOTHING + color: "#FF0000" + - state: loweraccent-equipped-INNERCLOTHING + color: "#FF0000" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" # Recommended default soles color + +- type: entity + abstract: true + parent: UnsensoredClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitCustomBase + components: + - type: SuitSensor + - type: DeviceNetwork + deviceNetId: Wireless + transmitFrequencyId: SuitSensor + - type: WirelessNetworkConnection + range: 1200 + - type: StationLimitedNetwork diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml new file mode 100644 index 0000000000..04fae7ee00 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/envirosuits.yml @@ -0,0 +1,3091 @@ +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuit + name: plasma envirosuit + description: A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/plain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitAtmos + name: atmospherics envirosuit + description: An air-tight suit designed to be used by Plasmamen employed as atmos technicians. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/atmos.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/atmos.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCargo + name: cargo tech envirosuit + description: An envirosuit used by Plasmamen cargo technicians. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/cargo.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/cargo.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCaptain + name: captain's envirosuit + description: It's a blue envirosuit with some gold markings denoting the rank of "Captain". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/captain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/captain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChiefEngineer + name: chief engineer's envirosuit + description: An air-tight suit designed to be used by Plasmamen insane enough to achieve the rank of "Chief Engineer". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/ce.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/ce.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChaplain + name: chaplain's envirosuit + description: An envirosuit specially designed for only the most pious of Plasmamen. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chaplain.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chaplain.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChef + name: chef's envirosuit + description: A white Plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chef.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chef.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitChemist + name: chemistry envirosuit + description: A Plasmaman envirosuit designed for chemists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/chemist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/chemist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitClown + name: clown envirosuit + description: HONK! + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/clown.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/clown.rsi + - type: Tag + tags: + - ClownSuit + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCMO + name: chief medical officer's envirosuit + description: It's an envirosuit worn by those with the experience to be "Chief Medical Officer". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/cmo.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/cmo.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitEngineering + name: engineering envirosuit + description: An air-tight suit designed to be used by Plasmamen employed as engineers, the usual purple stripes being replaced by engineering's orange. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/engineering.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/engineering.rsi + +- type: entity + parent: ClothingUniformEnvirosuitEnviroslacksColorOrange + id: ClothingUniformEnvirosuitDetective + name: detective envirosuit + description: The pet project of a particularly posh Plasmaman, this custom suit was modified by Nanotrasen for its detectives. + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHoP + name: head of personnel's envirosuit + description: It's an envirosuit worn by someone who works in the position of "Head of Personnel". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hop.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hop.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHoS + name: head of security's envirosuit + description: A Plasmaman containment suit decorated for those few with the dedication to achieve the position of Head of Security. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hos.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hos.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitHydroponics + name: hydroponics envirosuit + description: A green and blue envirosuit designed to protect Plasmamen from minor plant-related injuries. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/hydroponics.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/hydroponics.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitJanitor + name: janitor envirosuit + description: A grey and purple envirosuit designated for Plasmamen janitors. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/janitor.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/janitor.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitAncientVoid + name: NTSRA envirosuit + description: Made out of a modified NTSRA vacsuit, this non-spaceworthy suit was NanoTrasen's first designed envirosuit for Plasmamen. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/ancientvoid.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/ancientvoid.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitMedicalDoctor + name: medical doctor's envirosuit + description: A suit designed for the station's more plasma-based doctors. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/medical.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/medical.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitGenetics + name: genetics envirosuit + description: A Plasmaman envirosuit designed for geneticists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/genetics.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/genetics.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitMime + name: mime envirosuit + description: It's not very colourful. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/mime.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/mime.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitParamedic + name: paramedic envirosuit + description: A suit designed for the station's Plasmaman paramedics. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/paramedic.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/paramedic.rsi + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitPrisoner + name: prisoner envirosuit + description: An orange envirosuit identifying and protecting a criminal Plasmaman. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8300" + - state: plaintop-icon + color: "#ff8300" + - state: accentprisoner-icon + color: "#404040" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8300" + - state: plaintop-inhand-left + color: "#ff8300" + - state: accentprisoner-inhand-left + color: "#404040" + right: + - state: inhand-right + color: "#ff8300" + - state: plaintop-inhand-right + color: "#ff8300" + - state: accentprisoner-inhand-right + color: "#404040" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ff8300" + - state: plaintop-equipped-INNERCLOTHING + color: "#ff8300" + - state: accentprisoner-equipped-INNERCLOTHING + color: "#404040" + - state: loweraccent-equipped-INNERCLOTHING + color: "#404040" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + - type: SuitSensor + controlsLocked: true + randomMode: false + mode: SensorCords + - type: Tag + tags: + - ClothMade + - WhitelistChameleon + - PlasmamanSafe + - PrisonUniform + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitResearchDirector + name: mystagogue's envirosuit + description: It's an envirosuit worn by those with the know-how to achieve the position of "Mystagogue". + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/rd.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/rd.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitRoboticist + name: roboticist envirosuit + description: A Plasmaman envirosuit designed for roboticists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/roboticist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/roboticist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitSalvage + name: salvage envirosuit + description: An air-tight khaki suit designed for salvage operations by Plasmamen. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/salvage.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/salvage.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitScientist + name: science envirosuit + description: A Plasmaman envirosuit designed for scientists. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/scientist.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/scientist.rsi + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSec + name: security envirosuit + description: A Plasmaman containment suit designed for security officers. + components: + - type: Sprite + layers: + - state: icon + color: "#8f3132" + - state: accent2-icon + color: "#2e2e2e" + - state: accenthighlight-icon + color: "#313e5a" + - state: clip-icon + color: "#730000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#2e2e2e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#8f3132" + - state: accent2-inhand-left + color: "#2e2e2e" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: clip-inhand-left + color: "#730000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#2e2e2e" + right: + - state: inhand-right + color: "#8f3132" + - state: accent2-inhand-right + color: "#2e2e2e" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: clip-inhand-right + color: "#730000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#2e2e2e" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#8f3132" + - state: accent2-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: clip-equipped-INNERCLOTHING + color: "#730000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: pants-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: loweraccent-equipped-INNERCLOTHING + color: "#732829" + - state: shoesdark-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: soles-equipped-INNERCLOTHING + color: "#7a7a7a" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSecBlue + name: blue security envirosuit + description: A cool blue enviroshirt over charcoal trousers, for the calm and collected Plasmaman officer. + components: + - type: Sprite + layers: + - state: icon + color: "#b9c1d9" + - state: accent-icon + color: "#2e2e2e" + - state: accent3_chestonly-icon + color: "#36476b" + - state: accenthighlight-icon + color: "#313e5a" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#232938" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b9c1d9" + - state: accent-inhand-left + color: "#2e2e2e" + - state: accent3_chestonly-inhand-left + color: "#36476b" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#232938" + right: + - state: inhand-right + color: "#b9c1d9" + - state: accent-inhand-right + color: "#2e2e2e" + - state: accent3_chestonly-inhand-right + color: "#36476b" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#232938" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#b9c1d9" + - state: accentalt_noback-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: accent3_chestonly-equipped-INNERCLOTHING + color: "#36476b" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: pants-equipped-INNERCLOTHING + color: "#232938" + - state: backaccent-equipped-INNERCLOTHING + color: "#36476b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#36476b" + - state: shoesdark-equipped-INNERCLOTHING + color: "#2e2e2e" + - state: soles-equipped-INNERCLOTHING + color: "#7a7a7a" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSecGrey + name: grey security envirosuit + description: Light grey enviroslacks with bright red highlights, for dedicated and responsive security officers. + components: + - type: Sprite + layers: + - state: icon + color: "#7e7e7e" + - state: plaintop-icon + color: "#7e7e7e" + - state: accent-icon + color: "#333333" + - state: accenthighlight-icon + color: "#313e5a" + - state: tie-icon + color: "#a61d1d" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#333333" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#7e7e7e" + - state: plaintop-inhand-left + color: "#7e7e7e" + - state: accent-inhand-left + color: "#333333" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: tie-inhand-left + color: "#a61d1d" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#333333" + right: + - state: inhand-right + color: "#7e7e7e" + - state: plaintop-inhand-right + color: "#7e7e7e" + - state: accent-inhand-right + color: "#333333" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: tie-inhand-right + color: "#a61d1d" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#333333" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#7e7e7e" + - state: plaintop-equipped-INNERCLOTHING + color: "#7e7e7e" + - state: accentalt-equipped-INNERCLOTHING + color: "#333333" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: tie-equipped-INNERCLOTHING + color: "#a61d1d" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: cuffs-equipped-INNERCLOTHING + color: "#a11a1a" + - state: cuffs_upper-equipped-INNERCLOTHING + color: "#c92323" + - state: pants-equipped-INNERCLOTHING + color: "#333333" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a61d1d" + - state: shoesdark-equipped-INNERCLOTHING + color: "#333333" + - state: soles-equipped-INNERCLOTHING + color: "#7a7a7a" + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitVirology + name: virology envirosuit + description: The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/virology.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/virology.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitWarden + name: warden's envirosuit + description: A Plasmaman containment suit designed for the warden, white stripes being added to differentiate them from other members of security. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/warden.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/warden.rsi + +- type: entity + parent: UnsensoredClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitOperative + name: operative envirosuit + description: A sinister looking envirosuit, for the most elite of bony operatives. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + - type: LimitedCharges + maxCharges: 6 + charges: 6 + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitTacticool + name: tacticool envirosuit + description: A sinister looking envirosuit, for the boniest of operatives. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/tacticool.rsi + # Too cool for sensors to be on + - type: SuitSensor + randomMode: false + mode: SensorOff + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCentcomAgent + name: CentCom agent's envirosuit + description: An envirosuit tailored for CentCom's legal team. Smells of burnt coffee. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/centcom_agent.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/centcom_agent.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCentcomOfficial + name: CentCom official's envirosuit + description: It's an envirosuit worn by CentCom's officials. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/centcom_official.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/centcom_official.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitCentcomOfficer + name: CentCom officer's envirosuit + description: It's an envirosuit worn by CentCom Officers. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/centcom_officer.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/centcom_officer.rsi + +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitBlueshield + name: blueshield's envirosuit + description: An envirosuit designed for Plasmamen employed as the Blueshield. + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/blueshield_officer.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/blueshield_officer.rsi + - type: Armor + modifiers: + coefficients: + Blunt: 0.95 + Heat: 0.95 + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitCourier + name: courier's envirosuit + description: An envirosuit tailored for the courier. + components: + - type: Sprite + layers: + - state: icon + color: "#4a281f" + - state: accent2-icon + color: "#c2911e" + - state: clip-icon + color: "#c2911e" + - state: clip_right-icon + color: "#c2911e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#4a281f" + - state: accent2-inhand-left + color: "#c2911e" + - state: clip-inhand-left + color: "#c2911e" + - state: clip_right-inhand-left + color: "#c2911e" + right: + - state: inhand-right + color: "#4a281f" + - state: accent2-inhand-right + color: "#c2911e" + - state: clip-inhand-right + color: "#c2911e" + - state: clip_right-inhand-right + color: "#c2911e" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#4a281f" + - state: accent2-equipped-INNERCLOTHING + color: "#c2911e" + - state: clip-equipped-INNERCLOTHING + color: "#c2911e" + - state: clip_right-equipped-INNERCLOTHING + color: "#c2911e" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#c2911e" + - state: soles-equipped-INNERCLOTHING + color: "#c2911e" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMailCarrier + name: mail carrier's envirosuit + description: An envirosuit tailored for the mail carrier. The color pattern makes pitbulls go wild. + components: + - type: Sprite + layers: + - state: icon + color: "#394dc6" + - state: accent-icon + color: "#d82927" + - state: accent2_chestonly-icon + color: "#dcdcdc" + - state: clip-icon + color: "#dcdcdc" + - state: clip_right-icon + color: "#c2c2c2" + - state: belt-icon + color: "#cfcfcf" + - state: beltbuckle_small-icon + color: "#f0990c" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#394dc6" + - state: accent-inhand-left + color: "#d82927" + - state: accent2_chestonly-inhand-left + color: "#dcdcdc" + - state: clip-inhand-left + color: "#dcdcdc" + - state: clip_right-inhand-left + color: "#c2c2c2" + - state: belt-inhand-left + color: "#cfcfcf" + - state: beltbuckle_small-inhand-left + color: "#f0990c" + right: + - state: inhand-right + color: "#394dc6" + - state: accent-inhand-right + color: "#d82927" + - state: accent2_chestonly-inhand-right + color: "#dcdcdc" + - state: clip-inhand-right + color: "#dcdcdc" + - state: clip_right-inhand-right + color: "#c2c2c2" + - state: belt-inhand-right + color: "#cfcfcf" + - state: beltbuckle_small-inhand-right + color: "#f0990c" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#394dc6" + - state: accentalt_noback-equipped-INNERCLOTHING + color: "#d82927" + - state: accent2_chestonly-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: clip-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: clip_right-equipped-INNERCLOTHING + color: "#c2c2c2" + - state: belt-equipped-INNERCLOTHING + color: "#cfcfcf" + - state: beltbuckle_small-equipped-INNERCLOTHING + color: "#f0990c" + - state: backaccent-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#dcdcdc" + - state: soles-equipped-INNERCLOTHING + color: "#dcdcdc" + - type: ClothingAddFaction + faction: Mailman + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMusician + name: musician's envirosuit + description: An envirosuit to play music with. + components: + - type: Sprite + layers: + - state: icon + color: "#3c335b" + - state: plaintop-icon + color: "#3c335b" + - state: accent2-icon + color: "#f3f5f4" + - state: pin-icon + color: "#db2525" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3c335b" + - state: accent2-inhand-left + color: "#f3f5f4" + - state: pin-inhand-left + color: "#db2525" + right: + - state: inhand-right + color: "#3c335b" + - state: accent2-inhand-right + color: "#f3f5f4" + - state: pin-inhand-right + color: "#db2525" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3c335b" + - state: accent2-equipped-INNERCLOTHING + color: "#f3f5f4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#f3f5f4" + - state: pin-equipped-INNERCLOTHING + color: "#db2525" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitReporter + name: reporter envirosuit + description: An envirosuit for the news-oriented Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#112334" + - state: accent2-icon + color: "#79121b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#112334" + - state: accent2-inhand-left + color: "#79121b" + right: + - state: inhand-right + color: "#112334" + - state: accent2-inhand-right + color: "#79121b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#112334" + - state: accent2-equipped-INNERCLOTHING + color: "#79121b" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#79121b" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitGladiator + name: gladiator envirosuit + description: Made for bloodthirsty Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#dab13b" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#dab13b" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#dab13b" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#dab13b" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#a349a4" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMantis + name: mantis' envirosuit + description: Hunting down psionics in the safety of this envirosuit. + components: + - type: Sprite + layers: + - state: icon + color: "#46566d" + - state: pants-icon + color: "#7d2322" + - state: belt-icon + color: "#51321a" + - state: beltbuckle-icon + color: "#dcbb60" + - state: accent-icon + color: "#d4af48" + - state: buttons-icon + color: "#997d30" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#46566d" + - state: pants-inhand-left + color: "#7d2322" + - state: belt-inhand-left + color: "#51321a" + - state: beltbuckle-inhand-left + color: "#dcbb60" + - state: accent-inhand-left + color: "#d4af48" + - state: buttons-inhand-left + color: "#997d30" + right: + - state: inhand-right + color: "#46566d" + - state: pants-inhand-right + color: "#7d2322" + - state: belt-inhand-right + color: "#51321a" + - state: beltbuckle-inhand-right + color: "#dcbb60" + - state: accent-inhand-right + color: "#d4af48" + - state: buttons-inhand-right + color: "#997d30" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#46566d" + - state: pants-equipped-INNERCLOTHING + color: "#7d2322" + - state: belt-equipped-INNERCLOTHING + color: "#51321a" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#dcbb60" + - state: accentalt-equipped-INNERCLOTHING + color: "#d4af48" + - state: loweraccent-equipped-INNERCLOTHING + color: "#d4af48" + - state: buttons-equipped-INNERCLOTHING + color: "#997d30" + - state: soles-equipped-INNERCLOTHING + color: "#d4af48" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitSafari + name: safari envirosuit + description: Perfect for a jungle excursion. + components: + - type: Sprite + layers: + - state: icon + color: "#d3b986" + - state: accent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d3b986" + - state: accent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#d3b986" + - state: accent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#d3b986" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMartialGi + name: gi envirosuit + description: A flowy envirosuit tailor-made for martial arts that doesn't restrict your mobility. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#3b3b3b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#3b3b3b" + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#3b3b3b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: accent-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitQM + name: logistics officer's envirosuit + description: An air-tight suit designed to be used by Plasmamen insane enough to achieve the rank of "Logistics Officer". + components: + - type: Sprite + layers: + - state: icon + color: "#bb934b" + - state: accent-icon + color: "#ffc000" + - state: accent3_chestonly-icon + color: "#d08200" + - state: clip-icon + color: "#c0c0c0" + - state: clip_right-icon + color: "#a7a7a7" + - state: pants-icon + color: "#8a8a8a" + - state: belt-icon + color: "#6f6f6f" + - state: beltbuckle-icon + color: "#bfbfbf" + - state: buttons-icon + color: "#535353" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#bb934b" + - state: accent-inhand-left + color: "#ffc000" + - state: accent3_chestonly-inhand-left + color: "#d08200" + - state: clip-inhand-left + color: "#c0c0c0" + - state: clip_right-inhand-left + color: "#a7a7a7" + - state: pants-inhand-left + color: "#8a8a8a" + - state: belt-inhand-left + color: "#6f6f6f" + - state: beltbuckle-inhand-left + color: "#bfbfbf" + - state: buttons-inhand-left + color: "#535353" + right: + - state: inhand-right + color: "#bb934b" + - state: accent-inhand-right + color: "#ffc000" + - state: accent3_chestonly-inhand-right + color: "#d08200" + - state: clip-inhand-right + color: "#c0c0c0" + - state: clip_right-inhand-right + color: "#a7a7a7" + - state: pants-inhand-right + color: "#8a8a8a" + - state: belt-inhand-right + color: "#6f6f6f" + - state: beltbuckle-inhand-right + color: "#bfbfbf" + - state: buttons-inhand-right + color: "#535353" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#bb934b" + - state: accentalt-equipped-INNERCLOTHING + color: "#ffc000" + - state: accent3_chestonly-equipped-INNERCLOTHING + color: "#d08200" + - state: clip-equipped-INNERCLOTHING + color: "#c0c0c0" + - state: clip_right-equipped-INNERCLOTHING + color: "#a7a7a7" + - state: cuffs-equipped-INNERCLOTHING + color: "#d08200" + - state: cuffs_upper-equipped-INNERCLOTHING + color: "#6e6e6e" + - state: pants-equipped-INNERCLOTHING + color: "#8a8a8a" + - state: belt-equipped-INNERCLOTHING + color: "#6f6f6f" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#bfbfbf" + - state: buttons-equipped-INNERCLOTHING + color: "#535353" + - state: loweraccent-equipped-INNERCLOTHING + color: "#ffc000" + - state: shoesdark-equipped-INNERCLOTHING + color: "#828282" + - state: soles-equipped-INNERCLOTHING + color: "#ffc000" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBoxing + name: boxing envirosuit + description: Used by Plasmamen boxers. + components: + - type: Sprite + layers: + - state: icon + color: "#eeeeee" + - state: accent3-icon + color: "#a81818" + - state: pants-icon + color: "#a81818" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#eeeeee" + - state: accent3-inhand-left + color: "#a81818" + - state: pants-inhand-left + color: "#a81818" + right: + - state: inhand-right + color: "#eeeeee" + - state: accent3-inhand-right + color: "#a81818" + - state: pants-inhand-right + color: "#a81818" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#eeeeee" + - state: accent3-equipped-INNERCLOTHING + color: "#a81818" + - state: pants-equipped-INNERCLOTHING + color: "#a81818" + - state: loweraccent2-equipped-INNERCLOTHING + color: "#eeeeee" + - state: soles-equipped-INNERCLOTHING + color: "#eeeeee" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitAdminAssistant + name: administrative assistant's envirosuit + description: An envirosuit worn by the Administrative Assistant. Smells of burnt coffee. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: pants-icon + color: "#313131" + - state: belt-icon + color: "#4d4d4d" + - state: accent-icon + color: "#315266" + - state: tie-icon + color: "#315266" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: pants-inhand-left + color: "#313131" + - state: belt-inhand-left + color: "#4d4d4d" + - state: accent-inhand-left + color: "#315266" + - state: tie-inhand-left + color: "#315266" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: pants-inhand-right + color: "#313131" + - state: belt-inhand-right + color: "#4d4d4d" + - state: accent-inhand-right + color: "#315266" + - state: tie-inhand-right + color: "#315266" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: pants-equipped-INNERCLOTHING + color: "#313131" + - state: belt-equipped-INNERCLOTHING + color: "#4d4d4d" + - state: accent-equipped-INNERCLOTHING + color: "#315266" + - state: loweraccent-equipped-INNERCLOTHING + color: "#315266" + - state: tie-equipped-INNERCLOTHING + color: "#315266" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBlackPink + name: black pink envirosuit + description: Black pink envirosuit in your area! + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: plaintop-icon + color: "#292929" + - state: accent-icon + color: "#f4a1b7" + - state: heart-icon + color: "#f4a1b7" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: plaintop-inhand-left + color: "#292929" + - state: accent-inhand-left + color: "#f4a1b7" + - state: heart-inhand-left + color: "#f4a1b7" + right: + - state: inhand-right + color: "#292929" + - state: plaintop-inhand-right + color: "#292929" + - state: accent-inhand-right + color: "#f4a1b7" + - state: heart-inhand-right + color: "#f4a1b7" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#292929" + - state: plaintop-equipped-INNERCLOTHING + color: "#292929" + - state: accent-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: heart-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: loweraccent-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: soles-equipped-INNERCLOTHING + color: "#f4a1b7" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBlackPinkAlt + name: black pink envirosuit + suffix: Alternative + description: Black pink envirosuit in your area! + components: + - type: Sprite + layers: + - state: icon + color: "#f4a1b7" + - state: plaintop-icon + color: "#f4a1b7" + - state: accent-icon + color: "#292929" + - state: heart-icon + color: "#292929" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#f4a1b7" + - state: plaintop-inhand-left + color: "#f4a1b7" + - state: accent-inhand-left + color: "#292929" + - state: heart-inhand-left + color: "#292929" + right: + - state: inhand-right + color: "#f4a1b7" + - state: plaintop-inhand-right + color: "#f4a1b7" + - state: accent-inhand-right + color: "#292929" + - state: heart-inhand-right + color: "#292929" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#f4a1b7" + - state: plaintop-equipped-INNERCLOTHING + color: "#f4a1b7" + - state: accent-equipped-INNERCLOTHING + color: "#292929" + - state: heart-equipped-INNERCLOTHING + color: "#292929" + - state: loweraccent-equipped-INNERCLOTHING + color: "#292929" + - state: soles-equipped-INNERCLOTHING + color: "#292929" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitTrans + name: trans envirosuit + description: The signature envirosuit of Transylvanian Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: accent-icon + color: "#5dd2ff" + - state: heart-icon + color: "#ffb0c0" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#5dd2ff" + - state: heart-inhand-left + color: "#ffb0c0" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#5dd2ff" + - state: heart-inhand-right + color: "#ffb0c0" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: accentalt-equipped-INNERCLOTHING + color: "#5dd2ff" + - state: heart-equipped-INNERCLOTHING + color: "#ffb0c0" + - state: cuffs-equipped-INNERCLOTHING + color: "#ffb0c0" + - state: loweraccent2_top-equipped-INNERCLOTHING + color: "#5dd2ff" + - state: loweraccent2_bottom-equipped-INNERCLOTHING + color: "#ffb0c0" + - state: soles-equipped-INNERCLOTHING + color: "#5dd2ff" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitPrisonGuard + name: prison guard's envirosuit + description: A comfortable, durable, envirosuit made to keep Plasmamen prison staff comfortable and safe. + components: + - type: Sprite + layers: + - state: icon + color: "#d76b00" + - state: accent3-icon + color: "#363636" + - state: accenthighlight-icon + color: "#313e5a" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#363636" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d76b00" + - state: accent3-inhand-left + color: "#363636" + - state: accenthighlight-inhand-left + color: "#313e5a" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#363636" + right: + - state: inhand-right + color: "#d76b00" + - state: accent3-inhand-right + color: "#363636" + - state: accenthighlight-inhand-right + color: "#313e5a" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#363636" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#d76b00" + - state: accent3-equipped-INNERCLOTHING + color: "#363636" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#313e5a" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: pants-equipped-INNERCLOTHING + color: "#363636" + - state: loweraccent-equipped-INNERCLOTHING + color: "#d76b00" + - state: shoesdark-equipped-INNERCLOTHING + color: "#363636" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitBrigmedic + name: corpsman envirosuit + description: An envirosuit assigned to corpsmen Plasmamen. + components: + - type: Sprite + layers: + - state: icon + color: "#486782" + - state: accent-icon + color: "#333333" + - state: accent2_chestonly-icon + color: "#3b3b3b" + - state: accenthighlight-icon + color: "#2f74b8" + - state: buttons-icon + color: "#b0bdca" + - state: clip-icon + color: "#860000" + - state: clip_right-icon + color: "#313e5a" + - state: pants-icon + color: "#3b3b3b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#486782" + - state: accent-inhand-left + color: "#333333" + - state: accent2_chestonly-inhand-left + color: "#3b3b3b" + - state: accenthighlight-inhand-left + color: "#2f74b8" + - state: buttons-inhand-left + color: "#b0bdca" + - state: clip-inhand-left + color: "#860000" + - state: clip_right-inhand-left + color: "#313e5a" + - state: pants-inhand-left + color: "#3b3b3b" + right: + - state: inhand-right + color: "#486782" + - state: accent-inhand-right + color: "#333333" + - state: accent2_chestonly-inhand-right + color: "#3b3b3b" + - state: accenthighlight-inhand-right + color: "#2f74b8" + - state: buttons-inhand-right + color: "#b0bdca" + - state: clip-inhand-right + color: "#860000" + - state: clip_right-inhand-right + color: "#313e5a" + - state: pants-inhand-right + color: "#3b3b3b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#486782" + - state: accentalt-equipped-INNERCLOTHING + color: "#333333" + - state: accent2_chestonly-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: accenthighlight-equipped-INNERCLOTHING + color: "#2f74b8" + - state: buttons-equipped-INNERCLOTHING + color: "#b0bdca" + - state: clip-equipped-INNERCLOTHING + color: "#860000" + - state: clip_right-equipped-INNERCLOTHING + color: "#313e5a" + - state: cuffs-equipped-INNERCLOTHING + color: "#bfcddb" + - state: pants-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#9ca7b3" + - state: shoesdark-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: soles-equipped-INNERCLOTHING + color: "#bfcddb" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitNanotrasenRepresentative + name: nanotrasen representative envirosuit + description: A black envirosuit worn by officials. + components: + - type: Sprite + layers: + - state: icon + color: "#292929" + - state: accent3_chestonly-icon + color: "#266199" + - state: accent2-icon + color: "#ffce5b" + - state: buttons-icon + color: "#f3f5f4" + - state: belt-icon + color: "#87511b" + - state: beltbuckle-icon + color: "#969696" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#292929" + - state: accent3_chestonly-inhand-left + color: "#266199" + - state: accent2-inhand-left + color: "#ffce5b" + - state: buttons-inhand-left + color: "#f3f5f4" + - state: belt-inhand-left + color: "#87511b" + - state: beltbuckle-inhand-left + color: "#969696" + right: + - state: inhand-right + color: "#292929" + - state: accent3_chestonly-inhand-right + color: "#266199" + - state: accent2-inhand-right + color: "#ffce5b" + - state: buttons-inhand-right + color: "#f3f5f4" + - state: belt-inhand-right + color: "#87511b" + - state: beltbuckle-inhand-right + color: "#969696" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#292929" + - state: accent3_chestonly-equipped-INNERCLOTHING + color: "#266199" + - state: accent2-equipped-INNERCLOTHING + color: "#ffce5b" + - state: buttons-equipped-INNERCLOTHING + color: "#f3f5f4" + - state: cuffs-equipped-INNERCLOTHING + color: "#ffce5b" + - state: cuffs_upper-equipped-INNERCLOTHING + color: "#0057a8" + - state: belt-equipped-INNERCLOTHING + color: "#87511b" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#969696" + - state: loweraccent-equipped-INNERCLOTHING + color: "#266199" + - state: soles-equipped-INNERCLOTHING + color: "#ffce5b" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitMagistrate + name: magistrate envirosuit + description: The envirosuit that doles out justice. + components: + - type: Sprite + layers: + - state: icon + color: "#ebebeb" + - state: plaintop-icon + color: "#ebebeb" + - state: tie-icon + color: "#333333" + - state: tieclip-icon + color: "#e6b952" + - state: accent-icon + color: "#ffce5b" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#634737" + - state: beltbuckle-icon + color: "#ffce5b" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ebebeb" + - state: plaintop-inhand-left + color: "#ebebeb" + - state: tie-inhand-left + color: "#333333" + - state: tieclip-inhand-left + color: "#e6b952" + - state: accent-inhand-left + color: "#ffce5b" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#634737" + - state: beltbuckle-inhand-left + color: "#ffce5b" + right: + - state: inhand-right + color: "#ebebeb" + - state: plaintop-inhand-right + color: "#ebebeb" + - state: tie-inhand-right + color: "#333333" + - state: tieclip-inhand-right + color: "#e6b952" + - state: accent-inhand-right + color: "#ffce5b" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#634737" + - state: beltbuckle-inhand-right + color: "#ffce5b" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ebebeb" + - state: plaintop-equipped-INNERCLOTHING + color: "#ebebeb" + - state: tie-equipped-INNERCLOTHING + color: "#333333" + - state: tieclip-equipped-INNERCLOTHING + color: "#e6b952" + - state: accentalt-equipped-INNERCLOTHING + color: "#ffce5b" + - state: cuffs-equipped-INNERCLOTHING + color: "#634737" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#634737" + - state: beltbuckle-equipped-INNERCLOTHING + color: "#ffce5b" + - state: loweraccent-equipped-INNERCLOTHING + color: "#ffce5b" + - state: soles-equipped-INNERCLOTHING + color: "#634737" + + +# The Tortured Enviroslacks Department (Skubman's Version) +- type: entity + parent: ClothingUniformEnvirosuitBase + id: ClothingUniformEnvirosuitEnviroslacks + name: enviroslacks + description: The pet project of a particularly posh Plasmaman. Professional! + components: + - type: Sprite + sprite: Clothing/Uniforms/Envirosuits/enviroslacks.rsi + - type: Clothing + sprite: Clothing/Uniforms/Envirosuits/enviroslacks.rsi + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksNegative + name: negative enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant has inverted colors. Dapper! + components: + - type: Sprite + layers: + - state: icon + color: "#3f3f3f" + - state: plaintop-icon + color: "#3f3f3f" + - state: tie-icon + color: "#a349a4" + - state: accent-icon + color: "#a349a4" + - state: pants-icon + color: "#f2f2f2" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3f3f3f" + - state: plaintop-inhand-left + color: "#3f3f3f" + - state: tie-inhand-left + color: "#a349a4" + - state: accent-inhand-left + color: "#a349a4" + - state: pants-inhand-left + color: "#f2f2f2" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#3f3f3f" + - state: plaintop-inhand-right + color: "#3f3f3f" + - state: tie-inhand-right + color: "#a349a4" + - state: accent-inhand-right + color: "#a349a4" + - state: pants-inhand-right + color: "#f2f2f2" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3f3f3f" + - state: plaintop-equipped-INNERCLOTHING + color: "#3f3f3f" + - state: tie-equipped-INNERCLOTHING + color: "#a349a4" + - state: accentalt-equipped-INNERCLOTHING + color: "#a349a4" + - state: pants-equipped-INNERCLOTHING + color: "#f2f2f2" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorRed + name: red enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with red accents. Fancy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#99211f" + - state: accent-icon + color: "#99211f" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#99211f" + - state: accent-inhand-left + color: "#99211f" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#99211f" + - state: accent-inhand-right + color: "#99211f" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#99211f" + - state: accentalt-equipped-INNERCLOTHING + color: "#99211f" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#99211f" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorOrange + name: orange enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with orange accents. Zesty! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#c2680f" + - state: accent-icon + color: "#c2680f" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#c2680f" + - state: accent-inhand-left + color: "#c2680f" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#c2680f" + - state: accent-inhand-right + color: "#c2680f" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#c2680f" + - state: accentalt-equipped-INNERCLOTHING + color: "#c2680f" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#c2680f" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorGreen + name: green enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with green accents. Leafy! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#5b991f" + - state: accent-icon + color: "#5b991f" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#5b991f" + - state: accent-inhand-left + color: "#5b991f" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#5b991f" + - state: accent-inhand-right + color: "#5b991f" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#5b991f" + - state: accentalt-equipped-INNERCLOTHING + color: "#5b991f" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#5b991f" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorBlue + name: blue enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant comes with blue accents. Cool! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#2b5c99" + - state: accent-icon + color: "#2b5c99" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#2b5c99" + - state: accent-inhand-left + color: "#2b5c99" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#2b5c99" + - state: accent-inhand-right + color: "#2b5c99" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#2b5c99" + - state: accentalt-equipped-INNERCLOTHING + color: "#2b5c99" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#2b5c99" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksColorBrown + name: brown enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant has brown pants. Reminds you of dusty offices. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#a349a4" + - state: accent-icon + color: "#a349a4" + - state: pants-icon + color: "#583f20" + - state: belt-icon + color: "#363636" + - state: beltbuckle_small-icon + color: "#3e3e3e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#a349a4" + - state: accent-inhand-left + color: "#a349a4" + - state: pants-inhand-left + color: "#583f20" + - state: belt-inhand-left + color: "#363636" + - state: beltbuckle_small-inhand-left + color: "#3e3e3e" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#a349a4" + - state: accent-inhand-right + color: "#a349a4" + - state: pants-inhand-right + color: "#583f20" + - state: belt-inhand-right + color: "#363636" + - state: beltbuckle_small-inhand-right + color: "#3e3e3e" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#a349a4" + - state: accentalt-equipped-INNERCLOTHING + color: "#a349a4" + - state: pants-equipped-INNERCLOTHING + color: "#583f20" + - state: belt-equipped-INNERCLOTHING + color: "#363636" + - state: beltbuckle_small-equipped-INNERCLOTHING + color: "#3e3e3e" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksMNK + name: MNK enviroslacks + description: The iconic enviroslacks, with MNK's signature monochrome aesthetic. Classic! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#363636" + - state: accent-icon + color: "#363636" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#363636" + - state: accent-inhand-left + color: "#363636" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#363636" + - state: accent-inhand-right + color: "#363636" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#363636" + - state: accentalt-equipped-INNERCLOTHING + color: "#363636" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#d6d6d6" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksMNKAlt + name: MNK enviroslacks + description: The iconic enviroslacks, with MNK's signature monochrome aesthetic. Noir! + suffix: Alternative + components: + - type: Sprite + layers: + - state: icon + color: "#3b3b3b" + - state: plaintop-icon + color: "#3b3b3b" + - state: tie-icon + color: "#d6d6d6" + - state: accent-icon + color: "#d6d6d6" + - state: pants-icon + color: "#f2f2f2" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3b3b3b" + - state: plaintop-inhand-left + color: "#3b3b3b" + - state: tie-inhand-left + color: "#d6d6d6" + - state: accent-inhand-left + color: "#d6d6d6" + - state: pants-inhand-left + color: "#f2f2f2" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#3b3b3b" + - state: plaintop-inhand-right + color: "#3b3b3b" + - state: tie-inhand-right + color: "#d6d6d6" + - state: accent-inhand-right + color: "#d6d6d6" + - state: pants-inhand-right + color: "#f2f2f2" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3b3b3b" + - state: plaintop-equipped-INNERCLOTHING + color: "#3b3b3b" + - state: tie-equipped-INNERCLOTHING + color: "#d6d6d6" + - state: accentalt-equipped-INNERCLOTHING + color: "#d6d6d6" + - state: pants-equipped-INNERCLOTHING + color: "#f2f2f2" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#424242" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitEnviroslacksPsychologist + name: psychologist enviroslacks + description: The pet project of a particularly posh Plasmaman, this variant was made for the psychologist. Mind-boggling! + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: plaintop-icon + color: "#ffffff" + - state: tie-icon + color: "#5ba0cf" + - state: accent-icon + color: "#5ba0cf" + - state: pants-icon + color: "#292929" + - state: belt-icon + color: "#737373" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: plaintop-inhand-left + color: "#ffffff" + - state: tie-inhand-left + color: "#5ba0cf" + - state: accent-inhand-left + color: "#5ba0cf" + - state: pants-inhand-left + color: "#292929" + - state: belt-inhand-left + color: "#737373" + right: + - state: inhand-right + color: "#ffffff" + - state: plaintop-inhand-right + color: "#ffffff" + - state: tie-inhand-right + color: "#5ba0cf" + - state: accent-inhand-right + color: "#5ba0cf" + - state: pants-inhand-right + color: "#292929" + - state: belt-inhand-right + color: "#737373" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: plaintop-equipped-INNERCLOTHING + color: "#ffffff" + - state: tie-equipped-INNERCLOTHING + color: "#5ba0cf" + - state: accentalt-equipped-INNERCLOTHING + color: "#5ba0cf" + - state: pants-equipped-INNERCLOTHING + color: "#292929" + - state: belt-equipped-INNERCLOTHING + color: "#737373" + - state: loweraccent-equipped-INNERCLOTHING + color: "#5ba0cf" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +# Color envirosuits +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorWhite + name: white envirosuit + description: A generic white jumpsuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#ffffff" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffffff" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#ffffff" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffffff" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorGrey + name: grey envirosuit + description: A tasteful grey envirosuit that reminds you of the good old days. + components: + - type: Sprite + layers: + - state: icon + color: "#b3b3b3" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#b3b3b3" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#b3b3b3" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#b3b3b3" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorBlack + name: black envirosuit + description: A generic black envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#3f3f3f" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3f3f3f" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#3f3f3f" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3f3f3f" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorRed + name: red envirosuit + description: A dark green envirosuit. + components: + - type: Sprite + layers: + - state: icon + color: "#d1423f" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#d1423f" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#d1423f" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#d1423f" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorGreen + name: green envirosuit + description: A generic green envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#9ed63a" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9ed63a" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#9ed63a" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#9ed63a" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorDarkGreen + name: dark green envirosuit + description: A generic dark green envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#79CC26" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#79CC26" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#79CC26" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#79CC26" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorBlue + name: blue envirosuit + description: A generic blue envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#52aecc" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#52aecc" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#52aecc" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#52aecc" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorDarkBlue + name: dark blue envirosuit + description: A generic dark blue envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#3285ba" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#3285ba" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#3285ba" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#3285ba" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorTeal + name: teal envirosuit + description: A generic teal envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#77f3b7" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#77f3b7" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#77f3b7" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#77f3b7" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorMaroon + name: maroon envirosuit + description: A generic maroon envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#cc295f" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#cc295f" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#cc295f" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#cc295f" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorPink + name: pink envirosuit + description: >- + "Plasmamen can't slay" and other jokes you can tell yourself. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8cff" + - state: accent-icon + color: "#8b3e8c" + - state: corneraccent-icon + color: "#8b3e8c" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8cff" + - state: accent-inhand-left + color: "#8b3e8c" + - state: corneraccent-inhand-left + color: "#8b3e8c" + right: + - state: inhand-right + color: "#ff8cff" + - state: accent-inhand-right + color: "#8b3e8c" + - state: corneraccent-inhand-right + color: "#8b3e8c" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ff8cff" + - state: accent-equipped-INNERCLOTHING + color: "#8b3e8c" + - state: loweraccent-equipped-INNERCLOTHING + color: "#8b3e8c" + - state: corneraccent-equipped-INNERCLOTHING + color: "#8b3e8c" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorYellow + name: yellow envirosuit + description: A generic yellow envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#ffe14d" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ffe14d" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#ffe14d" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ffe14d" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorPurple + name: purple envirosuit + description: A generic purple envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#9f70cc" + - state: accent-icon + color: "#843b85" + - state: corneraccent-icon + color: "#843b85" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#9f70cc" + - state: accent-inhand-left + color: "#843b85" + - state: corneraccent-inhand-left + color: "#843b85" + right: + - state: inhand-right + color: "#9f70cc" + - state: accent-inhand-right + color: "#843b85" + - state: corneraccent-inhand-right + color: "#843b85" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#9f70cc" + - state: accent-equipped-INNERCLOTHING + color: "#843b85" + - state: loweraccent-equipped-INNERCLOTHING + color: "#843b85" + - state: corneraccent-equipped-INNERCLOTHING + color: "#843b85" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorOrange + name: orange envirosuit + description: Don't wear this near paranoid security officers. + components: + - type: Sprite + layers: + - state: icon + color: "#ff8c19" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#ff8c19" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#ff8c19" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#ff8c19" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorLightBrown + name: light brown envirosuit + description: A generic light brown envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#a17229" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a17229" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#a17229" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#a17229" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" + +- type: entity + parent: ClothingUniformEnvirosuitCustomBase + id: ClothingUniformEnvirosuitColorBrown + name: brown envirosuit + description: A generic brown envirosuit with no rank markings. + components: + - type: Sprite + layers: + - state: icon + color: "#543e1b" + - state: accent-icon + color: "#a349a4" + - state: corneraccent-icon + color: "#a349a4" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#543e1b" + - state: accent-inhand-left + color: "#a349a4" + - state: corneraccent-inhand-left + color: "#a349a4" + right: + - state: inhand-right + color: "#543e1b" + - state: accent-inhand-right + color: "#a349a4" + - state: corneraccent-inhand-right + color: "#a349a4" + - type: Clothing + clothingVisuals: + jumpsuit: + - state: equipped-INNERCLOTHING + color: "#543e1b" + - state: accent-equipped-INNERCLOTHING + color: "#a349a4" + - state: loweraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: corneraccent-equipped-INNERCLOTHING + color: "#a349a4" + - state: soles-equipped-INNERCLOTHING + color: "#bababa" diff --git a/Resources/Prototypes/Entities/Effects/weapon_arc.yml b/Resources/Prototypes/Entities/Effects/weapon_arc.yml index 0f3fab0e87..556347f0d9 100644 --- a/Resources/Prototypes/Entities/Effects/weapon_arc.yml +++ b/Resources/Prototypes/Entities/Effects/weapon_arc.yml @@ -127,3 +127,29 @@ state: smash - type: TimedDespawn lifetime: 0.299 + +- type: entity + id: WeaponArcPurplePunch # Not inheriting so we don't have EffectVisuals to delete the entity + categories: [ HideSpawnMenu ] # on LightFade animation complete, which causes a + components: # "Predicting the queued deletion of a networked entity" error on tests. + - type: Sprite + sprite: Effects/arcs.rsi + layers: + - state: punch + color: "#ff80f4" + drawdepth: Effects + - type: WeaponArcVisuals + fadeOut: false + - type: TimedDespawn + lifetime: 0.549 + - type: PointLight + radius: 1.13 + energy: 50 + color: "#ff11d5" + netsync: false + - type: LightFade + rampUpDuration: 0.1 + duration: 0.449 + - type: Tag + tags: + - HideContextMenu diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 794d0fb90c..90ea582271 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/Markers/Spawners/bots.yml b/Resources/Prototypes/Entities/Markers/Spawners/bots.yml index 9f0823f48e..c5241673a1 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/bots.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/bots.yml @@ -26,3 +26,30 @@ prototypes: - MobCleanBot +- type: entity + name: disablerbot spawner + id: SpawnMobDisablerBot + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Mobs/Silicon/Bots/disablerbot.rsi + state: disablerbot + - type: ConditionalSpawner + prototypes: + - MobDisablerBot + +- type: entity + name: batonbot spawner + id: SpawnMobBatonBot + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Mobs/Silicon/Bots/batonbot.rsi + state: batonbot + - type: ConditionalSpawner + prototypes: + - MobBatonBot diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml index eb1723eb23..042726ad11 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml @@ -418,3 +418,17 @@ sprites: - sprite: Mobs/Customization/face.rsi state: neck_thick_m + +- type: marking + id: IronJaw + bodyPart: Face + markingCategory: Face + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne, Lamia] + coloring: + default: + type: + !type:EyeColoring + negative: true + sprites: + - sprite: _ADT/Mobs/Customization/augments/headaugs.rsi + state: iron_jaw diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml index b5219e0ab7..ae8da472ce 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml @@ -2,7 +2,7 @@ id: GauzeLefteyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Harpy, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -16,7 +16,7 @@ id: GauzeLefteyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Harpy, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -30,7 +30,7 @@ id: GauzeRighteyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Harpy, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -44,7 +44,7 @@ id: GauzeRighteyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Harpy, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -58,7 +58,7 @@ id: GauzeBlindfold bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Harpy, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Harpy, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Harpy, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Harpy, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -72,7 +72,7 @@ id: GauzeShoulder bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -86,7 +86,7 @@ id: GauzeStomach bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -100,7 +100,7 @@ id: GauzeUpperArmRight bodyPart: RArm markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -114,7 +114,7 @@ id: GauzeLowerArmRight bodyPart: RArm, RHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Lamia, Tajaran, Harpy, Rodentia] # Delta V - Felinid, Oni, Vulpkanin; Einstein Engines - Tajaran coloring: default: type: @@ -128,7 +128,7 @@ id: GauzeLeftArm bodyPart: LArm, LHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Rodentia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Rodentia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -142,7 +142,7 @@ id: GauzeLowerLegLeft bodyPart: LFoot markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Rodentia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Rodentia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -156,7 +156,7 @@ id: GauzeUpperLegLeft bodyPart: LLeg markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Rodentia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Rodentia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -170,7 +170,7 @@ id: GauzeUpperLegRight bodyPart: RLeg markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Rodentia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Rodentia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -184,7 +184,7 @@ id: GauzeLowerLegRight bodyPart: RFoot markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Rodentia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Rodentia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -198,7 +198,7 @@ id: GauzeBoxerWrapRight bodyPart: RHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -212,7 +212,7 @@ id: GauzeBoxerWrapLeft bodyPart: LHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Vulpkanin, Rodentia + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne, Rodentia, Lamia, Tajaran] # Delta V - Felinid, Oni, Vulpkanin, Rodentia coloring: default: type: @@ -222,6 +222,20 @@ - sprite: Mobs/Customization/gauze.rsi state: gauze_boxerwrap_l +- type: marking + id: GauzeHead + bodyPart: Head + markingCategory: Overlay + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne, Lamia] # Delta V - Felinid, Oni, Vulpkanin # EE - Arachne, Lamia + coloring: + default: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: Mobs/Customization/gauze.rsi + state: gauze_head + # Lizard Specific Markings - type: marking id: GauzeLizardLefteyePatch @@ -298,7 +312,7 @@ id: GauzeMothBlindfold bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -312,7 +326,7 @@ id: GauzeMothShoulder bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -326,7 +340,7 @@ id: GauzeMothStomach bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -340,7 +354,7 @@ id: GauzeMothLeftEyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -354,7 +368,7 @@ id: GauzeMothLeftEyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -368,7 +382,7 @@ id: GauzeMothRightEyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -382,7 +396,7 @@ id: GauzeMothRightEyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -396,7 +410,7 @@ id: GauzeMothUpperArmRight bodyPart: RArm markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -410,7 +424,7 @@ id: GauzeMothUpperArmLeft bodyPart: LArm markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -424,7 +438,7 @@ id: GauzeMothUpperLegRight bodyPart: RLeg markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -438,7 +452,7 @@ id: GauzeMothUpperLegLeft bodyPart: LLeg markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -452,7 +466,7 @@ id: GauzeMothLowerLegRight bodyPart: RFoot markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: @@ -466,7 +480,7 @@ id: GauzeMothLowerLegLeft bodyPart: LFoot markingCategory: Overlay - speciesRestriction: [Moth] + speciesRestriction: [Moth, Chitinid] # Delta V - Chitinid coloring: default: type: diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml index 75406202df..af0674eb76 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml @@ -54,6 +54,13 @@ sprites: - sprite: Mobs/Customization/human_hair.rsi state: bedheadv3 +- type: marking + id: HumanHairPulato + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: Mobs/Customization/human_hair.rsi + state: pulato - type: marking id: HumanHairLongBedhead bodyPart: Hair @@ -1349,6 +1356,27 @@ sprites: - sprite: Mobs/Customization/human_hair.rsi state: tailed +- type: marking + id: HumanHairClassicLong2 + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: Mobs/Customization/human_hair.rsi + state: classiclong2 +- type: marking + id: HumanHairClassicLong3 + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: Mobs/Customization/human_hair.rsi + state: classiclong3 +- type: marking + id: HumanHairShaped + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: Mobs/Customization/human_hair.rsi + state: shaped - type: marking id: HumanHairLongBow bodyPart: Hair diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/plasmaman_wings.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/plasmaman_wings.yml new file mode 100644 index 0000000000..a66528a75a --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/plasmaman_wings.yml @@ -0,0 +1,8 @@ +- type: marking + id: WingsSkeleton + bodyPart: Wings + markingCategory: Wings + speciesRestriction: [Plasmaman] + sprites: + - sprite: _SimpleStation/Mobs/Customization/wings64x34.rsi + state: skeleton diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml index 53a0beac3f..9f58b1aa08 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml @@ -83,7 +83,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni, Harpy, Arachne, Lamia] + speciesRestriction: [Oni] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_none diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml index 41d104e1f7..1c8848f276 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml @@ -2,7 +2,7 @@ id: ScarEyeRight bodyPart: Head markingCategory: Head - speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Harpy, Rodentia + speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni, Arachne, Rodentia, Lamia, Tajaran] # Delta V - Felinid, Oni, Harpy, Rodentia followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi @@ -12,7 +12,7 @@ id: ScarEyeLeft bodyPart: Head markingCategory: Head - speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni, Arachne, Rodentia, Lamia] # Delta V - Felinid, Oni, Harpy, Rodentia + speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni, Arachne, Rodentia, Lamia, Tajaran] # Delta V - Felinid, Oni, Harpy, Rodentia followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi @@ -22,7 +22,7 @@ id: ScarTopSurgeryShort bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne, Lamia] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sexRestriction: [Male] followSkinColor: true sprites: @@ -33,7 +33,7 @@ id: ScarTopSurgeryLong bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne, Lamia] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne, Lamia, Tajaran] sexRestriction: [Male] followSkinColor: true sprites: @@ -44,7 +44,7 @@ id: ScarChest bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne, Lamia] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml index a8cf08e837..c5245337e0 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml @@ -114,7 +114,7 @@ id: TattooEyeRight bodyPart: Eyes markingCategory: Head - speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Rodentia, Lamia] # Delta V - Felinid, Oni, Harpy, Rodentia + speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Rodentia, Lamia, Plasmaman] # Delta V - Felinid, Oni, Harpy, Rodentia coloring: default: type: @@ -128,7 +128,7 @@ id: TattooEyeLeft bodyPart: Eyes markingCategory: Head - speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Rodentia, Lamia] # Delta V - Felinid, Oni, Harpy, Rodentia + speciesRestriction: [Human, SlimePerson, Reptilian, Dwarf, Felinid, Oni, Harpy, Rodentia, Lamia, Plasmaman] # Delta V - Felinid, Oni, Harpy, Rodentia coloring: default: type: diff --git a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml index b491d9b918..bd416eb7fb 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml @@ -42,7 +42,7 @@ id: CyberLimbsMarkingBishopLArm bodyPart: LArm markingCategory: LeftArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: l_arm-primary @@ -55,7 +55,7 @@ id: CyberLimbsMarkingBishopLHand bodyPart: LHand markingCategory: LeftHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: l_hand @@ -64,7 +64,7 @@ id: CyberLimbsMarkingBishopLLeg bodyPart: LLeg markingCategory: LeftLeg - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: l_leg-primary @@ -76,7 +76,7 @@ id: CyberLimbsMarkingBishopLFoot bodyPart: LFoot markingCategory: LeftFoot - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: l_foot @@ -87,7 +87,7 @@ id: CyberLimbsMarkingBishopRArm bodyPart: RArm markingCategory: RightArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: r_arm-primary @@ -101,7 +101,7 @@ id: CyberLimbsMarkingBishopRHand bodyPart: RHand markingCategory: RightHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: r_hand @@ -110,7 +110,7 @@ id: CyberLimbsMarkingBishopRLeg bodyPart: RLeg markingCategory: RightLeg - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: r_leg-primary @@ -122,7 +122,7 @@ id: CyberLimbsMarkingBishopRFoot bodyPart: RFoot markingCategory: RightFoot - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: r_foot diff --git a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml index e907975116..abac4e6d53 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml @@ -37,7 +37,7 @@ id: CyberLimbsMarkingHesphiastosLArm bodyPart: LArm markingCategory: LeftArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: l_arm-1 @@ -48,7 +48,7 @@ id: CyberLimbsMarkingHesphiastosLHand bodyPart: LHand markingCategory: LeftHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: l_hand-1 @@ -59,7 +59,7 @@ id: CyberLimbsMarkingHesphiastosLLeg bodyPart: LLeg markingCategory: LeftLeg - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: l_leg-1 @@ -71,7 +71,7 @@ id: CyberLimbsMarkingHesphiastosLFoot bodyPart: LFoot markingCategory: LeftFoot - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: l_foot-1 @@ -84,7 +84,7 @@ id: CyberLimbsMarkingHesphiastosRArm bodyPart: RArm markingCategory: RightArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_arm-1 @@ -96,7 +96,7 @@ id: CyberLimbsMarkingHesphiastosRHand bodyPart: RHand markingCategory: RightHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne, Lamia, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_hand-1 @@ -108,7 +108,7 @@ id: CyberLimbsMarkingHesphiastosRLeg bodyPart: RLeg markingCategory: RightLeg - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_leg-1 @@ -120,7 +120,7 @@ id: CyberLimbsMarkingHesphiastosRFoot bodyPart: RFoot markingCategory: RightFoot - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Tajaran] # Einstein Engines - Tajaran sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_foot-1 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/batonbot.yml b/Resources/Prototypes/Entities/Mobs/NPCs/batonbot.yml new file mode 100644 index 0000000000..0e85f7538e --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/batonbot.yml @@ -0,0 +1,75 @@ +- type: entity + parent: MobSiliconBase + id: MobBatonBot + name: batonbot + description: Defends the station from hostile wildlife. + components: + - type: Sprite + sprite: Mobs/Silicon/Bots/batonbot.rsi + state: batonbot + - type: Construction + graph: BatonBot + node: bot + - type: SentienceTarget + flavorKind: station-event-random-sentience-flavor-mechanical + - type: UseDelay + delay: 1 + - type: NpcFactionMember + factions: + - NanoTrasen + - type: CombatMode + - type: Stunbaton + energyPerUse: 0 + - type: MeleeWeapon + altDisarm: false + soundHit: + path: /Audio/Weapons/egloves.ogg + angle: 0 + animation: WeaponArcPunch + damage: + types: + Shock: 4 + - type: StaminaDamageOnHit + damage: 20 + sound: /Audio/Weapons/egloves.ogg + - type: MobThresholds + thresholds: + 0: Alive + 60: Dead + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:TriggerBehavior + - trigger: + !type:DamageTrigger + damage: 60 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + ProximitySensor: + min: 1 + max: 1 + - !type:SpawnEntitiesBehavior + spawn: + Stunbaton: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 3 + - type: HTN + rootTask: + task: BatonbotCompound + blackboard: + AttackDelayDeviation: !type:Single + 0.3 + - type: InteractionPopup + interactSuccessString: petting-success-batonbot + interactFailureString: petting-failure-batonbot + interactSuccessSound: + path: /Audio/Ambience/Objects/periodic_beep.ogg diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/disablerbot.yml b/Resources/Prototypes/Entities/Mobs/NPCs/disablerbot.yml new file mode 100644 index 0000000000..d0470e09b3 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/disablerbot.yml @@ -0,0 +1,80 @@ +- type: entity + parent: MobSiliconBase + id: MobDisablerBot + name: disablerbot + description: Defends the station from hostile wildlife. + components: + - type: StaticPrice + price: 545 + - type: Sprite + sprite: Mobs/Silicon/Bots/disablerbot.rsi + state: disablerbot + - type: Construction + graph: DisablerBot + node: bot + - type: SentienceTarget + flavorKind: station-event-random-sentience-flavor-mechanical + - type: UseDelay + delay: 1 + - type: NpcFactionMember + factions: + - NanoTrasen + - type: CombatMode + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 300 + - type: Battery + maxCharge: 10000 + startingCharge: 10000 + - type: Gun + fireRate: 1 + minAngle: 2 + maxAngle: 10 + angleIncrease: 2 + angleDecay: 5 + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: ProjectileBatteryAmmoProvider + proto: BulletDisablerSmg + fireCost: 1 + - type: MobThresholds + thresholds: + 0: Alive + 60: Dead + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:TriggerBehavior + - trigger: + !type:DamageTrigger + damage: 60 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + ProximitySensor: + min: 1 + max: 1 + - !type:SpawnEntitiesBehavior + spawn: + WeaponDisabler: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 3 + - type: HTN + rootTask: + task: DisablerbotCompound + blackboard: + AttackDelayDeviation: !type:Single + 0.3 + - type: InteractionPopup + interactSuccessString: petting-success-disablerbot + interactFailureString: petting-failure-disablerbot + interactSuccessSound: + path: /Audio/Ambience/Objects/periodic_beep.ogg diff --git a/Resources/Prototypes/Entities/Mobs/Player/diona.yml b/Resources/Prototypes/Entities/Mobs/Player/diona.yml index 85c5631de7..afd8e9c043 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/diona.yml @@ -20,4 +20,3 @@ name: Reformed Diona components: - type: IsDeadIC - - type: RandomHumanoidAppearance diff --git a/Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml b/Resources/Prototypes/Entities/Mobs/Player/plasmaman.yml new file mode 100644 index 0000000000..7fa3bf2f86 --- /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/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 0b350b2280..93f7826466 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -50,6 +50,7 @@ - map: [ "enum.HumanoidVisualLayers.HeadSide" ] - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "enum.HumanoidVisualLayers.Wings" ] - map: [ "mask" ] - map: [ "head" ] - map: [ "pocket1" ] @@ -313,6 +314,11 @@ heatDamage: types: Heat: 1.5 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 293: 0.8 + 280: 0.6 + 260: 0.4 - type: ThermalRegulator metabolismHeat: 800 radiatedHeat: 100 diff --git a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml index 4ed815ef31..3650e23814 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml @@ -143,6 +143,7 @@ - type: entity save: false + categories: [ HideSpawnMenu ] name: Urist McBirb parent: MobHumanDummy id: MobHarpyDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index 721724460c..86d8872e3c 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -68,6 +68,11 @@ heatDamage: types: Heat : 3 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 289: 0.8 + 275: 0.6 + 250: 0.4 - type: Sprite # sprite again because we want different layer ordering noRot: true drawdepth: Mobs diff --git a/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml b/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml new file mode 100644 index 0000000000..a79ec0bd10 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Species/plasmaman.yml @@ -0,0 +1,156 @@ +- type: entity + parent: BaseMobSpeciesOrganic + id: BaseMobPlasmaman + name: Urist McPlasma + abstract: true + components: + - type: Icon + sprite: Mobs/Species/Plasmaman/parts.rsi + state: full + - type: Sprite + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.Face" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - shader: StencilClear + sprite: Mobs/Species/Human/parts.rsi + state: l_leg + - shader: StencilMask + map: ["enum.HumanoidVisualLayers.StencilMask"] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false + - map: ["enum.HumanoidVisualLayers.LFoot"] + - map: ["enum.HumanoidVisualLayers.RFoot"] + - map: ["jumpsuit"] # jumpsuit after foot to show envirosuit shoes + - map: ["enum.HumanoidVisualLayers.LHand"] + - map: ["enum.HumanoidVisualLayers.RHand"] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "innerBelt" ] + - map: [ "innerNeck" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "id" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: ["enum.HumanoidVisualLayers.Handcuffs"] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_human" + visible: false + - type: Carriable + - type: Body + prototype: Plasmaman + requiredLegs: 2 + gibSound: /Audio/Effects/bone_rattle.ogg + - type: Bloodstream + bloodlossThreshold: 0 + bleedReductionAmount: 0 + maxBleedAmount: 0 + bloodlossDamage: + types: + Blunt: 0 + bloodlossHealDamage: + types: + Blunt: 0 + bloodRefreshAmount: 0 + bloodRegenerationHunger: 0 + bloodRegenerationThirst: 0 + bloodMaxVolume: 0 + - type: Damageable + damageModifierSet: Plasmaman + - type: DamageVisuals + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#555555AA" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + - type: MeleeWeapon + soundHit: + collection: FirePunch + animation: WeaponArcPurplePunch + damage: + types: # oooh scarier extra damage~ + Heat: 5 + Blunt: 2.25 + - type: DamageOnHit + damage: + types: + Heat: 1 + targetParts: [ RightHand, LeftHand ] + - type: Speech + speechVerb: Skeleton + - type: Vocal + sounds: + Male: UnisexPlasmaman + Female: UnisexPlasmaman + Unsexed: UnisexPlasmaman + - type: Butcherable + butcheringType: Spike + spawned: + - id: SheetPlasma1 + amount: 8 + - type: Inventory + templateId: plasmaman + - type: Temperature + heatDamageThreshold: 313 # 40 celsius, -12 from base heat damage threshold + currentTemperature: 270.15 # -3 celsius + specificHeat: 46 + coldDamage: + types: + Cold: 0 + heatDamage: + types: + Heat: 3 + - type: ThermalRegulator + normalBodyTemperature: 270.15 + - type: Flammable + firestackFade: -0.05 + - type: HumanoidAppearance + species: Plasmaman + hideLayersOnEquip: + - Hair + - Snout + - type: TypingIndicator + proto: plasmaman + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Calcic + understands: + - TauCetiBasic + - Calcic + - type: FootPrints + +- type: entity + parent: BaseSpeciesDummy + id: MobPlasmamanDummy + categories: [ HideSpawnMenu ] + components: + - type: HumanoidAppearance + species: Plasmaman + - type: Inventory + templateId: plasmaman diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index 0eff3c1fc2..1d1768bb37 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -61,6 +61,11 @@ heatDamage: types: Heat : 1.5 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 301: 0.8 + 295: 0.6 + 285: 0.4 - type: Wagging - type: LanguageKnowledge speaks: diff --git a/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml b/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml index 5f9812f490..60606a92fc 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/Devices/translator_implants.yml b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml index 97e244798b..4c1b14e751 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml @@ -156,3 +156,33 @@ - Azaziba requires: - Draconic + +- type: entity + parent: BaseSubdermalImplant + id: ChittinTranslatorImplant + name: chittin translator implant + description: An implant giving the ability to understand and speak Chittin. + categories: [ HideSpawnMenu ] + components: + - type: TranslatorImplant + understood: + - Chittin + spoken: + - Chittin + requires: + - TauCetiBasic + +- type: entity + parent: BaseSubdermalImplant + id: SiikMaasTranslatorImplant + name: siik'maas translator implant + description: An implant giving the ability to understand and speak Siik'maas. + categories: [ HideSpawnMenu ] + components: + - type: TranslatorImplant + understood: + - SiikMaas + spoken: + - SiikMaas + requires: + - TauCetiBasic diff --git a/Resources/Prototypes/Entities/Objects/Devices/translators.yml b/Resources/Prototypes/Entities/Objects/Devices/translators.yml index 384e58d3d4..dfbd51a3b3 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translators.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translators.yml @@ -254,4 +254,38 @@ - Azaziba requires: - Draconic - - Azaziba \ No newline at end of file + - Azaziba + +- type: entity + id: ChittinTranslator + parent: [ TranslatorPoweredBase ] + name: Chittin translator + description: Translates speech between Chittin and Tau-Ceti Basic. For talking to Chitinids! + components: + - type: HandheldTranslator + spoken: + - TauCetiBasic + - Chittin + understood: + - TauCetiBasic + - Chittin + requires: + - TauCetiBasic + - Chittin + +- type: entity + id: SiikMaasTranslator + parent: [ TranslatorPoweredBase ] + name: Siik'maas translator + description: Translates speech between Siik'maas and Tau-Ceti Basic. For talking to Tajara! + components: + - type: HandheldTranslator + spoken: + - TauCetiBasic + - SiikMaas + understood: + - TauCetiBasic + - SiikMaas + requires: + - TauCetiBasic + - SiikMaas diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index eb8804504c..1d413c772b 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -2165,16 +2165,16 @@ damage: 0.8 - type: EmitSoundOnActivate sound: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse.ogg - type: EmitSoundOnUse sound: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushuse.ogg - type: EmitSoundOnCollide sound: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg - type: EmitSoundOnLand sound: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg - type: UseDelay delay: 1.5 - type: MeleeWeapon @@ -2184,8 +2184,8 @@ types: Blunt: 0 soundHit: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg soundSwing: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg soundNoDamage: - path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow1.ogg + path: /Audio/Items/Toys/Plushie/PlushieJenn/jennplushthrow.ogg diff --git a/Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml b/Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml new file mode 100644 index 0000000000..b595862628 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/extinguisher_refill.yml @@ -0,0 +1,34 @@ +- type: entity + parent: BaseItem + id: EnvirosuitExtinguisherRefill + name: envirosuit extinguisher refill + description: A cartridge loaded with a compressed extinguisher mix, used to refill the self-extinguisher on plasma envirosuits. + components: + - type: Sprite + sprite: Objects/Misc/extinguisher_refill.rsi + layers: + - state: icon + - type: Item + sprite: Objects/Misc/extinguisher_refill.rsi + size: Small + - type: SelfExtinguisherRefill + refillAmount: 10 + - type: GuideHelp + guides: [ Plasmaman ] + - type: MeleeWeapon # Same values as double emergency tank + attackRate: 0.9 + wideAnimationRotation: 45 + range: 1.75 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 2.5 + heavyRateModifier: 1.25 + heavyDamageBaseModifier: 1.5 + heavyStaminaCost: 10 + maxTargets: 3 + angle: 100 + soundHit: + path: /Audio/Weapons/smash.ogg + - type: DamageOtherOnHit + staminaCost: 5 diff --git a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml index 53da8e72a5..6c4b84c1f8 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml @@ -90,4 +90,20 @@ name: azaziba translator implant components: - type: Implanter - implant: AzazibaTranslatorImplant \ No newline at end of file + implant: AzazibaTranslatorImplant + +- type: entity + id: ChittinTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: chittin translator implant + components: + - type: Implanter + implant: ChittinTranslatorImplant + +- type: entity + id: SiikMaasTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: siik'maas translator implant + components: + - type: Implanter + implant: SiikMaasTranslatorImplant diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index 4db76a9796..0edf59065e 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -134,6 +134,19 @@ - type: Clothing sprite: Objects/Tanks/emergency_red.rsi +- type: entity + parent: EmergencyOxygenTank + id: EmergencyPlasmaTank + name: emergency plasma tank + description: An easily portable tank for emergencies. Contains very little plasma, rated for survival use only. + components: + - type: Sprite + sprite: Objects/Tanks/emergency_red.rsi # TODO: emergency plasma tank sprite + - type: Item + sprite: Objects/Tanks/emergency_red.rsi + - type: Clothing + sprite: Objects/Tanks/emergency_red.rsi + - type: entity parent: EmergencyOxygenTank id: ExtendedEmergencyOxygenTank @@ -164,6 +177,19 @@ - type: Clothing sprite: Objects/Tanks/emergency_extended_red.rsi +- type: entity + parent: ExtendedEmergencyOxygenTank + id: ExtendedEmergencyPlasmaTank + name: extended-capacity emergency plasma tank + description: An emergency tank with extended capacity. Technically rated for prolonged use. + components: + - type: Sprite + sprite: Objects/Tanks/emergency_extended_red.rsi # TODO: extended-capacity emergency plasma tank sprite + - type: Item + sprite: Objects/Tanks/emergency_extended_red.rsi + - type: Clothing + sprite: Objects/Tanks/emergency_extended_red.rsi + - type: entity parent: ExtendedEmergencyOxygenTank id: DoubleEmergencyOxygenTank @@ -201,6 +227,19 @@ - type: Clothing sprite: Objects/Tanks/emergency_double_red.rsi +- type: entity + parent: DoubleEmergencyOxygenTank + id: DoubleEmergencyPlasmaTank + name: plasma internals tank + description: A tank of plasma designed to be internals for Plasmamen. + components: + - type: Sprite + sprite: Objects/Tanks/plasmaman.rsi + - type: Item + sprite: Objects/Tanks/plasmaman.rsi + - type: Clothing + sprite: Objects/Tanks/plasmaman.rsi + - type: entity parent: EmergencyOxygenTank id: EmergencyFunnyOxygenTank @@ -243,7 +282,7 @@ parent: GasTankBase id: PlasmaTank name: plasma tank - description: Contains dangerous plasma. Do not inhale. Extremely flammable. + description: Contains dangerous plasma. Do not inhale, unless you're a plasmaman. Extremely flammable. components: - type: Sprite sprite: Objects/Tanks/plasma.rsi diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index fcb41ceef3..4cea55becf 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -187,6 +187,7 @@ - SyndieSet - SleeperSet - CommunicatorSet + - CommunicatorSetPlasmaman - SmugglerSet - type: ActivatableUI key: enum.ThiefBackpackUIKey.Key diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 2200d6bb22..df4641827b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -529,6 +529,7 @@ tags: - Taser - Sidearm + - WeaponDisabler - type: Sprite sprite: Objects/Weapons/Guns/Battery/disabler.rsi layers: @@ -913,4 +914,4 @@ autoRecharge: true autoRechargeRate: 24 autoRechargePause: true - autoRechargePauseTime: 10 \ No newline at end of file + autoRechargePauseTime: 10 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml index 561af78a56..1a63aa5a4d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml @@ -9,6 +9,9 @@ layers: - state: stunbaton_off map: [ "enum.ToggleVisuals.Layer" ] + - type: Tag + tags: + - Stunbaton - type: Stunbaton energyPerUse: 50 - type: ItemToggle diff --git a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml index d78ed1182c..e3c740cf95 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml @@ -86,6 +86,7 @@ - type: SolutionContainerManager solutions: buffer: {} + pillBuffer: {} - type: DumpableSolution solution: buffer unlimited: true diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 7a8611bb70..4630a57f13 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -698,6 +698,8 @@ - TorsoBorgService - MechAirTank # Goobstation - MechThruster # Goobstation + - PowerCageMedium # Goobstation - Powercell to exosuit fab + - PowerCageSmall # Goobstation - Powercell to exosuit fab dynamicRecipes: - ProximitySensor - BorgModuleLightReplacer @@ -773,6 +775,14 @@ - MechEquipmentKineticAccelerator - MechEquipmentHonkerBananaMortar - MechEquipmentHonkerMousetrapMortar + # Goobstation - Modsuits + - ModsuitChestplate + - ModsuitBoots + - ModsuitHelmet + - ModsuitGauntlets + - ModsuitShell + - ModsuitPlatingExternal + - PowerCageHigh # Goobstation - Powercell to exosuit fab - type: EmagLatheRecipes emagDynamicRecipes: - WeaponMechCombatImmolationGun @@ -1211,6 +1221,7 @@ - ChemicalPayload # Nyano - SyringeCryostasis - ClothingEyesNightVisionMedicalGoggles + - EnvirosuitExtinguisherRefill # Shitmed Change - EnergyScalpel - EnergyCautery diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml index ae8689bead..3ffe6d0ac4 100644 --- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml +++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml @@ -246,6 +246,7 @@ components: - BorgChassis - Silicon # Parkstation IPCs + - Inventory # Goobstation - Modsuits - type: Construction containers: - machine_parts diff --git a/Resources/Prototypes/EstacaoPirata/Catalog/uplink_catalog.yml b/Resources/Prototypes/EstacaoPirata/Catalog/uplink_catalog.yml new file mode 100644 index 0000000000..c972f35f38 --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Catalog/uplink_catalog.yml @@ -0,0 +1,9 @@ +- type: listing + id: UplinkSyndicateDeck + name: uplink-syndicate-deck-name + description: uplink-syndicate-deck-desc + productEntity: CardBoxSyndicate + cost: + Telecrystal: 1 + categories: + - UplinkPointless diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/black_cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/black_cards.yml new file mode 100644 index 0000000000..eddc820e21 --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/black_cards.yml @@ -0,0 +1,780 @@ +- type: entity + parent: [ BoxCardboard, BaseBagOpenClose ] + id: CardBoxBase + name: deck box + categories: [ HideSpawnMenu ] + components: + - type: Item + size: Small + shape: + - 0,0,1,1 + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + layers: + - state: black_box + - state: black_box_open + map: [ "openLayer" ] + visible: false + - type: Storage + maxItemSize: Normal + grid: + - 0,0,1,1 + whitelist: + components: + - CardDeck + - type: OpenTriggeredStorageFill + contents: + - id: CardDeckBase + amount: 1 + - type: Appearance + +# Frontier: base stack for card stack component +- type: entity + parent: [BaseItem] + id: CardStackBase + name: stack of cards + abstract: true + components: + - type: Item + size: Small + - type: CardStack + - type: StripMenuHidden + - type: ContainerContainer # Frontier + containers: # Frontier + cardstack-container: !type:Container # Frontier +# End Frontier + +- type: entity + parent: CardStackBase + id: CardHandBase + categories: [ HideSpawnMenu ] + name: hand of cards + components: + - type: CardHand + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_black + - type: UserInterface + interfaces: + enum.CardUiKey.Key: + type: CardHandMenuBoundUserInterface + # - type: ActivatableUI # Frontier + # key: enum.CardUiKey.Key # Frontier + +- type: entity + parent: CardStackBase + id: CardDeckBase + categories: [ HideSpawnMenu ] + name: deck of cards + components: + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: deck_black_full + - type: Item + size: Normal + - type: CardDeck + + +- type: entity + parent: CardBoxBase + id: CardBoxBlack + name: black deck box + components: + - type: Item + size: Small + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + layers: + - state: black_box + - state: black_box_open + map: [ "openLayer" ] + visible: false + - type: OpenTriggeredStorageFill + contents: + - id: CardDeckBlack + amount: 1 + +- type: entity + parent: CardDeckBase + id: CardDeckBlack + name: deck of cards + components: + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: deck_black_full + - type: CardStack + initialContent: + # Clubs + - CardScAceOfClubsBlack + - CardSc2OfClubsBlack + - CardSc3OfClubsBlack + - CardSc4OfClubsBlack + - CardSc5OfClubsBlack + - CardSc6OfClubsBlack + - CardSc7OfClubsBlack + - CardSc8OfClubsBlack + - CardSc9OfClubsBlack + - CardSc10OfClubsBlack + - CardScJackOfClubsBlack + - CardScQueenOfClubsBlack + - CardScKingOfClubsBlack + # Diamonds + - CardScAceOfDiamondsBlack + - CardSc2OfDiamondsBlack + - CardSc3OfDiamondsBlack + - CardSc4OfDiamondsBlack + - CardSc5OfDiamondsBlack + - CardSc6OfDiamondsBlack + - CardSc7OfDiamondsBlack + - CardSc8OfDiamondsBlack + - CardSc9OfDiamondsBlack + - CardSc10OfDiamondsBlack + - CardScJackOfDiamondsBlack + - CardScQueenOfDiamondsBlack + - CardScKingOfDiamondsBlack + # Hearts + - CardScAceOfHeartsBlack + - CardSc2OfHeartsBlack + - CardSc3OfHeartsBlack + - CardSc4OfHeartsBlack + - CardSc5OfHeartsBlack + - CardSc6OfHeartsBlack + - CardSc7OfHeartsBlack + - CardSc8OfHeartsBlack + - CardSc9OfHeartsBlack + - CardSc10OfHeartsBlack + - CardScJackOfHeartsBlack + - CardScQueenOfHeartsBlack + - CardScKingOfHeartsBlack + # Spades + - CardScAceOfSpadesBlack + - CardSc2OfSpadesBlack + - CardSc3OfSpadesBlack + - CardSc4OfSpadesBlack + - CardSc5OfSpadesBlack + - CardSc6OfSpadesBlack + - CardSc7OfSpadesBlack + - CardSc8OfSpadesBlack + - CardSc9OfSpadesBlack + - CardSc10OfSpadesBlack + - CardScJackOfSpadesBlack + - CardScQueenOfSpadesBlack + - CardScKingOfSpadesBlack + # Joker + - CardScJokerBlack + +- type: entity + parent: BaseItem + id: CardBase + name: card + categories: [ HideSpawnMenu ] + components: + - type: EmitSoundOnLand + sound: + collection: cardShove + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_black + - type: Rotatable + - type: Item + size: Small + - type: UseDelay + delay: 0.5 + - type: Card + backSprite: + - sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_black + flipped: true + - type: StripMenuHidden + +# region Black Cards + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc2OfClubsBlack + components: + - type: Card + name: card-sc-2-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc3OfClubsBlack + components: + - type: Card + name: card-sc-3-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc4OfClubsBlack + components: + - type: Card + name: card-sc-4-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc5OfClubsBlack + components: + - type: Card + name: card-sc-5-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc6OfClubsBlack + components: + - type: Card + name: card-sc-6-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc7OfClubsBlack + components: + - type: Card + name: card-sc-7-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc8OfClubsBlack + components: + - type: Card + name: card-sc-8-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc9OfClubsBlack + components: + - type: Card + name: card-sc-9-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc10OfClubsBlack + components: + - type: Card + name: card-sc-10-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScAceOfClubsBlack + components: + - type: Card + name: card-sc-ace-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Clubs_black + + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScJackOfClubsBlack + components: + - type: Card + name: card-sc-jack-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScKingOfClubsBlack + components: + - type: Card + name: card-sc-king-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Clubs_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScQueenOfClubsBlack + components: + - type: Card + name: card-sc-queen-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Clubs_black + + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScJackOfDiamondsBlack + components: + - type: Card + name: card-sc-jack-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScQueenOfDiamondsBlack + components: + - type: Card + name: card-sc-queen-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScKingOfDiamondsBlack + components: + - type: Card + name: card-sc-king-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScAceOfDiamondsBlack + components: + - type: Card + name: card-sc-ace-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc2OfDiamondsBlack + components: + - type: Card + name: card-sc-2-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc3OfDiamondsBlack + components: + - type: Card + name: card-sc-3-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc4OfDiamondsBlack + components: + - type: Card + name: card-sc-4-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc5OfDiamondsBlack + components: + - type: Card + name: card-sc-5-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc6OfDiamondsBlack + components: + - type: Card + name: card-sc-6-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc7OfDiamondsBlack + components: + - type: Card + name: card-sc-7-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc8OfDiamondsBlack + components: + - type: Card + name: card-sc-8-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc9OfDiamondsBlack + components: + - type: Card + name: card-sc-9-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Diamonds_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc10OfDiamondsBlack + components: + - type: Card + name: card-sc-10-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Diamonds_black + + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc2OfHeartsBlack + components: + - type: Card + name: card-sc-2-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc3OfHeartsBlack + components: + - type: Card + name: card-sc-3-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc4OfHeartsBlack + components: + - type: Card + name: card-sc-4-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc5OfHeartsBlack + components: + - type: Card + name: card-sc-5-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc6OfHeartsBlack + components: + - type: Card + name: card-sc-6-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc7OfHeartsBlack + components: + - type: Card + name: card-sc-7-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc8OfHeartsBlack + components: + - type: Card + name: card-sc-8-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc9OfHeartsBlack + components: + - type: Card + name: card-sc-9-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc10OfHeartsBlack + components: + - type: Card + name: card-sc-10-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScKingOfHeartsBlack + components: + - type: Card + name: card-sc-king-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScQueenOfHeartsBlack + components: + - type: Card + name: card-sc-queen-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScJackOfHeartsBlack + components: + - type: Card + name: card-sc-jack-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Hearts_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScAceOfHeartsBlack + components: + - type: Card + name: card-sc-ace-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Hearts_black + + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc2OfSpadesBlack + components: + - type: Card + name: card-sc-2-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc3OfSpadesBlack + components: + - type: Card + name: card-sc-3-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc4OfSpadesBlack + components: + - type: Card + name: card-sc-4-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc5OfSpadesBlack + components: + - type: Card + name: card-sc-5-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc6OfSpadesBlack + components: + - type: Card + name: card-sc-6-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc7OfSpadesBlack + components: + - type: Card + name: card-sc-7-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc8OfSpadesBlack + components: + - type: Card + name: card-sc-8-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc9OfSpadesBlack + components: + - type: Card + name: card-sc-9-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Spades_black + + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardSc10OfSpadesBlack + components: + - type: Card + name: card-sc-10-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScKingOfSpadesBlack + components: + - type: Card + name: card-sc-king-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScQueenOfSpadesBlack + components: + - type: Card + name: card-sc-queen-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScJackOfSpadesBlack + components: + - type: Card + name: card-sc-jack-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScAceOfSpadesBlack + components: + - type: Card + name: card-sc-ace-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Spades_black + +- type: entity + parent: CardBase + categories: [ HideSpawnMenu ] + id: CardScJokerBlack + components: + - type: Card + name: card-sc-joker + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: black_joker + +# endregion Black Cards diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/nt_cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/nt_cards.yml new file mode 100644 index 0000000000..be802ea5ee --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/nt_cards.yml @@ -0,0 +1,690 @@ + +- type: entity + parent: CardBase + id: CardBaseNanotrasen + name: card + components: + - type: Card + backSprite: + - sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_nanotrasen + +- type: entity + parent: CardBoxBase + id: CardBoxNanotrasen + name: nanotrasen deck box + components: + - type: Item + size: Small + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + layers: + - state: nanotrasen_box + - state: nanotrasen_box_open + map: [ "openLayer" ] + visible: false + - type: OpenTriggeredStorageFill + contents: + - id: CardDeckNanotrasen + amount: 1 + +- type: entity + parent: CardDeckBase + id: CardDeckNanotrasen + name: deck of cards + components: + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: deck_nanotrasen_full + - type: CardStack + initialContent: + # Clubs + - CardScAceOfClubsNanotrasen + - CardSc2OfClubsNanotrasen + - CardSc3OfClubsNanotrasen + - CardSc4OfClubsNanotrasen + - CardSc5OfClubsNanotrasen + - CardSc6OfClubsNanotrasen + - CardSc7OfClubsNanotrasen + - CardSc8OfClubsNanotrasen + - CardSc9OfClubsNanotrasen + - CardSc10OfClubsNanotrasen + - CardScJackOfClubsNanotrasen + - CardScQueenOfClubsNanotrasen + - CardScKingOfClubsNanotrasen + # Diamonds + - CardScAceOfDiamondsNanotrasen + - CardSc2OfDiamondsNanotrasen + - CardSc3OfDiamondsNanotrasen + - CardSc4OfDiamondsNanotrasen + - CardSc5OfDiamondsNanotrasen + - CardSc6OfDiamondsNanotrasen + - CardSc7OfDiamondsNanotrasen + - CardSc8OfDiamondsNanotrasen + - CardSc9OfDiamondsNanotrasen + - CardSc10OfDiamondsNanotrasen + - CardScJackOfDiamondsNanotrasen + - CardScQueenOfDiamondsNanotrasen + - CardScKingOfDiamondsNanotrasen + # Hearts + - CardScAceOfHeartsNanotrasen + - CardSc2OfHeartsNanotrasen + - CardSc3OfHeartsNanotrasen + - CardSc4OfHeartsNanotrasen + - CardSc5OfHeartsNanotrasen + - CardSc6OfHeartsNanotrasen + - CardSc7OfHeartsNanotrasen + - CardSc8OfHeartsNanotrasen + - CardSc9OfHeartsNanotrasen + - CardSc10OfHeartsNanotrasen + - CardScJackOfHeartsNanotrasen + - CardScQueenOfHeartsNanotrasen + - CardScKingOfHeartsNanotrasen + # Spades + - CardScAceOfSpadesNanotrasen + - CardSc2OfSpadesNanotrasen + - CardSc3OfSpadesNanotrasen + - CardSc4OfSpadesNanotrasen + - CardSc5OfSpadesNanotrasen + - CardSc6OfSpadesNanotrasen + - CardSc7OfSpadesNanotrasen + - CardSc8OfSpadesNanotrasen + - CardSc9OfSpadesNanotrasen + - CardSc10OfSpadesNanotrasen + - CardScJackOfSpadesNanotrasen + - CardScQueenOfSpadesNanotrasen + - CardScKingOfSpadesNanotrasen + # Joker + - CardScJokerNanotrasen + +# region Nanotrasen Cards + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfClubsNanotrasen + components: + - type: Card + name: card-sc-2-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfClubsNanotrasen + components: + - type: Card + name: card-sc-3-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfClubsNanotrasen + components: + - type: Card + name: card-sc-4-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfClubsNanotrasen + components: + - type: Card + name: card-sc-5-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfClubsNanotrasen + components: + - type: Card + name: card-sc-6-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfClubsNanotrasen + components: + - type: Card + name: card-sc-7-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfClubsNanotrasen + components: + - type: Card + name: card-sc-8-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfClubsNanotrasen + components: + - type: Card + name: card-sc-9-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfClubsNanotrasen + components: + - type: Card + name: card-sc-10-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfClubsNanotrasen + components: + - type: Card + name: card-sc-ace-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Clubs_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfClubsNanotrasen + components: + - type: Card + name: card-sc-jack-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfClubsNanotrasen + components: + - type: Card + name: card-sc-king-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfClubsNanotrasen + components: + - type: Card + name: card-sc-queen-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Clubs_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-jack-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-queen-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-king-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-ace-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-2-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-3-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-4-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-5-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-6-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-7-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-8-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-9-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-10-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Diamonds_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfHeartsNanotrasen + components: + - type: Card + name: card-sc-2-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfHeartsNanotrasen + components: + - type: Card + name: card-sc-3-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfHeartsNanotrasen + components: + - type: Card + name: card-sc-4-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfHeartsNanotrasen + components: + - type: Card + name: card-sc-5-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfHeartsNanotrasen + components: + - type: Card + name: card-sc-6-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfHeartsNanotrasen + components: + - type: Card + name: card-sc-7-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfHeartsNanotrasen + components: + - type: Card + name: card-sc-8-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfHeartsNanotrasen + components: + - type: Card + name: card-sc-9-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfHeartsNanotrasen + components: + - type: Card + name: card-sc-10-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfHeartsNanotrasen + components: + - type: Card + name: card-sc-king-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfHeartsNanotrasen + components: + - type: Card + name: card-sc-queen-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfHeartsNanotrasen + components: + - type: Card + name: card-sc-jack-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfHeartsNanotrasen + components: + - type: Card + name: card-sc-ace-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Hearts_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfSpadesNanotrasen + components: + - type: Card + name: card-sc-2-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfSpadesNanotrasen + components: + - type: Card + name: card-sc-3-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfSpadesNanotrasen + components: + - type: Card + name: card-sc-4-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfSpadesNanotrasen + components: + - type: Card + name: card-sc-5-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfSpadesNanotrasen + components: + - type: Card + name: card-sc-6-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfSpadesNanotrasen + components: + - type: Card + name: card-sc-7-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfSpadesNanotrasen + components: + - type: Card + name: card-sc-8-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfSpadesNanotrasen + components: + - type: Card + name: card-sc-9-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Spades_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfSpadesNanotrasen + components: + - type: Card + name: card-sc-10-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfSpadesNanotrasen + components: + - type: Card + name: card-sc-king-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfSpadesNanotrasen + components: + - type: Card + name: card-sc-queen-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfSpadesNanotrasen + components: + - type: Card + name: card-sc-jack-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfSpadesNanotrasen + components: + - type: Card + name: card-sc-ace-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJokerNanotrasen + components: + - type: Card + name: card-sc-joker + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: nanotrasen_joker + +# endregion Nanotrasen Cards diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/syndicate_cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/syndicate_cards.yml new file mode 100644 index 0000000000..9f8f93cb6a --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/syndicate_cards.yml @@ -0,0 +1,690 @@ + +- type: entity + parent: CardBase + id: CardBaseSyndicate + name: card + components: + - type: Card + backSprite: + - sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_syndicate + +- type: entity + parent: CardBoxBase + id: CardBoxSyndicate + name: syndicate deck box + components: + - type: Item + size: Small + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + layers: + - state: syndicate_box + - state: syndicate_box_open + map: [ "openLayer" ] + visible: false + - type: OpenTriggeredStorageFill + contents: + - id: CardDeckSyndicate + amount: 1 + +- type: entity + parent: CardDeckBase + id: CardDeckSyndicate + name: deck of cards + components: + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: deck_syndicate_full + - type: CardStack + initialContent: + # Clubs + - CardScAceOfClubsSyndicate + - CardSc2OfClubsSyndicate + - CardSc3OfClubsSyndicate + - CardSc4OfClubsSyndicate + - CardSc5OfClubsSyndicate + - CardSc6OfClubsSyndicate + - CardSc7OfClubsSyndicate + - CardSc8OfClubsSyndicate + - CardSc9OfClubsSyndicate + - CardSc10OfClubsSyndicate + - CardScJackOfClubsSyndicate + - CardScQueenOfClubsSyndicate + - CardScKingOfClubsSyndicate + # Diamonds + - CardScAceOfDiamondsSyndicate + - CardSc2OfDiamondsSyndicate + - CardSc3OfDiamondsSyndicate + - CardSc4OfDiamondsSyndicate + - CardSc5OfDiamondsSyndicate + - CardSc6OfDiamondsSyndicate + - CardSc7OfDiamondsSyndicate + - CardSc8OfDiamondsSyndicate + - CardSc9OfDiamondsSyndicate + - CardSc10OfDiamondsSyndicate + - CardScJackOfDiamondsSyndicate + - CardScQueenOfDiamondsSyndicate + - CardScKingOfDiamondsSyndicate + # Hearts + - CardScAceOfHeartsSyndicate + - CardSc2OfHeartsSyndicate + - CardSc3OfHeartsSyndicate + - CardSc4OfHeartsSyndicate + - CardSc5OfHeartsSyndicate + - CardSc6OfHeartsSyndicate + - CardSc7OfHeartsSyndicate + - CardSc8OfHeartsSyndicate + - CardSc9OfHeartsSyndicate + - CardSc10OfHeartsSyndicate + - CardScJackOfHeartsSyndicate + - CardScQueenOfHeartsSyndicate + - CardScKingOfHeartsSyndicate + # Spades + - CardScAceOfSpadesSyndicate + - CardSc2OfSpadesSyndicate + - CardSc3OfSpadesSyndicate + - CardSc4OfSpadesSyndicate + - CardSc5OfSpadesSyndicate + - CardSc6OfSpadesSyndicate + - CardSc7OfSpadesSyndicate + - CardSc8OfSpadesSyndicate + - CardSc9OfSpadesSyndicate + - CardSc10OfSpadesSyndicate + - CardScJackOfSpadesSyndicate + - CardScQueenOfSpadesSyndicate + - CardScKingOfSpadesSyndicate + # Joker + - CardScJokerSyndicate + +# region Syndicate Cards + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfClubsSyndicate + components: + - type: Card + name: card-sc-2-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfClubsSyndicate + components: + - type: Card + name: card-sc-3-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfClubsSyndicate + components: + - type: Card + name: card-sc-4-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfClubsSyndicate + components: + - type: Card + name: card-sc-5-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfClubsSyndicate + components: + - type: Card + name: card-sc-6-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfClubsSyndicate + components: + - type: Card + name: card-sc-7-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfClubsSyndicate + components: + - type: Card + name: card-sc-8-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfClubsSyndicate + components: + - type: Card + name: card-sc-9-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfClubsSyndicate + components: + - type: Card + name: card-sc-10-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfClubsSyndicate + components: + - type: Card + name: card-sc-ace-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Clubs_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfClubsSyndicate + components: + - type: Card + name: card-sc-jack-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfClubsSyndicate + components: + - type: Card + name: card-sc-king-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfClubsSyndicate + components: + - type: Card + name: card-sc-queen-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Clubs_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfDiamondsSyndicate + components: + - type: Card + name: card-sc-jack-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfDiamondsSyndicate + components: + - type: Card + name: card-sc-queen-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfDiamondsSyndicate + components: + - type: Card + name: card-sc-king-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfDiamondsSyndicate + components: + - type: Card + name: card-sc-ace-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfDiamondsSyndicate + components: + - type: Card + name: card-sc-2-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfDiamondsSyndicate + components: + - type: Card + name: card-sc-3-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfDiamondsSyndicate + components: + - type: Card + name: card-sc-4-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfDiamondsSyndicate + components: + - type: Card + name: card-sc-5-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfDiamondsSyndicate + components: + - type: Card + name: card-sc-6-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfDiamondsSyndicate + components: + - type: Card + name: card-sc-7-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfDiamondsSyndicate + components: + - type: Card + name: card-sc-8-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfDiamondsSyndicate + components: + - type: Card + name: card-sc-9-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfDiamondsSyndicate + components: + - type: Card + name: card-sc-10-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Diamonds_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfHeartsSyndicate + components: + - type: Card + name: card-sc-2-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfHeartsSyndicate + components: + - type: Card + name: card-sc-3-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfHeartsSyndicate + components: + - type: Card + name: card-sc-4-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfHeartsSyndicate + components: + - type: Card + name: card-sc-5-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfHeartsSyndicate + components: + - type: Card + name: card-sc-6-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfHeartsSyndicate + components: + - type: Card + name: card-sc-7-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfHeartsSyndicate + components: + - type: Card + name: card-sc-8-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfHeartsSyndicate + components: + - type: Card + name: card-sc-9-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfHeartsSyndicate + components: + - type: Card + name: card-sc-10-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfHeartsSyndicate + components: + - type: Card + name: card-sc-king-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfHeartsSyndicate + components: + - type: Card + name: card-sc-queen-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfHeartsSyndicate + components: + - type: Card + name: card-sc-jack-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfHeartsSyndicate + components: + - type: Card + name: card-sc-ace-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Hearts_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfSpadesSyndicate + components: + - type: Card + name: card-sc-2-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfSpadesSyndicate + components: + - type: Card + name: card-sc-3-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfSpadesSyndicate + components: + - type: Card + name: card-sc-4-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfSpadesSyndicate + components: + - type: Card + name: card-sc-5-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfSpadesSyndicate + components: + - type: Card + name: card-sc-6-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfSpadesSyndicate + components: + - type: Card + name: card-sc-7-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfSpadesSyndicate + components: + - type: Card + name: card-sc-8-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfSpadesSyndicate + components: + - type: Card + name: card-sc-9-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Spades_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfSpadesSyndicate + components: + - type: Card + name: card-sc-10-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfSpadesSyndicate + components: + - type: Card + name: card-sc-king-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfSpadesSyndicate + components: + - type: Card + name: card-sc-queen-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfSpadesSyndicate + components: + - type: Card + name: card-sc-jack-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfSpadesSyndicate + components: + - type: Card + name: card-sc-ace-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJokerSyndicate + components: + - type: Card + name: card-sc-joker + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: syndicate_joker + +# endregion Syndicate Cards diff --git a/Resources/Prototypes/EstacaoPirata/SoundCollections/cards.yml b/Resources/Prototypes/EstacaoPirata/SoundCollections/cards.yml new file mode 100644 index 0000000000..5a7084630c --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/SoundCollections/cards.yml @@ -0,0 +1,50 @@ +- type: soundCollection + id: cardFan + files: + - /Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg + +- type: soundCollection + id: cardOpenPackage + files: + - /Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg + +- type: soundCollection + id: cardPlace + files: + - /Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg + +- type: soundCollection + id: cardShove + files: + - /Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg + +- type: soundCollection + id: cardShuffle + files: + - /Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg + +- type: soundCollection + id: cardSlide + files: + - /Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg + +- type: soundCollection + id: cardTakeOutPackage + files: + - /Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg + - /Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg diff --git a/Resources/Prototypes/Flavors/flavors.yml b/Resources/Prototypes/Flavors/flavors.yml index 7534a8cdc6..bebc40fcc1 100644 --- a/Resources/Prototypes/Flavors/flavors.yml +++ b/Resources/Prototypes/Flavors/flavors.yml @@ -1133,3 +1133,8 @@ id: compressed-meat flavorType: Complex description: flavor-complex-compressed-meat + +- type: flavor + id: plasma + flavorType: Complex + description: flavor-complex-plasma diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index 77bc15dcc5..c739da7c2d 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -14,6 +14,9 @@ - Harpy - Rodentia # Floofstation - Shadowkin + - Plasmaman + - Chitinid + - Tajaran - type: guideEntry id: Arachnid @@ -64,3 +67,13 @@ id: Shadowkin name: species-name-shadowkin text: "/ServerInfo/Guidebook/Mobs/Shadowkin.xml" + +- type: guideEntry + id: Tajaran + name: species-name-tajaran + text: "/ServerInfo/Guidebook/Mobs/Tajaran.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 0000000000..c295cf120b --- /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/chittin.yml b/Resources/Prototypes/Language/Species-Specific/chittin.yml new file mode 100644 index 0000000000..e6de43d5a3 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/chittin.yml @@ -0,0 +1,16 @@ +# Spoken by Chitinids. +- type: language + id: Chittin + isVisibleLanguage: true + speech: + color: "#7d7d7d" + fontId: Only_You + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 # Replacements are really short + maxSyllables: 2 + replacement: + - click + - clack + - buzz + - bizz \ No newline at end of file diff --git a/Resources/Prototypes/Language/Species-Specific/skeleton.yml b/Resources/Prototypes/Language/Species-Specific/skeleton.yml new file mode 100644 index 0000000000..840f00850e --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/skeleton.yml @@ -0,0 +1,59 @@ +- type: language + id: Calcic + isVisibleLanguage: true + speech: + fontId: LDFComicSans + color: "#e3dac9" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 4 + replacement: + - k + - ck + - ack + - ick + - cl + - tk + - sk + - isk + - tak + - kl + - hs + - ss + - ks + - lk + - dk + - gk + - ka + - ska + - la + - pk + - wk + - ak + - ik + - ip + - ski + - bk + - kb + - ta + - is + - it + - li + - di + - ds + - ya + - sck + - crk + - hs + - ws + - mk + - aaa + - skraa + - skee + - hss + - raa + - klk + - tk + - stk + - clk diff --git a/Resources/Prototypes/Loadouts/Generic/hands.yml b/Resources/Prototypes/Loadouts/Generic/hands.yml index 4afc2f0513..21e37d82aa 100644 --- a/Resources/Prototypes/Loadouts/Generic/hands.yml +++ b/Resources/Prototypes/Loadouts/Generic/hands.yml @@ -108,7 +108,11 @@ - ClothingHandsGlovesColorWhite requirements: - !type:CharacterItemGroupRequirement - group: LoadoutGloves2 + group: LoadoutGloves + - !type:CharacterSpeciesRequirement # Use the envirogloves that use the same sprite instead. + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutHandsColorYellowBudget @@ -168,7 +172,11 @@ - ClothingHandsGlovesFingerless requirements: - !type:CharacterItemGroupRequirement - group: LoadoutGloves2 + group: LoadoutGloves + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutHandsGlovesEvening @@ -180,4 +188,8 @@ - ClothingHandsGlovesEvening requirements: - !type:CharacterItemGroupRequirement - group: LoadoutGloves \ No newline at end of file + group: LoadoutGloves + - !type:CharacterSpeciesRequirement # Use the evening envirogloves that use the same sprite instead. + inverted: true + species: + - Plasmaman diff --git a/Resources/Prototypes/Loadouts/Generic/items.yml b/Resources/Prototypes/Loadouts/Generic/items.yml index 24d343c239..84889d7ca9 100644 --- a/Resources/Prototypes/Loadouts/Generic/items.yml +++ b/Resources/Prototypes/Loadouts/Generic/items.yml @@ -311,6 +311,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutAirTank + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemsExtendedEmergencyOxygenTank @@ -321,6 +325,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutAirTank + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemsDoubleEmergencyOxygenTank @@ -331,6 +339,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutAirTank + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemClothingMaskBreath @@ -433,6 +445,11 @@ cost: 1 items: - DrinkWaterBottleFull + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemLunchboxGenericFilledRandom @@ -440,6 +457,11 @@ cost: 3 items: - LunchboxGenericFilledRandom + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman - type: loadout id: LoadoutItemDrinkMREFlask @@ -447,6 +469,11 @@ cost: 2 items: - DrinkMREFlask + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman # Survival boxes - type: loadout @@ -818,3 +845,28 @@ group: LoadoutPets functions: - !type:LoadoutMakeFollower + +- type: loadout + id: LoadoutItemBlackDeck + category: Items + cost: 3 + canBeHeirloom: false + items: + - CardBoxBlack + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCards + +- type: loadout + id: LoadoutItemNTDeck + category: Items + cost: 3 + canBeHeirloom: false + items: + - CardBoxNanotrasen + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCards + - !type:CharacterDepartmentRequirement + departments: + - Command diff --git a/Resources/Prototypes/Loadouts/Generic/plasmaman.yml b/Resources/Prototypes/Loadouts/Generic/plasmaman.yml new file mode 100644 index 0000000000..a3dbd169f8 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/plasmaman.yml @@ -0,0 +1,723 @@ +# Equipment + +- type: loadout + id: LoadoutSpeciesEnvirosuitExtinguisherRefill + category: Species + cost: 5 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - EnvirosuitExtinguisherRefill + +- type: loadout + id: LoadoutSpeciesDoubleEmergencyPlasmaTank + category: Species + cost: 6 + canBeHeirloom: true + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - DoubleEmergencyPlasmaTankFilled + +- type: loadout + id: LoadoutSpeciesDrinkMilkCartonAndSyringe + category: Species + cost: 3 + canBeHeirloom: true + requirements: + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - DrinkMilkCarton + - Syringe + +# Envirogloves + +- type: loadout + id: LoadoutHandsGlovesEnviroglovesColor + category: Hands + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingHandsGlovesEnviroglovesColor + +- type: loadout + id: LoadoutHandsGlovesEnviroglovesEvening + category: Hands + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingHandsGlovesEnviroglovesEvening + +# Envirosuits with paired envirohelms + +- type: loadout + id: LoadoutUniformEnvirosuit + category: Uniform + cost: 0 + exclusive: true + canBeHeirloom: true + guideEntry: Plasmaman + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuit + - ClothingHeadEnvirohelm + +- type: loadout + id: LoadoutUniformEnvirosuitBlackPink + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitBlackPink + - ClothingHeadEnvirohelmBlackPink + +- type: loadout + id: LoadoutUniformEnvirosuitBlackPinkAlt + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitBlackPinkAlt + - ClothingHeadEnvirohelmBlackPinkAlt + +- type: loadout + id: LoadoutUniformEnvirosuitMartialGi + category: Uniform + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitMartialGi + - ClothingHeadEnvirohelmMartialGi + +- type: loadout + id: LoadoutUniformEnvirosuitSafari + category: Uniform + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitSafari + - ClothingHeadEnvirohelmSafari + +- type: loadout + id: LoadoutUniformEnvirosuitTrans + category: Uniform + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitTrans + - ClothingHeadEnvirohelmTrans + +- type: loadout + id: LoadoutUniformEnvirosuitAncientVoid + category: Uniform + cost: 2 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + - !type:CharacterJobRequirement + inverted: true + jobs: + - Librarian # Librarian already starts with this envirosuit + items: + - ClothingUniformEnvirosuitAncientVoid + - ClothingHeadEnvirohelmAncientVoid + +# Colored envirosuits +- type: loadout + id: LoadoutUniformEnvirosuitColorWhite + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorWhite + - ClothingHeadEnvirohelmColorWhite + +- type: loadout + id: LoadoutUniformEnvirosuitColorGrey + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorGrey + - ClothingHeadEnvirohelmColorGrey + +- type: loadout + id: LoadoutUniformEnvirosuitColorBlack + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitColorBlack + - ClothingHeadEnvirohelmColorBlack + +- type: loadout + id: LoadoutUniformEnvirosuitColorRed + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitColorRed + - ClothingHeadEnvirohelmColorRed + +- type: loadout + id: LoadoutUniformEnvirosuitColorGreen + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorGreen + - ClothingHeadEnvirohelmColorGreen + +- type: loadout + id: LoadoutUniformEnvirosuitColorDarkGreen + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorDarkGreen + - ClothingHeadEnvirohelmColorDarkGreen + +- type: loadout + id: LoadoutUniformEnvirosuitColorBlue + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorBlue + - ClothingHeadEnvirohelmColorBlue + +- type: loadout + id: LoadoutUniformEnvirosuitColorDarkBlue + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorDarkBlue + - ClothingHeadEnvirohelmColorDarkBlue + +- type: loadout + id: LoadoutUniformEnvirosuitColorTeal + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorTeal + - ClothingHeadEnvirohelmColorTeal + +- type: loadout + id: LoadoutUniformEnvirosuitColorMaroon + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorMaroon + - ClothingHeadEnvirohelmColorMaroon + +- type: loadout + id: LoadoutUniformEnvirosuitColorPink + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorPink + - ClothingHeadEnvirohelmColorPink + +- type: loadout + id: LoadoutUniformEnvirosuitColorYellow + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorYellow + - ClothingHeadEnvirohelmColorYellow + +- type: loadout + id: LoadoutUniformEnvirosuitColorPurple + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorPurple + - ClothingHeadEnvirohelmColorPurple + +- type: loadout + id: LoadoutUniformEnvirosuitColorOrange + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorOrange + - ClothingHeadEnvirohelmColorOrange + +- type: loadout + id: LoadoutUniformEnvirosuitColorLightBrown + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorLightBrown + - ClothingHeadEnvirohelmColorLightBrown + +- type: loadout + id: LoadoutUniformEnvirosuitColorBrown + category: Uniform + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitColorBrown + - ClothingHeadEnvirohelmColorBrown + +# Enviroslacks +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacks + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitEnviroslacks + - ClothingHeadEnvirohelmColorWhite + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksNegative + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksNegative + - ClothingHeadEnvirohelmColorBlack + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorRed + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorRed + - ClothingHeadEnvirohelmEnviroslacksColorRed + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorOrange + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorOrange + - ClothingHeadEnvirohelmEnviroslacksColorOrange + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorGreen + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorGreen + - ClothingHeadEnvirohelmEnviroslacksColorGreen + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBlue + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorBlue + - ClothingHeadEnvirohelmEnviroslacksColorBlue + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksColorBrown + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksColorBrown + - ClothingHeadEnvirohelmColorWhite + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNK + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksMNK + - ClothingHeadEnvirohelmEnviroslacksMNK + +- type: loadout + id: LoadoutUniformEnvirosuitEnviroslacksMNKAlt + category: Uniform + cost: 1 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsCivilian + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command + items: + - ClothingUniformEnvirosuitEnviroslacksMNKAlt + - ClothingHeadEnvirohelmEnviroslacksMNKAlt diff --git a/Resources/Prototypes/Loadouts/Generic/shoes.yml b/Resources/Prototypes/Loadouts/Generic/shoes.yml index 2c44aea2c3..5b8dfee70c 100644 --- a/Resources/Prototypes/Loadouts/Generic/shoes.yml +++ b/Resources/Prototypes/Loadouts/Generic/shoes.yml @@ -360,6 +360,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes2 + - !type:CharacterSpeciesRequirement # Due to a visual bug with envirosuits and heels they are disabled for now. + inverted: true + species: + - Plasmaman items: - ClothingShoesHighheelBoots # Socks @@ -413,6 +417,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman items: - ClothingShoesHighHeels @@ -426,6 +434,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Plasmaman items: - ClothingShoesHighHeelsLong diff --git a/Resources/Prototypes/Loadouts/Generic/uniform.yml b/Resources/Prototypes/Loadouts/Generic/uniform.yml index cc3036fa07..97d8abfd8d 100644 --- a/Resources/Prototypes/Loadouts/Generic/uniform.yml +++ b/Resources/Prototypes/Loadouts/Generic/uniform.yml @@ -1066,6 +1066,7 @@ - Command # Kimono + - type: loadout id: LoadoutClothingJumpsuitKimono category: Uniform diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml index 2af937ef1a..ae89a2f422 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml @@ -105,3 +105,21 @@ - MailCarrier items: - ClothingUniformSkirtMailCarrier + +- type: loadout + id: LoadoutCourierUniformEnvirosuitMailCarrier + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierUniforms + - !type:CharacterJobRequirement + jobs: + - MailCarrier + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingUniformEnvirosuitMailCarrier + - ClothingHeadEnvirohelmMailCarrier diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml index 3a80d1e155..e208232e80 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml @@ -1331,3 +1331,39 @@ - Security items: - ClothingUniformJumpsuitSecSummer + +- type: loadout + id: LoadoutSecurityUniformEnvirosuitBlue + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityUniforms + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingUniformEnvirosuitSecBlue + - ClothingHeadEnvirohelmSecBlue + +- type: loadout + id: LoadoutSecurityUniformEnvirosuitGrey + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityUniforms + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterSpeciesRequirement + species: + - Plasmaman + items: + - ClothingUniformEnvirosuitSecGrey + - ClothingHeadEnvirohelmSecGrey diff --git a/Resources/Prototypes/Mood/genericPositiveEffects.yml b/Resources/Prototypes/Mood/genericPositiveEffects.yml index c3d3acc8a5..4b30007611 100644 --- a/Resources/Prototypes/Mood/genericPositiveEffects.yml +++ b/Resources/Prototypes/Mood/genericPositiveEffects.yml @@ -1,4 +1,4 @@ -- type: moodEffect +- type: moodEffect id: BeingHugged moodChange: 3 timeout: 120 @@ -52,3 +52,13 @@ moodChange: 5 timeout: 60 # A bit of time before they realize it's gone moodletOnEnd: HeirloomNeutral + +- type: moodEffect + id: PlasmamanIngestMilk + moodChange: 7 + timeout: 60 + +- type: moodEffect + id: PlasmamanIngestPlasma + moodChange: 14 + timeout: 60 diff --git a/Resources/Prototypes/NPCs/batonbot.yml b/Resources/Prototypes/NPCs/batonbot.yml new file mode 100644 index 0000000000..9169f2a324 --- /dev/null +++ b/Resources/Prototypes/NPCs/batonbot.yml @@ -0,0 +1,12 @@ +- type: htnCompound + id: BatonbotCompound + branches: + - tasks: + - !type:HTNPrimitiveTask + operator: !type:UtilityOperator + proto: NearbyMeleeTargets + - !type:HTNCompoundTask + task: MeleeAttackTargetCompound + - tasks: + - !type:HTNCompoundTask + task: IdleCompound diff --git a/Resources/Prototypes/NPCs/disablerbot.yml b/Resources/Prototypes/NPCs/disablerbot.yml new file mode 100644 index 0000000000..6e0ce231d2 --- /dev/null +++ b/Resources/Prototypes/NPCs/disablerbot.yml @@ -0,0 +1,9 @@ +- type: htnCompound + id: DisablerbotCompound + branches: + - tasks: + - !type:HTNCompoundTask + task: InnateRangedCombatCompound + - tasks: + - !type:HTNCompoundTask + task: IdleCompound diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/felinid.yml index e27a7f8be1..33e45980da 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/felinid.yml @@ -4,7 +4,7 @@ id: FelinidEarsBasic bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: basic_outer @@ -15,7 +15,7 @@ id: FelinidEarsCurled bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: curled_outer @@ -26,7 +26,7 @@ id: FelinidEarsDroopy bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: droopy_outer @@ -37,7 +37,7 @@ id: FelinidEarsFuzzy bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: basic_outer @@ -48,7 +48,7 @@ id: FelinidEarsStubby bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: stubby_outer @@ -59,7 +59,7 @@ id: FelinidEarsTall bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: tall_outer @@ -72,7 +72,7 @@ id: FelinidEarsTorn bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: torn_outer @@ -83,7 +83,7 @@ id: FelinidEarsWide bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human, Tajaran] # Einstein Engines - Humans get felinid markings, Tajaran directly use felinid tails sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_ears.rsi state: wide_outer @@ -96,7 +96,7 @@ id: FelinidTailBasic bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human, Tajaran] # Einstein Engines - Humans get felinid markings sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_tails.rsi state: basic_tail_tip @@ -109,7 +109,7 @@ id: FelinidTailBasicWithBow bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human, Tajaran] # Einstein Engines - Humans get felinid markings, Tajaran directly use felinid tails sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_tails.rsi state: basic_tail_tip @@ -124,7 +124,7 @@ id: FelinidTailBasicWithBell bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human, Tajaran] # Einstein Engines - Humans get felinid markings, Tajaran directly use felinid tails sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_tails.rsi state: basic_tail_tip @@ -139,7 +139,7 @@ id: FelinidTailBasicWithBowAndBell bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human, Tajaran] # Einstein Engines - Humans get felinid markings, Tajaran directly use felinid tails sprites: - sprite: Nyanotrasen/Mobs/Customization/felinid_tails.rsi state: basic_tail_tip diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml index 5a90e77a58..ca4d55c2f8 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail_carrier.yml @@ -13,6 +13,8 @@ - type: startingGear id: MailCarrierGear + subGear: + - MailCarrierPlasmamanGear equipment: head: ClothingHeadMailCarrier jumpsuit: ClothingUniformMailCarrier @@ -24,3 +26,11 @@ innerClothingSkirt: ClothingUniformSkirtMailCarrier satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: MailCarrierPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMailCarrier + head: ClothingHeadEnvirohelmMailCarrier + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index da420fdfad..f76fd1d88b 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -42,6 +42,8 @@ - type: startingGear id: ForensicMantisGear + subGear: + - ForensicMantisPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMantis back: ClothingBackpackMantisFilled @@ -57,3 +59,11 @@ innerClothingSkirt: ClothingUniformSkirtMantis satchel: ClothingBackpackSatchelMantisFilled duffelbag: ClothingBackpackDuffelMantisFilled + +- type: startingGear + id: ForensicMantisPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMantis + head: ClothingHeadEnvirohelmMantis + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml index f93fc24dd2..4e6f8a54b3 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml @@ -23,10 +23,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] - + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: PrisonGuardGear + subGear: + - PrisonGuardPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitPrisonGuard back: ClothingBackpackSecurityFilled @@ -39,3 +45,11 @@ innerClothingSkirt: ClothingUniformJumpsuitPrisonGuard satchel: ClothingBackpackSatchelSecurityFilled duffelbag: ClothingBackpackDuffelSecurityFilled + +- type: startingGear + id: PrisonGuardPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitPrisonGuard + head: ClothingHeadEnvirohelmPrisonGuard + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml index b2d54651e4..6b1c809c46 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml @@ -18,9 +18,16 @@ - !type:AddTraitSpecial traits: - MartialArtist + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 3 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellPotato - type: startingGear id: NyanoGladiatorGear + subGear: + - GladiatorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitGladiator outerClothing: ClothingOuterArmorGladiator @@ -28,3 +35,11 @@ ears: ClothingHeadsetGrey innerClothingSkirt: UniformShortsRedWithTop #any other possessions, spawn in cell + +- type: startingGear + id: GladiatorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitGladiator + head: ClothingHeadEnvirohelmGladiator + gloves: ClothingHandsGlovesEnviroglovesGladiator diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml index 8615f4af58..9f1bbc24e9 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml @@ -19,6 +19,8 @@ - type: startingGear id: MartialArtistGear + subGear: + - MartialArtistPlasmamanGear equipment: jumpsuit: ClothingUniformMartialGi belt: ClothingBeltMartialBlack @@ -29,3 +31,12 @@ gloves: ClothingHandsGlovesBoxingRed satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: MartialArtistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMartialGi + head: ClothingHeadEnvirohelmMartialGi + # No envirogloves, use the boxing gloves instead + shoes: ClothingShoesColorBlack diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml index 23c9fa1c80..1bf2b891b3 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml @@ -16,12 +16,27 @@ - !type:AddComponentSpecial components: - type: Pacified + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 3 # Poor prisoners with not a lot of self-extinguishes. + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellPotato - type: startingGear id: PrisonerGear + subGear: + - PrisonerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitPrisoner shoes: ClothingShoesColorBlack id: PrisonerPDA ears: ClothingHeadsetPrison #deltaV innerClothingSkirt: ClothingUniformJumpsuitPrisoner + +- type: startingGear + id: PrisonerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitPrisoner + head: ClothingHeadEnvirohelmPrisoner + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml b/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml index a4d96c109e..de4dc15768 100644 --- a/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml +++ b/Resources/Prototypes/Nyanotrasen/metempsychoticHumanoids.yml @@ -7,8 +7,10 @@ Arachnid: 1 Harpy: 1 Moth: 1 + Tajaran: 1 # Einstein Engines Diona: 0.5 Reptilian: 0.5 SlimePerson: 0.5 Vulpkanin: 0.5 Rodentia: 0.5 + Plasmaman: 0.25 diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 15fcdb28e9..980f13b744 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -31,7 +31,8 @@ - type: weightedRandom id: TraitorObjectiveGroupKill weights: - KillRandomPersonObjective: 1 + # KillRandomPersonObjective: 1 # DeltaV Replaced for Teach Lesson + TeachLessonRandomPersonObjective: 1 KillRandomHeadObjective: 0.25 - type: weightedRandom diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml index 3f9fb7b53d..52b6533153 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 caa2e5acdc..b81b639b8b 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -32,6 +32,9 @@ - !type:OrganType type: Vox shouldHave: false + - !type:OrganType + type: Plasmaman + shouldHave: false ratios: CarbonDioxide: 1.0 Oxygen: -1.0 @@ -46,7 +49,7 @@ Poison: 7 - !type:AdjustAlert - alertType: Toxins + alertType: HighOxygen conditions: - !type:ReagentThreshold min: 0.5 @@ -54,6 +57,25 @@ type: Vox clear: true time: 5 + - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + scaleByQuantity: true + ignoreResistances: true + damage: + types: + Poison: + 7 + - !type:AdjustAlert + alertType: HighOxygen + conditions: + - !type:ReagentThreshold + min: 0.5 + - !type:OrganType + type: Plasmaman + clear: true + time: 5 - type: reagent id: Plasma @@ -72,15 +94,27 @@ Poison: effects: - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false damage: types: Poison: 3 - !type:AdjustReagent + conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false reagent: Inaprovaline amount: -2.0 Gas: effects: - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false scaleByQuantity: true ignoreResistances: true damage: @@ -91,10 +125,48 @@ - !type:AdjustAlert alertType: Toxins conditions: + - !type:OrganType + type: Plasmaman + shouldHave: false - !type:ReagentThreshold min: 1.5 clear: True time: 5 + - !type:Oxygenate + factor: 4 + conditions: + - !type:OrganType + type: Plasmaman + - !type:ModifyLungGas + conditions: + - !type:OrganType + type: Plasmaman + ratios: + Nitrogen: 1.0 # Interesting exhale for plasmamen + Plasma: -1.0 + Medicine: + effects: + - !type:HealthChange + conditions: + - !type:OrganType + type: Plasmaman + damage: + groups: + Brute: -2 + types: + Heat: -0.66 + Shock: -0.66 + Caustic: -0.66 + Asphyxiation: -0.66 + Poison: -0.66 + - !type:ChemAddMoodlet + conditions: + - !type:OrganType + type: Plasmaman + - !type:ReagentThreshold + reagent: Plasma + min: 4 + moodPrototype: PlasmamanIngestPlasma reactiveEffects: Flammable: methods: [ Touch ] diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/batonbot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/batonbot.yml new file mode 100644 index 0000000000..a5bbdc322f --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/batonbot.yml @@ -0,0 +1,28 @@ +- type: constructionGraph + id: BatonBot + start: start + graph: + - node: start + edges: + - to: bot + steps: + - tag: ProximitySensor + icon: + sprite: Objects/Misc/proximity_sensor.rsi + state: icon + name: proximity sensor + doAfter: 2 + - tag: Stunbaton + icon: + sprite: Objects/Weapons/Melee/stunbaton.rsi + state: stunbaton_on + name: stunbaton + doAfter: 2 + - tag: ClothingHeadHelmetBasic + icon: + sprite: DeltaV/Clothing/Head/Helmets/security.rsi + state: icon + name: Security Helmet + doAfter: 2 + - node: bot + entity: MobBatonBot diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/disablerbot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/disablerbot.yml new file mode 100644 index 0000000000..e56c37d31f --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/disablerbot.yml @@ -0,0 +1,28 @@ +- type: constructionGraph + id: DisablerBot + start: start + graph: + - node: start + edges: + - to: bot + steps: + - tag: ProximitySensor + icon: + sprite: Objects/Misc/proximity_sensor.rsi + state: icon + name: Proximity sensor + doAfter: 2 + - tag: WeaponDisabler + icon: + sprite: Objects/Weapons/Guns/Battery/disabler.rsi + state: base + name: Disabler + doAfter: 2 + - tag: ClothingHeadHelmetBasic + icon: + sprite: DeltaV/Clothing/Head/Helmets/security.rsi + state: icon + name: Security Helmet + doAfter: 2 + - node: bot + entity: MobDisablerBot diff --git a/Resources/Prototypes/Recipes/Crafting/bots.yml b/Resources/Prototypes/Recipes/Crafting/bots.yml index 8f67905b85..26c0a44e33 100644 --- a/Resources/Prototypes/Recipes/Crafting/bots.yml +++ b/Resources/Prototypes/Recipes/Crafting/bots.yml @@ -88,3 +88,29 @@ icon: sprite: Mobs/Silicon/Bots/gladiabot.rsi state: GladiabotFFA + +- type: construction + name: batonbot + id: batonbot + graph: BatonBot + startNode: start + targetNode: bot + category: construction-category-utilities + objectType: Item + description: Defends the station from hostile wildlife. + icon: + sprite: Mobs/Silicon/Bots/batonbot.rsi + state: batonbot + +- type: construction + name: disablerbot + id: disablerbot + graph: DisablerBot + startNode: start + targetNode: bot + category: construction-category-utilities + objectType: Item + description: Defends the station from hostile wildlife. + icon: + sprite: Mobs/Silicon/Bots/disablerbot.rsi + state: disablerbot diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index f489fc2eb5..37b400802c 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -261,4 +261,12 @@ Glass: 300 Silver: 100 Gold: 100 - Plasma: 200 \ No newline at end of file + Plasma: 200 + +- type: latheRecipe + id: EnvirosuitExtinguisherRefill + result: EnvirosuitExtinguisherRefill + completetime: 3 + materials: + Steel: 200 + Plasma: 50 diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 458e359e40..18944189fa 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -105,6 +105,7 @@ - CloningConsoleComputerCircuitboard - MedicalScannerMachineCircuitboard - MetempsychoticMachineCircuitboard + - EnvirosuitExtinguisherRefill - type: technology id: HONKMech diff --git a/Resources/Prototypes/Roles/Antags/nukeops.yml b/Resources/Prototypes/Roles/Antags/nukeops.yml index cb6cb02030..189d3c24ab 100644 --- a/Resources/Prototypes/Roles/Antags/nukeops.yml +++ b/Resources/Prototypes/Roles/Antags/nukeops.yml @@ -44,6 +44,8 @@ #Lone Operative Gear - type: startingGear id: SyndicateLoneOperativeGearFull + subGear: + - SyndicatePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperative diff --git a/Resources/Prototypes/Roles/Antags/traitor.yml b/Resources/Prototypes/Roles/Antags/traitor.yml index 504b638483..f7d4a78401 100644 --- a/Resources/Prototypes/Roles/Antags/traitor.yml +++ b/Resources/Prototypes/Roles/Antags/traitor.yml @@ -23,6 +23,8 @@ # Syndicate Operative Outfit - Barratry - type: startingGear id: SyndicateOperativeGearExtremelyBasic + subGear: + - SyndicatePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackSyndicate diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index f79a30e5fd..7b5c19bcf8 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -16,6 +16,8 @@ - type: startingGear id: CargoTechGear + subGear: + - CargoTechPlasmamanGear equipment: head: ClothingHeadHatCargosoft jumpsuit: ClothingUniformJumpsuitCargo @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtCargo satchel: ClothingBackpackSatchelCargoFilled duffelbag: ClothingBackpackDuffelCargoFilled + +- type: startingGear + id: CargoTechPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCargo + head: ClothingHeadEnvirohelmCargo + gloves: ClothingHandsGlovesEnviroglovesCargo diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index bda5289e8e..a1c5e4f0fc 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -9,8 +9,14 @@ # role: JobCargoTechnician # time: 21600 #6 hrs - !type:CharacterPlaytimeRequirement - tracker: JobSalvageSpecialist # DeltaV - Logistics Department replacing Cargo - min: 7200 # The Den - 2 hour + tracker: JobSalvageSpecialist + min: 10800 #3 hrs + - !type:CharacterPlaytimeRequirement # DeltaV - Courier role time requirement + tracker: JobMailCarrier + min: 7200 # 2 hours + - !type:CharacterDepartmentTimeRequirement + department: Logistics # DeltaV - Logistics Department replacing Cargo + min: 43200 #DeltaV 12 hours weight: 10 startingGear: QuartermasterGear icon: "JobIconQuarterMaster" @@ -32,9 +38,14 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 - type: startingGear id: QuartermasterGear + subGear: + - QuartermasterPlasmamanGear equipment: head: ClothingHeadHatBeretLogi jumpsuit: ClothingUniformJumpsuitQM @@ -47,3 +58,11 @@ innerClothingSkirt: ClothingUniformJumpskirtQM satchel: ClothingBackpackSatchelQuartermasterFilled duffelbag: ClothingBackpackDuffelQuartermasterFilled + +- type: startingGear + id: QuartermasterPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitQM + head: ClothingHeadEnvirohelmQM + gloves: ClothingHandsGlovesEnviroglovesCargo diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml index 56b54a843a..e7ba0b8285 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml @@ -19,6 +19,8 @@ - type: startingGear id: SalvageSpecialistGear + subGear: + - SalvageSpecialistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSalvageSpecialist back: ClothingBackpackSalvageFilled @@ -27,3 +29,12 @@ ears: ClothingHeadsetCargo satchel: ClothingBackpackSatchelSalvageFilled duffelbag: ClothingBackpackDuffelSalvageFilled + +- type: startingGear + id: SalvageSpecialistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSalvage + head: ClothingHeadEnvirohelmSalvage + gloves: ClothingHandsGlovesEnviroglovesSalvage + mask: ClothingMaskGasExplorer diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml index 5cf4fd9449..dce7969682 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml @@ -11,6 +11,8 @@ - type: startingGear id: PassengerGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorGrey back: ClothingBackpackFilled @@ -20,3 +22,11 @@ innerClothingSkirt: ClothingUniformJumpskirtColorGrey satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: PassengerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorGrey + head: ClothingHeadEnvirohelmColorGrey + gloves: ClothingHandsGlovesEnviroglovesColorDarkGrey diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index 8af3f2ee92..265925ef3e 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -16,6 +16,8 @@ - type: startingGear id: BartenderGear + subGear: + - BartenderPlasmamanGear equipment: head: ClothingHeadHatTophat jumpsuit: ClothingUniformJumpsuitBartender @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtBartender satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: BartenderPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml index 35b858fb38..77e9ec491b 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml @@ -16,6 +16,8 @@ - type: startingGear id: BotanistGear + subGear: + - BotanistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitHydroponics back: ClothingBackpackHydroponicsFilled @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtHydroponics satchel: ClothingBackpackSatchelHydroponicsFilled duffelbag: ClothingBackpackDuffelHydroponicsFilled + +- type: startingGear + id: BotanistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitHydroponics + head: ClothingHeadEnvirohelmHydroponics + gloves: ClothingHandsGlovesEnviroglovesLeather diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml index f73f9565bc..a91f98ccff 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml @@ -40,6 +40,8 @@ - type: startingGear id: ChaplainGear + subGear: + - ChaplainPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChaplain back: ClothingBackpack @@ -50,3 +52,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 4188970105..7938fad093 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -20,6 +20,8 @@ - type: startingGear id: ChefGear + subGear: + - ChefPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChef head: ClothingHeadHatChef @@ -33,3 +35,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChef satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ChefPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChef + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index 5bf14c23ed..e9c7551433 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -29,6 +29,8 @@ - type: startingGear id: ClownGear + subGear: + - ClownPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitClown back: ClothingBackpackClownFilled @@ -40,3 +42,12 @@ ears: ClothingHeadsetService satchel: ClothingBackpackSatchelClownFilled duffelbag: ClothingBackpackDuffelClownFilled + +- type: startingGear + id: ClownPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitClown + head: ClothingHeadEnvirohelmClown + gloves: ClothingHandsGlovesEnviroglovesClown + mask: ClothingMaskClown # Parent sets mask to breath mask so set it again here diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index bf11532ddb..ac097e7e30 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -17,6 +17,8 @@ - type: startingGear id: JanitorGear + subGear: + - JanitorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitJanitor back: ClothingBackpackFilled @@ -30,6 +32,14 @@ satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled +- type: startingGear + id: JanitorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitJanitor + head: ClothingHeadEnvirohelmJanitor + gloves: ClothingHandsGlovesEnviroglovesJanitor + - type: startingGear id: JanitorMaidGear equipment: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml index c05d861280..d093361569 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -14,6 +14,8 @@ - type: startingGear id: LawyerGear + subGear: + - LawyerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitLawyerBlack # TODO change jumpsuit to randomiser of the 4 variants back: ClothingBackpackLawyerFilled #DeltaV - stamp included @@ -26,3 +28,11 @@ innerClothingSkirt: ClothingUniformJumpskirtLawyerBlack satchel: ClothingBackpackSatchelLawyerFilled #DeltaV - stamp included duffelbag: ClothingBackpackDuffelLawyerFilled #DeltaV - stamp included + +- type: startingGear + id: LawyerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacks + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml index 0f2a7d39b8..a5aa92bc02 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml @@ -41,6 +41,8 @@ - type: startingGear id: LibrarianGear + subGear: + - LibrarianPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitLibrarian back: ClothingBackpackLibrarianFilled @@ -53,3 +55,11 @@ innerClothingSkirt: ClothingUniformJumpskirtLibrarian satchel: ClothingBackpackSatchelLibrarianFilled duffelbag: ClothingBackpackDuffelLibrarianFilled + +- type: startingGear + id: LibrarianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitAncientVoid + head: ClothingHeadEnvirohelmAncientVoid + gloves: ClothingHandsGlovesEnviroglovesPrototype diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index ab576c78e2..b71660c1a0 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -18,6 +18,8 @@ - type: startingGear id: MimeGear + subGear: + - MimePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMime back: ClothingBackpackMimeFilled @@ -34,6 +36,15 @@ satchel: ClothingBackpackSatchelMimeFilled duffelbag: ClothingBackpackDuffelMimeFilled +- type: startingGear + id: MimePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMime + head: ClothingHeadEnvirohelmMime + gloves: ClothingHandsGlovesEnviroglovesWhite + mask: ClothingMaskMime # Parent sets mask to breath mask so set it again here + - type: entity id: ActionMimeInvisibleWall name: Create Invisible Wall diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml index 36d8839529..113b0fccac 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml @@ -17,6 +17,8 @@ - type: startingGear id: MusicianGear + subGear: + - MusicianPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMusician back: ClothingBackpackMusicianFilled @@ -26,3 +28,11 @@ ears: ClothingHeadsetService satchel: ClothingBackpackSatchelMusicianFilled duffelbag: ClothingBackpackDuffelMusicianFilled + +- type: startingGear + id: MusicianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMusician + head: ClothingHeadEnvirohelmMusician + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml index 7ee1076a8b..ca7c796283 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 @@ -18,6 +18,8 @@ - type: startingGear id: ServiceWorkerGear + subGear: + - ServiceWorkerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorDarkGreen # DeltaV back: ClothingBackpackFilled @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtColorDarkGreen # DeltaV satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ServiceWorkerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorDarkGreen + head: ClothingHeadEnvirohelmColorDarkGreen + gloves: ClothingHandsGlovesEnviroglovesColorDarkGreen diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 376a59e021..fa009bb570 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -26,7 +26,7 @@ min: 144000 # The Den - 40 hour weight: 20 startingGear: CaptainGear - icon: JobIconCaptain + icon: "JobIconCaptain" requireAdminNotify: true joinNotifyCrew: true supervisors: job-supervisors-centcom @@ -39,9 +39,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CaptainGear + subGear: + - CaptainPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitCaptain back: ClothingBackpackCaptainFilled @@ -51,3 +58,11 @@ innerClothingSkirt: ClothingUniformJumpskirtCaptain satchel: ClothingBackpackSatchelCaptainFilled duffelbag: ClothingBackpackDuffelCaptainFilled + +- type: startingGear + id: CaptainPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCaptain + head: ClothingHeadEnvirohelmCaptain + gloves: ClothingHandsGlovesCaptain diff --git a/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml b/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml index 37c73f38e0..c14ee7e283 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml @@ -12,9 +12,16 @@ - AllAccess access: - CentralCommand + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 10 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CentcomGear + subGear: + - CentcomPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitCentcomOfficial shoes: ClothingShoesBootsCombatFilled @@ -27,3 +34,11 @@ belt: WeaponPistolN1984 pocket1: BoxFolderBlack pocket2: PenCentcom + +- type: startingGear + id: CentcomPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitCentcomOfficial + head: ClothingHeadEnvirohelmCentcomOfficial + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index fe3e4986b0..57378f7422 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -61,9 +61,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: HoPGear + subGear: + - HoPPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitHoP back: ClothingBackpackHOPFilled @@ -73,3 +80,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 fc32d069d7..40ca0121c8 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -18,7 +18,9 @@ - Atmospherics - type: startingGear - id: AtmosphericTechnicianGear + id: AtmosphericTechnicianGear + subGear: + - AtmosphericTechnicianPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitAtmos back: ClothingBackpackAtmospherics @@ -28,3 +30,11 @@ innerClothingSkirt: ClothingUniformJumpskirtAtmos satchel: ClothingBackpackSatchelEngineeringFilled duffelbag: ClothingBackpackDuffelEngineeringFilled + +- type: startingGear + id: AtmosphericTechnicianPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitAtmos + head: ClothingHeadEnvirohelmAtmos + gloves: ClothingHandsGlovesEnviroglovesAtmos diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index 14e35afee6..19f2aee7f3 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -29,9 +29,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellPotato - type: startingGear id: ChiefEngineerGear + subGear: + - ChiefEngineerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChiefEngineer back: ClothingBackpackChiefEngineerFilled @@ -41,3 +48,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 35c3444598..df81edc443 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml @@ -18,6 +18,8 @@ - type: startingGear id: SeniorEngineerGear + subGear: + - StationEngineerPlasmamanGear equipment: head: ClothingHeadHatBeretEngineering jumpsuit: ClothingUniformJumpsuitSeniorEngineer diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index 5e905f59bf..c394a85017 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -19,6 +19,8 @@ - type: startingGear id: StationEngineerGear + subGear: + - StationEngineerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitEngineering back: ClothingBackpackEngineeringFilled @@ -30,3 +32,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 ea44156658..f563e8b8ee 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml @@ -18,6 +18,8 @@ - type: startingGear id: TechnicalAssistantGear + subGear: + - StationEngineerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorYellow back: ClothingBackpackEngineeringFilled diff --git a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml b/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml index f1e8fc9cf8..7dd2aa1e92 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml @@ -16,6 +16,8 @@ - type: startingGear id: ERTLeaderGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTLeader back: ClothingBackpackERTLeaderFilled @@ -32,6 +34,8 @@ - type: startingGear id: ERTLeaderGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTLeader back: ClothingBackpackERTLeaderFilled @@ -49,6 +53,9 @@ - type: startingGear id: ERTLeaderGearEVALecter + subGear: + - InhandTankGear + - ERTPlasmamanGearNoTank equipment: jumpsuit: ClothingUniformJumpsuitERTLeader back: ClothingBackpackERTLeaderFilled @@ -63,8 +70,6 @@ belt: ClothingBeltSecurityFilled pocket1: MagazineRifle pocket2: MagazineRifle - inhand: - - AirTankFilled # Chaplain - type: job @@ -88,6 +93,8 @@ - type: startingGear id: ERTChaplainGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTChaplain back: ClothingBackpackERTChaplainFilled @@ -105,6 +112,8 @@ - type: startingGear id: ERTChaplainGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTChaplain back: ClothingBackpackERTChaplainFilled @@ -139,6 +148,8 @@ - type: startingGear id: ERTEngineerGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTEngineer back: ClothingBackpackERTEngineerFilled @@ -155,6 +166,8 @@ - type: startingGear id: ERTEngineerGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTEngineer back: ClothingBackpackERTEngineerFilled @@ -188,6 +201,8 @@ - type: startingGear id: ERTSecurityGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTSecurity back: ClothingBackpackERTSecurityFilled @@ -204,6 +219,8 @@ - type: startingGear id: ERTSecurityGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTSecurity back: ClothingBackpackERTSecurityFilled @@ -221,6 +238,9 @@ - type: startingGear id: ERTSecurityGearEVALecter + subGear: + - InhandTankGear + - ERTPlasmamanGearNoTank equipment: jumpsuit: ClothingUniformJumpsuitERTSecurity back: ClothingBackpackERTSecurityFilled @@ -235,8 +255,6 @@ belt: ClothingBeltSecurityFilled pocket1: MagazineRifle pocket2: MagazineRifle - inhand: - - AirTankFilled # Medical - type: job @@ -256,6 +274,8 @@ - type: startingGear id: ERTMedicalGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTMedic back: ClothingBackpackERTMedicalFilled @@ -271,6 +291,8 @@ - type: startingGear id: ERTMedicalGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTMedic back: ClothingBackpackERTMedicalFilled @@ -303,6 +325,8 @@ - type: startingGear id: ERTJanitorGear + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTJanitor back: ClothingBackpackERTJanitorFilled @@ -317,6 +341,8 @@ - type: startingGear id: ERTJanitorGearEVA + subGear: + - ERTPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitERTJanitor back: ClothingBackpackERTJanitorFilled diff --git a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml index b2cf3b8793..31e3507704 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml @@ -20,6 +20,8 @@ # Syndicate Operative Outfit - Civilian - type: startingGear id: SyndicateOperativeGearCivilian + subGear: + - SyndicatePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSyndieFormal back: ClothingBackpackDuffelSyndicate @@ -31,6 +33,8 @@ #Space Ninja Outfit - type: startingGear id: SpaceNinjaGear + subGear: + - SpaceNinjaPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitNinja # belt holds katana so satchel has the tools for sabotaging things @@ -53,6 +57,8 @@ #Deathsquad Outfit - type: startingGear id: DeathSquadGear + subGear: + - ERTPlasmamanGear # TODO: death squad envirosuit equipment: jumpsuit: ClothingUniformJumpsuitDeathSquad back: ClothingBackpackDeathSquadFilled @@ -72,6 +78,8 @@ #Syndicate Operative Outfit - Full Kit - type: startingGear id: SyndicateOperativeGearFull + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperative @@ -92,6 +100,8 @@ #Nuclear Operative Commander Gear - type: startingGear id: SyndicateCommanderGearFull + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperative @@ -115,6 +125,8 @@ #Nuclear Operative Medic Gear - type: startingGear id: SyndicateOperativeMedicFull + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperativeMedic @@ -135,6 +147,8 @@ # Syndicate Footsoldier Gear - type: startingGear id: SyndicateFootsoldierGear + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative head: ClothingHeadHelmetSwatSyndicate @@ -152,6 +166,8 @@ # Syndicate Footsoldier Gear - No Headset - type: startingGear id: SyndicateFootsoldierGearRuin + subGear: + - SyndicateOperativePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitOperative head: ClothingHeadHelmetSwatSyndicate @@ -168,6 +184,8 @@ # Nanotrasen Paramilitary Unit Gear - type: startingGear id: NanotrasenParamilitaryGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSec back: ClothingBackpackSecurityFilled @@ -185,6 +203,8 @@ #CBURN Unit Gear - Full Kit - type: startingGear id: CBURNGear + subGear: + - CBURNPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorBrown back: ClothingBackpackDuffelCBURNFilled @@ -220,6 +240,8 @@ - type: startingGear id: LimitedPassengerGear + subGear: + - PassengerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorGrey shoes: ClothingShoesColorBlack @@ -229,6 +251,8 @@ - type: startingGear id: DeathMatchGear + subGear: + - DeathMatchPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorWhite shoes: ClothingShoesBootsJack @@ -303,6 +327,8 @@ #Banana Clown - type: startingGear id: BananaClown + subGear: + - ClownPlasmamanGear # TODO: Banana clown plasmaman starting gear equipment: shoes: ClothingShoesClownBanana jumpsuit: ClothingUniformJumpsuitClownBanana diff --git a/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml new file mode 100644 index 0000000000..bec0c1eb45 --- /dev/null +++ b/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml @@ -0,0 +1,109 @@ +# Base Plasmaman starting gear that all plasmaman starting gears should inherit from +- type: startingGear + abstract: true + id: BasePlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + mask: ClothingMaskBreath + pocket2: DoubleEmergencyPlasmaTankFilled + +- type: startingGear + abstract: true + parent: BasePlasmamanGear + id: BasePlasmamanSecurityGear + equipment: + mask: ClothingMaskGasSecurity + +# Syndicate Operative Plasmaman outfit +- type: startingGear + abstract: true + id: BaseSyndicatePlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + jumpsuit: ClothingUniformEnvirosuitOperative + head: ClothingHeadEnvirohelmOperative + mask: ClothingMaskGasSyndicate + # No envirogloves, some starting gear might have combat gloves + +- type: startingGear + id: SyndicatePlasmamanGear + parent: BaseSyndicatePlasmamanGear + equipment: + pocket2: DoubleEmergencyPlasmaTankFilled + +- type: startingGear + id: SyndicateOperativePlasmamanGear + parent: BaseSyndicatePlasmamanGear + equipment: + pocket1: DoubleEmergencyPlasmaTankFilled + +- type: startingGear + id: SpaceNinjaPlasmamanGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + jumpsuit: ClothingUniformEnvirosuitColorBlack # TODO: actual ninja envirosuit + suitstorage: PlasmaTankFilledInternals + +# ERT starting gear +- type: startingGear + id: ERTPlasmamanGearNoTank + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + equipment: + jumpsuit: ClothingUniformEnvirosuitColorBlack # TODO: ERT envirosuit + head: ClothingHeadEnvirohelmColorBlack # TODO: ERT envirohelm + mask: ClothingMaskGasERT + +- type: startingGear + id: ERTPlasmamanGear + parent: ERTPlasmamanGearNoTank + equipment: + suitstorage: PlasmaTankFilledInternals + +- type: startingGear + id: CBURNPlasmamanGear + parent: ERTPlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorLightBrown + head: ClothingHeadEnvirohelmColorLightBrown + +- type: startingGear + id: InhandTankGear + subGear: + - InhandOxygenTankGear + - InhandPlasmaTankGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + +- type: startingGear + id: InhandOxygenTankGear + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: [ Plasmaman ] + inhand: + - AirTankFilled + +- type: startingGear + id: InhandPlasmaTankGear + requirements: + - !type:CharacterSpeciesRequirement + species: [ Plasmaman ] + inhand: + - PlasmaTankFilledInternals + +- type: startingGear + id: DeathMatchPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitColorWhite + head: ClothingHeadEnvirohelmColorWhite + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index 69e82831ba..4f08ba756b 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -23,6 +23,8 @@ - type: startingGear id: ChemistGear + subGear: + - ChemistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitChemistry back: ClothingBackpackChemistryFilled @@ -32,3 +34,11 @@ innerClothingSkirt: ClothingUniformJumpskirtChemistry satchel: ClothingBackpackSatchelChemistryFilled duffelbag: ClothingBackpackDuffelChemistryFilled + +- type: startingGear + id: ChemistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitChemist + head: ClothingHeadEnvirohelmChemist + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index e14d5d269c..3b8af1c926 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -37,9 +37,16 @@ - type: CPRTraining - type: SurgerySpeedModifier speedModifier: 2.5 + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: CMOGear + subGear: + - CMOPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitCMO back: ClothingBackpackCMOFilled @@ -49,3 +56,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 f23672ff8d..c309cda65e 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -25,6 +25,8 @@ - type: startingGear id: DoctorGear + subGear: + - DoctorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMedicalDoctor back: ClothingBackpackMedicalFilled @@ -34,3 +36,11 @@ innerClothingSkirt: ClothingUniformJumpskirtMedicalDoctor satchel: ClothingBackpackSatchelMedicalFilled duffelbag: ClothingBackpackDuffelMedicalFilled + +- type: startingGear + id: DoctorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMedicalDoctor + head: ClothingHeadEnvirohelmMedicalDoctor + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml index 4d39d8fcb5..e603fc27e1 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 @@ -19,6 +19,8 @@ - type: startingGear id: MedicalInternGear + subGear: + - DoctorPlasmamanGear equipment: jumpsuit: UniformScrubsColorBlue # DeltaV - Intern starts with blue scrubs back: ClothingBackpackMedicalFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index f32952abbc..d6cdc7eaf5 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -27,6 +27,8 @@ - type: startingGear id: ParamedicGear + subGear: + - ParamedicPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitParamedic back: ClothingBackpackParamedicFilledDV @@ -39,3 +41,12 @@ innerClothingSkirt: ClothingUniformJumpskirtParamedic satchel: ClothingBackpackSatchelParamedicFilledDV duffelbag: ClothingBackpackDuffelParamedicFilledDV + +- type: startingGear + id: ParamedicPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitParamedic + head: ClothingHeadEnvirohelmParamedic + gloves: ClothingHandsGlovesEnviroglovesNitrile + shoes: ClothingShoesColorBlue diff --git a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml index f3dea9245d..fcfea757e8 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml @@ -23,6 +23,8 @@ - type: startingGear id: SeniorPhysicianGear + subGear: + - DoctorPlasmamanGear equipment: head: ClothingHeadHatBeretSeniorPhysician jumpsuit: ClothingUniformJumpsuitSeniorPhysician diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml index fc7a5486eb..7efcf3435b 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 @@ -13,6 +13,8 @@ - type: startingGear id: ResearchAssistantGear + subGear: + - ScientistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorWhite back: ClothingBackpackScienceFilled diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 28b8a7c6c2..1893e11e0a 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -53,9 +53,16 @@ - DispelPower - MetapsionicPower - TelepathyPower + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: ResearchDirectorGear + subGear: + - ResearchDirectorPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitResearchDirector back: ClothingBackpackResearchDirectorFilled @@ -67,3 +74,11 @@ innerClothingSkirt: ClothingUniformJumpskirtResearchDirector satchel: ClothingBackpackSatchelResearchDirectorFilled duffelbag: ClothingBackpackDuffelResearchDirectorFilled + +- type: startingGear + id: ResearchDirectorPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitResearchDirector + head: ClothingHeadEnvirohelmResearchDirector + gloves: ClothingHandsGlovesEnviroglovesResearchDirector diff --git a/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml b/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml index 8b7611e7a4..1aff597566 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/roboticist.yml @@ -16,6 +16,8 @@ - type: startingGear id: RoboticistGear + subGear: + - RoboticistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitRoboticist back: ClothingBackpackRoboticsFilled @@ -27,3 +29,11 @@ innerClothingSkirt: ClothingUniformJumpskirtRoboticist satchel: ClothingBackpackSatchelRoboticsFilled duffelbag: ClothingBackpackDuffelRoboticsFilled + +- type: startingGear + id: RoboticistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitRoboticist + head: ClothingHeadEnvirohelmRoboticist + gloves: ClothingHandsGlovesEnviroglovesRoboticist diff --git a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml index 62d5fcfe9b..4b457bf10c 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -12,6 +12,8 @@ - type: startingGear id: ScientistGear + subGear: + - ScientistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitScientist back: ClothingBackpackScienceFilled @@ -23,3 +25,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 d01c1ca61a..0b63f531db 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml @@ -16,6 +16,8 @@ - type: startingGear id: SeniorResearcherGear + subGear: + - ScientistPlasmamanGear equipment: head: ClothingHeadHatBeretRND jumpsuit: ClothingUniformJumpsuitSeniorResearcher diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index 6571df861a..e4efe09637 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -22,9 +22,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear - id: DetectiveGear + id: DetectiveGear + subGear: + - DetectivePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitDetective back: ClothingBackpackSecurity @@ -38,3 +45,11 @@ innerClothingSkirt: ClothingUniformJumpskirtDetective satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: DetectivePlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitDetective + head: ClothingHeadEnvirohelmDetective + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 0a2f06b71c..c4f4025708 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -31,9 +31,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: HoSGear + subGear: + - HoSPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitHoS back: ClothingBackpackHOSFilled @@ -46,3 +53,11 @@ innerClothingSkirt: ClothingUniformJumpskirtHoS satchel: ClothingBackpackSatchelHOSFilled duffelbag: ClothingBackpackDuffelHOSFilled + +- type: startingGear + id: HoSPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitHoS + head: ClothingHeadEnvirohelmHoS + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 39ff609ba3..356c1b6a77 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -24,9 +24,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: SecurityCadetGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitColorRed back: ClothingBackpackSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 2fd44505b8..066a592845 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -21,9 +21,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: SecurityOfficerGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSec back: ClothingBackpackSecurity @@ -37,3 +44,11 @@ innerClothingSkirt: ClothingUniformJumpskirtSec satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: SecurityOfficerPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSec + head: ClothingHeadEnvirohelmSec + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml index 24ee1994f6..04d1c5f592 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml @@ -21,9 +21,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: SeniorOfficerGear + subGear: + - SecurityOfficerPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSeniorOfficer back: ClothingBackpackSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 04ffe70dc8..b6e7409fb3 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -23,9 +23,16 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: WardenGear + subGear: + - WardenPlasmamanGear equipment: head: ClothingHeadHatWarden jumpsuit: ClothingUniformJumpsuitWarden @@ -39,3 +46,11 @@ innerClothingSkirt: ClothingUniformJumpskirtWarden satchel: ClothingBackpackSatchelSecurity duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: WardenPlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitWarden + head: ClothingHeadEnvirohelmWarden + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml index 3dc18bc857..fac4207501 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml @@ -17,6 +17,8 @@ - type: startingGear id: BoxerGear + subGear: + - BoxerPlasmamanGear equipment: jumpsuit: UniformShortsRed back: ClothingBackpackFilled @@ -28,3 +30,11 @@ innerClothingSkirt: UniformShortsRedWithTop satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: BoxerPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitBoxing + head: ClothingHeadEnvirohelmBoxing + # No envirogloves, use the boxing gloves instead diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml index 064f40f937..583ce1df0a 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml @@ -19,6 +19,8 @@ - type: startingGear id: PsychologistGear + subGear: + - PsychologistPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitPsychologist back: ClothingBackpackPsychologistFilled #DeltaV - stamp included @@ -28,3 +30,11 @@ innerClothingSkirt: ClothingUniformJumpsuitPsychologist satchel: ClothingBackpackSatchelPsychologistFilled #DeltaV - stamp included duffelbag: ClothingBackpackDuffelPsychologistFilled #DeltaV - stamp included + +- type: startingGear + id: PsychologistPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitEnviroslacksPsychologist + head: ClothingHeadEnvirohelmMedicalDoctor + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml index 603c0a7608..8e5c4812db 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml @@ -14,6 +14,8 @@ - type: startingGear id: ReporterGear + subGear: + - ReporterPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitReporter back: ClothingBackpackFilled @@ -23,3 +25,11 @@ innerClothingSkirt: ClothingUniformJumpsuitJournalist satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ReporterPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitReporter + head: ClothingHeadEnvirohelmReporter + gloves: ClothingHandsGlovesEnviroglovesReporter diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml index 7bf1ff772a..4593397bdc 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml @@ -13,6 +13,8 @@ - type: startingGear id: ZookeeperGear + subGear: + - ZookeeperPlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitSafari back: ClothingBackpackFilled @@ -23,3 +25,11 @@ innerClothingSkirt: ClothingUniformJumpsuitSafari satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled + +- type: startingGear + id: ZookeeperPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitSafari + head: ClothingHeadEnvirohelmSafari + gloves: ClothingHandsGlovesEnviroglovesPurple diff --git a/Resources/Prototypes/SoundCollections/punching.yml b/Resources/Prototypes/SoundCollections/punching.yml index e17afd0978..8d57114c0c 100644 --- a/Resources/Prototypes/SoundCollections/punching.yml +++ b/Resources/Prototypes/SoundCollections/punching.yml @@ -5,3 +5,11 @@ - /Audio/Weapons/punch2.ogg - /Audio/Weapons/punch3.ogg - /Audio/Weapons/punch4.ogg + +- type: soundCollection + id: FirePunch + files: + - /Audio/Weapons/firepunch1.ogg + - /Audio/Weapons/firepunch2.ogg + - /Audio/Weapons/firepunch3.ogg + - /Audio/Weapons/firepunch4.ogg diff --git a/Resources/Prototypes/SoundCollections/screams.yml b/Resources/Prototypes/SoundCollections/screams.yml index 518bbf72bb..99a0d343d5 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/ipc.yml b/Resources/Prototypes/Species/ipc.yml index f2f99b56ff..bd6d72443a 100644 --- a/Resources/Prototypes/Species/ipc.yml +++ b/Resources/Prototypes/Species/ipc.yml @@ -45,6 +45,7 @@ RLeg: MobIPCRLeg LFoot: MobIPCLFoot RFoot: MobIPCRFoot + Wings: MobHumanoidAnyMarking - type: markingPoints id: MobIPCMarkingLimits @@ -95,6 +96,9 @@ points: 1 required: false defaultMarkings: [ MobIPCLHandDefault ] + Wings: + points: 1 + required: false - type: humanoidBaseSprite id: MobIPCMarkingFollowSkin diff --git a/Resources/Prototypes/Species/plasmaman.yml b/Resources/Prototypes/Species/plasmaman.yml new file mode 100644 index 0000000000..9ac9a2cd6a --- /dev/null +++ b/Resources/Prototypes/Species/plasmaman.yml @@ -0,0 +1,172 @@ +- type: species + id: Plasmaman + name: species-name-plasmaman + roundStart: true + prototype: MobPlasmaman + sprites: MobPlasmamanSprites + defaultSkinTone: "#a349a4" + markingLimits: MobPlasmamanMarkingLimits + dollPrototype: MobPlasmamanDummy + skinColoration: Hues + youngAge: 60 + oldAge: 120 + maxAge: 180 + maleFirstNames: names_plasmaman + femaleFirstNames: names_plasmaman + naming: FirstRoman + sexes: + - Unsexed + +- type: speciesBaseSprites + id: MobPlasmamanSprites + sprites: + Head: MobPlasmamanHead + Face: MobHumanoidAnyMarking + Chest: MobPlasmamanTorso + Eyes: MobPlasmamanEyes + LArm: MobPlasmamanLArm + RArm: MobPlasmamanRArm + LHand: MobPlasmamanLHand + RHand: MobPlasmamanRHand + LLeg: MobPlasmamanLLeg + RLeg: MobPlasmamanRLeg + LFoot: MobPlasmamanLFoot + RFoot: MobPlasmamanRFoot + Wings: MobHumanoidAnyMarking + +- type: markingPoints + id: MobPlasmamanMarkingLimits + onlyWhitelisted: true # Hides the hair and facial hair options + points: + Hair: + points: 0 + required: false + FacialHair: + points: 0 + required: false + Snout: + points: 0 + required: false + Tail: + points: 0 + required: false + HeadTop: + points: 1 + required: false + Chest: + points: 1 + required: false + RightLeg: + points: 2 + required: false + RightFoot: + points: 2 + required: false + LeftLeg: + points: 2 + required: false + LeftFoot: + points: 2 + required: false + RightArm: + points: 2 + required: false + RightHand: + points: 2 + required: false + LeftArm: + points: 2 + required: false + LeftHand: + points: 2 + required: false + +- type: humanoidBaseSprite + id: MobPlasmamanHead + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobPlasmamanHeadMale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobPlasmamanHeadFemale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobPlasmamanEyes + baseSprite: + sprite: Mobs/Customization/plasmaman.rsi + state: eyes + +- type: humanoidBaseSprite + id: MobPlasmamanTorso + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobPlasmamanTorsoMale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobPlasmamanTorsoFemale + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobPlasmamanLLeg + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobPlasmamanLArm + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobPlasmamanLHand + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobPlasmamanLFoot + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobPlasmamanRLeg + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobPlasmamanRArm + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobPlasmamanRHand + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobPlasmamanRFoot + baseSprite: + sprite: Mobs/Species/Plasmaman/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/Species/reptilian.yml b/Resources/Prototypes/Species/reptilian.yml index 83e6e61bf3..5e7a00357a 100644 --- a/Resources/Prototypes/Species/reptilian.yml +++ b/Resources/Prototypes/Species/reptilian.yml @@ -66,7 +66,7 @@ points: 3 required: false Chest: - points: 1 + points: 3 required: false RightLeg: points: 2 diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml index 0653498af1..e4d88483fb 100644 --- a/Resources/Prototypes/Species/species_weights.yml +++ b/Resources/Prototypes/Species/species_weights.yml @@ -11,3 +11,5 @@ Rodentia: 3 # DeltaV - Rodentia, see Prototypes/DeltaV/Entities/Mobs/Species/rodentia.yml Diona: 2 Shadowkin: 0 + Tajaran: 3 # Einstein Engines - Tajaran, see Prototypes/_EE/Entities/Mobs/Species/tajaran.yml + Chitinid: 3 # DeltaV - Chitinid, see Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index ede5deb897..9c3c21e19f 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -236,6 +236,7 @@ species: - IPC - Lamia + - Plasmaman functions: - !type:TraitAddComponent components: @@ -257,6 +258,7 @@ species: - IPC - Lamia + - Plasmaman functions: - !type:TraitAddComponent components: diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index 8ea7006c0c..a13e8ee10e 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 9e60b9a43d..b011f8ae2a 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -141,6 +141,7 @@ inverted: true species: - Felinid + - Tajaran functions: - !type:TraitModifyStamina staminaModifier: -15 @@ -251,6 +252,7 @@ inverted: true species: - Felinid + - Tajaran - !type:CharacterTraitRequirement inverted: true traits: @@ -274,6 +276,7 @@ inverted: true species: - Felinid + - Tajaran - !type:CharacterTraitRequirement inverted: true traits: @@ -309,6 +312,7 @@ Blunt: 1.2 Slash: 1.2 Piercing: 1.2 + Heat: 1.2 Poison: 1.2 Asphyxiation: 1.2 # An attack rate of 1.25 hits per second (1 / 0.8 = 1.25) multiplied by 20% extra damage @@ -323,8 +327,9 @@ - !type:CharacterSpeciesRequirement inverted: true species: - - Felinid # Felinids already have this feature by default. + - Felinid # Felinids/Tajaran already have this feature by default. - Rodentia # Floof - Rodentia + - Tajaran - !type:CharacterHeightRequirement max: 150 - !type:CharacterWidthRequirement @@ -381,6 +386,13 @@ types: Piercing: 5 # No, this isn't "OP", this is literally the worst brute damage type in the game. # Same deal as Slash, except that a majority of all armor provides Piercing resistance. + - !type:TraitRemoveComponent # Plasmamen have self-damage on melee attacks + components: + - type: DamageOnHit + damage: + types: + Blunt: 0 + - type: trait id: Claws @@ -391,6 +403,7 @@ inverted: true species: - Felinid # Felinids already have cat claws. + - Tajaran # Tajaran also have cat claws - Reptilian # Reptilians also have cat claws. - Shadowkin # Shadowkins also have claws. # - Vulpkanin # Vulpkanin have "Blunt" claws. One could argue this trait "Sharpens" their claws. @@ -409,6 +422,12 @@ types: Slash: 5 # Trade stamina damage on hit for a very minor amount of extra bleed. # Blunt also deals bleed damage, so this is more of a sidegrade. + - !type:TraitRemoveComponent + components: + - type: DamageOnHit + damage: + types: + Blunt: 0 - type: trait id: NaturalWeaponRemoval @@ -439,6 +458,12 @@ damage: types: Blunt: 5 + - !type:TraitRemoveComponent + components: + - type: DamageOnHit + damage: + types: + Blunt: 0 - type: trait id: StrikingCalluses diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index 1b9390d035..8442ecdc94 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -167,6 +167,7 @@ inverted: true species: - Felinid + - Tajaran - type: trait id: Singer @@ -312,6 +313,7 @@ inverted: true species: - Felinid + - Tajaran - Harpy - Rodentia # Floof - Rodentia diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index d18b438c8c..2ae9831996 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -798,3 +798,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 3f0a4c10fc..6f9db71a5f 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/WhiteDream/Entities/Clothing/Cult/armor.yml b/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml index 88b578cb5f..fdaca46eee 100644 --- a/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml +++ b/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml @@ -74,7 +74,7 @@ clothingPrototype: ClothingHeadHatHoodCultHoodTrue - type: ContainerContainer containers: - toggleable-clothing: !type:ContainerSlot { } + toggleable-clothing: !type:Container { } - type: entity parent: ClothingHeadHatHoodCulthood diff --git a/Resources/Prototypes/_DEN/Loadouts/items.yml b/Resources/Prototypes/_DEN/Loadouts/items.yml index 671dc6de2a..22d1ffc50d 100644 --- a/Resources/Prototypes/_DEN/Loadouts/items.yml +++ b/Resources/Prototypes/_DEN/Loadouts/items.yml @@ -115,3 +115,11 @@ canBeHeirloom: true items: - PlushieTabi + +- type: loadout + id: LoadoutPlushieJenn + category: Items + cost: 0 + canBeHeirloom: true + items: + - PlushieJenn diff --git a/Resources/Prototypes/_EE/Body/Parts/tajaran.yml b/Resources/Prototypes/_EE/Body/Parts/tajaran.yml new file mode 100644 index 0000000000..4115f2bf98 --- /dev/null +++ b/Resources/Prototypes/_EE/Body/Parts/tajaran.yml @@ -0,0 +1,118 @@ +- type: entity + id: PartTajaran + parent: [BaseItem, BasePart] + name: "tajaran body part" + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoTajaran + name: "Tajaran torso" + parent: [PartTajaran, BaseTorso] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + + +- type: entity + id: HeadTajaran + name: "Tajaran head" + parent: [PartTajaran, BaseHead] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmTajaran + name: "left Tajaran arm" + parent: [PartTajaran, BaseLeftArm] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "l_arm" + +- type: entity + id: RightArmTajaran + name: "right Tajaran arm" + parent: [PartTajaran, BaseRightArm] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "r_arm" + +- type: entity + id: LeftHandTajaran + name: "left Tajaran hand" + parent: [PartTajaran, BaseLeftHand] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "l_hand" + +- type: entity + id: RightHandTajaran + name: "right Tajaran hand" + parent: [PartTajaran, BaseRightHand] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "r_hand" + +- type: entity + id: LeftLegTajaran + name: "left Tajaran leg" + parent: [PartTajaran, BaseLeftLeg] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "l_leg" + +- type: entity + id: RightLegTajaran + name: "right Tajaran leg" + parent: [PartTajaran, BaseRightLeg] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "r_leg" + +- type: entity + id: LeftFootTajaran + name: "left Tajaran foot" + parent: [PartTajaran, BaseLeftFoot] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "l_foot" + +- type: entity + id: RightFootTajaran + name: "right Tajaran foot" + parent: [PartTajaran, BaseRightFoot] + components: + - type: Sprite + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: "r_foot" diff --git a/Resources/Prototypes/_EE/Body/Prototypes/tajaran.yml b/Resources/Prototypes/_EE/Body/Prototypes/tajaran.yml new file mode 100644 index 0000000000..1b5c919e83 --- /dev/null +++ b/Resources/Prototypes/_EE/Body/Prototypes/tajaran.yml @@ -0,0 +1,50 @@ +- type: body + id: Tajaran + name: tajaran + root: torso + slots: + head: + part: HeadTajaran + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganHumanEyes + torso: + part: TorsoTajaran + connections: + - right arm + - left arm + - right leg + - left leg + - head # Shitmed Change + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganVulpkaninStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + right arm: + part: RightArmTajaran + connections: + - right hand + left arm: + part: LeftArmTajaran + connections: + - left hand + right hand: + part: RightHandTajaran + left hand: + part: LeftHandTajaran + right leg: + part: RightLegTajaran + connections: + - right foot + left leg: + part: LeftLegTajaran + connections: + - left foot + right foot: + part: RightFootTajaran + left foot: + part: LeftFootTajaran diff --git a/Resources/Prototypes/_EE/Damage/modifier_sets.yml b/Resources/Prototypes/_EE/Damage/modifier_sets.yml new file mode 100644 index 0000000000..2060a66428 --- /dev/null +++ b/Resources/Prototypes/_EE/Damage/modifier_sets.yml @@ -0,0 +1,8 @@ +- type: damageModifierSet + id: Tajaran + coefficients: + Blunt: 1.15 + Slash: 1.15 + Piercing: 1.15 + Heat: 1.35 + Cold: 0.65 diff --git a/Resources/Prototypes/_EE/Datasets/Names/tajaran_first.yml b/Resources/Prototypes/_EE/Datasets/Names/tajaran_first.yml new file mode 100644 index 0000000000..14e8581c67 --- /dev/null +++ b/Resources/Prototypes/_EE/Datasets/Names/tajaran_first.yml @@ -0,0 +1,103 @@ +- type: dataset + id: names_tajaran_first + values: # Randomly generated based on https://github.com/ParadiseSS13/Paradise/blob/5b516c3166a07cd10d035be1616248ba126e31a1/code/modules/mob/language.dm + - Ahkazuzir + - Ahknal + - Ahkrhejurlzar + - Ahkwaketdar + - Arazirrrhazhal + - Azukhaztul + - Azutulsanurik + - Baqka + - Baqmirrfar + - Churdra + - Darkir + - Darrkiraasitajr + - Darrvahahkkii + - Dradra + - Draii'rrikrik + - Drarrzir + - Dratulara + - Dynhhalaasiraj + - Dynhmak + - Eechthaa + - Farcreshjurl + - Fardradra + - Farkraraghjurl + - Farrheii'rdar + - Haljun + - Halmahthaa + - Halrheeech + - Halrikdynh + - Halthaa + - Ii'rdarrajmi + - Ii'rdynhrr + - Ii'rkhanmi + - Ii'rvahmiran + - Jijunmahaasi + - Jjrika + - Jrikaahksanu + - Junaasi + - Jundradarrjri + - Junkradareech + - Junrrwajurl + - Jurlfar + - Jurlhalrr + - Jurlmahnja + - Jurlrhetul + - Jurlrik + - Jurlzirkalmanq + - Kahaasi + - Kahara + - Kahdar + - Kahketdrarhe + - Kahmakbaq + - Kahrajrr + - Kalnalketkal + - Kalrhe + - Kalwamak + - Ketjri + - Khankal + - Khantulmi + - Khazaasikhaz + - Khazkirdynheech + - Khazrr + - Kiiara + - Kiihrarjurl + - Kiirajthaakii + - Kirjri + - Kirjriraghtul + - Kirkhankhan + - Kirmidradarr + - Krahaljurlqara + - Krakra + - Mahhrar + - Mahkalkalket + - Mahzirzarjurl + - Manqjri + - Mikra + - Mirthaa + - Nalchurvah + - Njaazukal + - Raghdarr + - Raghrrhazrhe + - Rhejurlcresh + - Rhetajrcreshmir + - Rikvah + - Rirrirbaq + - Rirrr + - Rirsam + - Rirvahrrzar + - Rrarahalsanu + - Rrhazbaq + - Rrhazdarr + - Rrjunjurlazu + - Rrkhaz + - Rrmiarachur + - Samrrhazhrarrhe + - Tajrara + - Tajrjri + - Tajrqaramahkhaz + - Tajrrirrirjri + - Tulmahii'rtajr + - Tulrhejri diff --git a/Resources/Prototypes/_EE/Datasets/Names/tajaran_last.yml b/Resources/Prototypes/_EE/Datasets/Names/tajaran_last.yml new file mode 100644 index 0000000000..0355c60452 --- /dev/null +++ b/Resources/Prototypes/_EE/Datasets/Names/tajaran_last.yml @@ -0,0 +1,38 @@ +- type: dataset + id: names_tajaran_last + values: # Randomly generated based on https://github.com/ParadiseSS13/Paradise/blob/5b516c3166a07cd10d035be1616248ba126e31a1/code/modules/mob/language.dm + - Aasirirrhe + - Aravah + - Azufarjri + - Baqhaljurl + - Churmir + - Darnal + - Dradarrjri + - Drahrardra + - Farsam + - Jridrajriara + - Jrirhe + - Junsanu + - Ketwami + - Khandradar + - Kiimah + - Krajunmirr + - Krajurlcresh + - Krakhazeech + - Kravah + - Mirrirkii + - Ranmirjri + - Rirrikvahrir + - Rraasi + - Rrhazka + - Tulchurnjarrhaz + - Tulkahhrar + - Vahjunkra + - Wami + - Zarranmakjri + - Zirtajrzar + - Hadii # These 5 surnames technically should appear way more + - Kaytam + - Zhan-Khazan + - Hharar + - Njarir'Akhan diff --git a/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/human_facial_hair.yml b/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/human_facial_hair.yml new file mode 100644 index 0000000000..ef78a10646 --- /dev/null +++ b/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/human_facial_hair.yml @@ -0,0 +1,70 @@ +- type: marking + id: HumanFacialHairChin2 + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-beardchin +- type: marking + id: HumanFacialHairSuperLong + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-beardlong +- type: marking + id: HumanFacialHairShort + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-beardshort +- type: marking + id: HumanFacialHairThick + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-beardthick +- type: marking + id: HumanFacialHairViking + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-beardviking +- type: marking + id: HumanFacialHairBristle + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-bristle +- type: marking + id: HumanFacialHairMoustacheWithStubble + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-mustachewithstubble +- type: marking + id: HumanFacialHairThickBristle + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: beard-thickbristle +- type: marking + id: HumanFacialHairHandlebar + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _Corvax/Mobs/Customization/human_facial_hair.rsi + state: handlebar +- type: marking + id: HumanFacialHairHandlebar2 + bodyPart: FacialHair + markingCategory: FacialHair + sprites: + - sprite: _Corvax/Mobs/Customization/human_facial_hair.rsi + state: handlebar2 diff --git a/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/human_hair.yml b/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/human_hair.yml new file mode 100644 index 0000000000..93d917d973 --- /dev/null +++ b/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/human_hair.yml @@ -0,0 +1,91 @@ +- type: marking + id: HumanHairArabicGathered + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-arabicgatheredhair +- type: marking + id: HumanHairClassicHair + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-classichairmale +- type: marking + id: HumanHairSideComb + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-combedfromside +- type: marking + id: HumanHairLong4 + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-longhair +- type: marking + id: HumanHairManbun2 + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-manbunold +- type: marking + id: HumanHairPigtailTajaran + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-pigtailtajaran +- type: marking + id: HumanHairShavedSide + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-shavedside +- type: marking + id: HumanHairShorthair8 + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-shorthaired +- type: marking + id: HumanFembun + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _ADT/Mobs/Customization/Human/custom.rsi + state: hair-womenbun +- type: marking + id: HumanHairAfricanPigtails + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Corvax/Mobs/Customization/human_hair.rsi + state: africanpigtails +- type: marking + id: HumanHairAfropuffDouble + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Corvax/Mobs/Customization/human_hair.rsi + state: afropuffdouble +- type: marking + id: HumanHairAfropuffLeft + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Corvax/Mobs/Customization/human_hair.rsi + state: afropuffleft +- type: marking + id: HumanHairAfropuffRight + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Corvax/Mobs/Customization/human_hair.rsi + state: afropuffright diff --git a/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/tajaran.yml b/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/tajaran.yml new file mode 100644 index 0000000000..fe5d556929 --- /dev/null +++ b/Resources/Prototypes/_EE/Entities/Mobs/Customization/Markings/tajaran.yml @@ -0,0 +1,289 @@ +# Tajaran Tails + +- type: marking + id: TajaranTailRetro + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/tails.rsi + state: tail + +- type: marking + id: TajaranTailAnim + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/tails.rsi + state: tail_anim + +- type: marking + id: TajaranTailRetroRings + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/tails.rsi + state: tail + - sprite: _EE/Mobs/Customization/Tajaran/tail_markings.rsi + state: tail_rings + +- type: marking + id: TajaranTailAnimRings + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/tails.rsi + state: tail_anim + - sprite: _EE/Mobs/Customization/Tajaran/tail_markings.rsi + state: tail_anim_rings + +# Tajaran Ears + +- type: marking + id: TajaranEarsRetro + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/ears.rsi + state: ears + +- type: marking + id: TajaranEarsSeparate + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/ears.rsi + state: outears + - sprite: _EE/Mobs/Customization/Tajaran/ears.rsi + state: inears + +- type: marking + id: TajaranEarsRetroNear + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/ears.rsi + state: ears_near + +- type: marking + id: TajaranEarsSeparateNear + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/ears.rsi + state: outears_near + - sprite: _EE/Mobs/Customization/Tajaran/ears.rsi + state: inears_near + +# Tajaran Head/Face + +- type: marking + id: TajaranHeadNose + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: nose + +- type: marking + id: TajaranHeadMuzzle + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: muzzle + +- type: marking + id: TajaranHeadMuzzleLarge + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: muzzle_large + +- type: marking + id: TajaranHeadPoints + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: points + +- type: marking + id: TajaranHeadTiger + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: tiger_face + +- type: marking + id: TajaranHeadTigerAlt + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: tiger_head + +- type: marking + id: TajaranHeadPatches + bodyPart: Head + markingCategory: Head + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/head.rsi + state: patch + +# Tajaran Torso + +- type: marking + id: TajaranTorsoBelly + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/torso.rsi + state: belly + +- type: marking + id: TajaranTorsoCrest + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/torso.rsi + state: crest + +- type: marking + id: TajaranTorsoFullBelly + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/torso.rsi + state: fullbelly + +# Overlays + +- type: marking + id: TajaranOverlayPatch + bodyPart: LLeg + markingCategory: Overlay + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/overlays.rsi + state: patch + +- type: marking + id: TajaranOverlayPoints + bodyPart: LLeg + markingCategory: Overlay + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/overlays.rsi + state: points + +# Felinid Ears, adapted for tajaran (all needed to be higher up and/or modified to fit better) + +- type: marking + id: TajaranEarsBasic + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: basic_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: basic_inner + +- type: marking + id: TajaranEarsCurled + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: curled_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: curled_inner + +- type: marking + id: TajaranEarsDroopy + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: droopy_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: droopy_inner + +- type: marking + id: TajaranEarsFuzzy + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: basic_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: fuzzy_inner + +- type: marking + id: TajaranEarsStubby + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: stubby_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: stubby_inner + +- type: marking + id: TajaranEarsTall + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: tall_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: tall_inner + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: tall_fuzz + +- type: marking + id: TajaranEarsTorn + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: torn_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: torn_inner + +- type: marking + id: TajaranEarsWide + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Tajaran] + sprites: + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: wide_outer + - sprite: _EE/Mobs/Customization/Tajaran/felinid_ears.rsi + state: wide_inner diff --git a/Resources/Prototypes/_EE/Entities/Mobs/Player/tajaran.yml b/Resources/Prototypes/_EE/Entities/Mobs/Player/tajaran.yml new file mode 100644 index 0000000000..780545fa97 --- /dev/null +++ b/Resources/Prototypes/_EE/Entities/Mobs/Player/tajaran.yml @@ -0,0 +1,25 @@ +- type: entity + save: false + name: Urist McTajaran + parent: MobTajaranBase + id: MobTajaran + components: + - type: CombatMode + - type: MindContainer + showExamineInfo: true + - type: Input + context: "human" + - type: Speech + speechVerb: Felinid + - type: MobMover + - type: InputMover + - type: Alerts + - type: Actions + - type: Eye + - type: CameraRecoil + - type: Examiner + - type: CanHostGuardian + - type: NpcFactionMember + factions: + - NanoTrasen + - Cat diff --git a/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml b/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml new file mode 100644 index 0000000000..af50ad604c --- /dev/null +++ b/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml @@ -0,0 +1,129 @@ +- type: entity + name: Urist McTajaran + parent: BaseMobSpeciesOrganic + id: MobTajaranBase + abstract: true + components: + - type: Hunger + baseDecayRate: 0.02083333332 # 25% more than default + - type: Thirst + - type: Sprite + scale: 0.8, 0.8 + - type: HumanoidAppearance + species: Tajaran + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.28 + density: 140 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + - type: Body + prototype: Tajaran + requiredLegs: 2 + - type: Damageable + damageModifierSet: Tajaran + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.85 # 0.7 is base speed. + 80: 0.75 # 0.5 is base speed. + - type: Carriable # Carrying system from nyanotrasen. + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeatHuman + amount: 5 + - type: TemperatureProtection # fur is a good insulator, actually + coefficient: 0.1 + - type: Flammable + fireStackIncreaseMultiplier: 1.35 # until you light it up, cuz it's oily too + - type: NightVision + color: "#808080" + activateSound: null + deactivateSound: null + - type: Flashable + eyeDamageChance: 0.3 + eyeDamage: 1 + durationMultiplier: 1.5 + - type: MeleeWeapon + soundHit: + collection: Punch + animation: WeaponArcClaw + damage: + types: + Slash: 4 + Piercing: 1 + - type: Speech + speechSounds: Alto + - type: DamageOnHighSpeedImpact # Landing on all fours! + damage: + types: + Blunt: 1 + - type: Stamina + critThreshold: 85 + decay: 2.55 # 3 base decay multiplied by 0.85 = 2.55 + - type: TypingIndicator + proto: felinid + - type: PseudoItem + storedOffset: 0,17 + shape: + - 0,0,1,4 + - 0,2,3,4 + - 4,0,5,4 + - type: Vocal + wilhelm: "/Audio/Nyanotrasen/Voice/Felinid/cat_wilhelm.ogg" + sounds: + Male: MaleFelinid + Female: FemaleFelinid + Unsexed: MaleFelinid + - type: Felinid # real + - type: NoShoesSilentFootsteps + - type: StepTriggerImmune + whitelist: + types: + - Shard + - Landmine + - Mousetrap + - SlipEntity + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - SiikMaas + understands: + - TauCetiBasic + - SiikMaas + - type: Tag + tags: + - CanPilot + - FootstepSound + - DoorBumpOpener + - FelinidEmotes + - type: FootPrints + - type: Temperature + coldDamageThreshold: 248.15 # -25 degrees centigrade, like 12 degrees below normal + currentTemperature: 311.76 # Body temperature of cat + heatDamage: + types: + Cold: 0.65 # in line with cold resist + coldDamage: + types: + Heat: 2 # poor kitty + - type: ThermalRegulator + normalBodyTemperature: 311.76 + + +- type: entity + save: false + name: Urist McHands + parent: MobHumanDummy + id: MobTajaranDummy + categories: [ HideSpawnMenu ] + description: A dummy tajaran meant to be used in character setup. + components: + - type: HumanoidAppearance + species: Tajaran diff --git a/Resources/Prototypes/_EE/Language/Species-Specific/tajaran.yml b/Resources/Prototypes/_EE/Language/Species-Specific/tajaran.yml new file mode 100644 index 0000000000..2612c841c8 --- /dev/null +++ b/Resources/Prototypes/_EE/Language/Species-Specific/tajaran.yml @@ -0,0 +1,360 @@ +# One of 5 languages that Tajara could speak, lore-wise best choice since others (lore wise) rely on gesticulation too +# Short name is Maas +# To quote: "The traditionally employed tongue of Adhomai, comprised of expressive yowls and chirps. Native to the Tajara" +- type: language + id: SiikMaas + isVisibleLanguage: true + speech: + color: "#da954bee" + fontId: Noganas # Rugged, like the people and the land + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 # this is mostly based on the name generator, 2-4 is there so it goes here too + maxSyllables: 4 + replacement: + - mrr + - rr + - tajr + - kir + - raj + - kii + - mir + - kra + - ahk + - nal + - vah + - khaz + - jri + - ran + - darr + - mi + - jri + - dynh + - manq + - rhe + - zar + - rrhaz + - kal + - chur + - eech + - thaa + - dra + - jurl + - mah + - sanu + - dra + - ii'r + - ka + - aasi + - far + - wa + - baq + - ara + - qara + - zir + - sam + - mak + - hrar + - nja + - rir + - khan + - jun + - dar + - rik + - kah + - hal + - ket + - jurl + - mah + - tul + - cresh + - azu + - ragh + - mro + - mra + - mrro + - mrra + +# Tajaran sign language. Crucially, only tajara can "speak" it, due to need for tajara body language +# (if they cut off your tail or ears you shouldn't be able to speak it, but well) +- type: language + id: NalRasan + speech: + allowRadio: false + requireSpeech: false + color: "#dddddd" + messageWrapOverrides: + Speak: chat-sign-tajaran-language-message-wrap + Whisper: chat-sign-tajaran-language-whisper-wrap + speechVerbOverrides: + - chat-speech-verb-sign-nalrasan-1 + - chat-speech-verb-sign-nalrasan-2 + - chat-speech-verb-sign-nalrasan-3 + - chat-speech-verb-sign-nalrasan-4 + - chat-speech-verb-sign-nalrasan-5 + - chat-speech-verb-sign-nalrasan-6 + - chat-speech-verb-sign-nalrasan-7 + - chat-speech-verb-sign-nalrasan-8 + - chat-speech-verb-sign-nalrasan-9 + - chat-speech-verb-sign-nalrasan-10 + - chat-speech-verb-sign-nalrasan-11 + - chat-speech-verb-sign-nalrasan-12 + - chat-speech-verb-sign-nalrasan-13 + - chat-speech-verb-sign-nalrasan-14 + - chat-speech-verb-sign-nalrasan-15 + - chat-speech-verb-sign-nalrasan-16 + - chat-speech-verb-sign-nalrasan-17 + obfuscation: + !type:ReplacementObfuscation + replacement: + - "" # basically we can't get around this, so let's pretend that it's alright while crying + +# One of 5 languages that Tajara could speak, this one is Tajara exclusive, and get some cool stuff thanks to that (non-verbal element) +# Short name is Tajr +# To quote: "Language native to the Tajara, it employs both verbal and non-verbal elements" +- type: language + id: SiikTajr + isVisibleLanguage: true + speech: + color: "#f58c9aee" # Bright red, to push this energy through + fontId: Sriracha # relatively energetic, portraying the body movement I suppose + allowRadio: true # It's actually ok, since message wrap overrides are broken for radio, yipee? + requireSpeech: false + messageWrapOverrides: + Speak: chat-sign-tajaran-language-message-wrap + Whisper: chat-sign-tajaran-language-whisper-wrap + speechVerbOverrides: + - chat-speech-verb-sign-siiktajr-1 + - chat-speech-verb-sign-siiktajr-2 + - chat-speech-verb-sign-siiktajr-3 + - chat-speech-verb-sign-siiktajr-4 + - chat-speech-verb-sign-siiktajr-5 + - chat-speech-verb-sign-siiktajr-6 + - chat-speech-verb-sign-siiktajr-7 + - chat-speech-verb-sign-siiktajr-8 + - chat-speech-verb-sign-siiktajr-9 + - chat-speech-verb-sign-siiktajr-10 + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 3 # shorter cuz dual lingo i suppose + replacement: + - mrr + - rr + - tajr + - kir + - raj + - kii + - mir + - kra + - ahk + - nal + - vah + - khaz + - jri + - ran + - darr + - mi + - jri + - dynh + - manq + - rhe + - zar + - rrhaz + - kal + - chur + - eech + - thaa + - dra + - jurl + - mah + - sanu + - dra + - ii'r + - ka + - aasi + - far + - wa + - baq + - ara + - qara + - zir + - sam + - mak + - hrar + - nja + - rir + - khan + - jun + - dar + - rik + - kah + - hal + - ket + - jurl + - mah + - tul + - cresh + - azu + - ragh + - mro + - mra + - mrro + - mrra + + +# One of 5 languages that Tajara could speak, this one is your classic "The Nobility Language", also should have no translators availible +# Short name is Yas +# To quote: "The traditional language of the tajaran nobility" +- type: language + id: YaSsa + isVisibleLanguage: true + speech: + color: "#9a69f5ee" # More or less the color of nobility + fontId: GrenzeGotisch # Old and distinguished, but not unreadable + obfuscation: + !type:SyllableObfuscation + minSyllables: 3 + maxSyllables: 5 # since it's for nobility, we can make it a lil longer + replacement: + - hrr + - rhr + - tarj + - khir + - rajh + - kir + - mier + - kre + - ahek + - nlhal + - veh + - khaz + - dri + - rhan + - darrer + - mi + - jhri + - dynher + - manqi + - rhas + - shar + - drhaz + - kalh + - shur + - echi + - tha + - draer + - jurl + - maher + - sanii + - dra + - ii'r + - kan + - aesi + - fare + - we + - bash + - arha + - quara + - zhir + - sem + - make + - hrer + - nja + - rir + - can + - jhun + - dar + - rik + - kah + - hal + - kete + - juril + - mah + - tul + - cresh + - azu + - ragh + - miro + - mara + - mrero + - mrara + + +# One of 5 languages that Tajara could speak, this one is the dialect lingo +# Short name is Del +# To quote: "A dialect developed by the Zhan-Khazan communities, commonly used in religious +# ceremonies dedicated to the Snow God and amongst settlements comprised mostly of Zhan-Khazan" +- type: language + id: Delvahii + isVisibleLanguage: true + speech: + color: "#b1c472ee" # Green, color of grass, of change, and of spring + fontId: RubikDirt # Aptly named + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 4 # again, normal length + replacement: + - mrr + - rr + - tajr + - kir + - raj + - kii + - mir + - kra + - ahk + - nal + - vah + - khaz + - jri + - ran + - darr + - mi + - jri + - dynh + - manq + - rhe + - zar + - rrhaz + - kal + - chur + - eech + - thaa + - dra + - jurl + - mah + - sanu + - dra + - ii'r + - ka + - aasi + - far + - wa + - baq + - ara + - qara + - zir + - sam + - mak + - hrar + - nja + - rir + - khan + - jun + - dar + - rik + - kah + - hal + - ket + - jurl + - mah + - tul + - cresh + - azu + - ragh + - mro + - mra + - mrro + - mrra diff --git a/Resources/Prototypes/_EE/Species/tajaran.yml b/Resources/Prototypes/_EE/Species/tajaran.yml new file mode 100644 index 0000000000..d7029f67fe --- /dev/null +++ b/Resources/Prototypes/_EE/Species/tajaran.yml @@ -0,0 +1,175 @@ +- type: species + id: Tajaran + name: species-name-tajaran + roundStart: true + prototype: MobTajaran + sprites: MobTajaranSprites + markingLimits: MobTajaranMarkingLimits + dollPrototype: MobTajaranDummy + skinColoration: AnimalFur + minHeight: 0.65 + defaultHeight: 0.8 + maxHeight: 1.1 + minWidth: 0.6 + defaultWidth: 0.8 + maxWidth: 1.15 + maleFirstNames: names_tajaran_first + femaleFirstNames: names_tajaran_first + lastNames: names_tajaran_last + + +- type: markingPoints + id: MobTajaranMarkingLimits + points: + Hair: + points: 1 + required: false + FacialHair: + points: 1 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ TajaranTailRetro ] + HeadTop: + points: 1 + required: true + defaultMarkings: [ TajaranEarsBasic ] + 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: 3 + required: false + LeftArm: + points: 2 + required: false + LeftHand: + points: 3 + required: false + +- type: speciesBaseSprites + id: MobTajaranSprites + sprites: + Head: MobTajaranHead + HeadTop: MobHumanoidAnyMarking + HeadSide: MobHumanoidAnyMarking + Hair: MobHumanoidAnyMarking + FacialHair: MobHumanoidAnyMarking + Snout: MobHumanoidAnyMarking + Chest: MobTajaranTorso + Eyes: MobTajaranEyes + LArm: MobTajaranLArm + RArm: MobTajaranRArm + LHand: MobTajaranLHand + RHand: MobTajaranRHand + LLeg: MobTajaranLLeg + RLeg: MobTajaranRLeg + Tail: MobHumanoidAnyMarking + LFoot: MobTajaranLFoot + RFoot: MobTajaranRFoot + +- type: humanoidBaseSprite + id: MobTajaranEyes + baseSprite: + sprite: Mobs/Customization/eyes.rsi + state: eyes + +- type: humanoidBaseSprite + id: MobTajaranHead + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobTajaranHeadMale + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobTajaranHeadFemale + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobTajaranTorso + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobTajaranTorsoMale + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobTajaranTorsoFemale + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobTajaranLLeg + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobTajaranLArm + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobTajaranLHand + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobTajaranLFoot + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobTajaranRLeg + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobTajaranRArm + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobTajaranRHand + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobTajaranRFoot + baseSprite: + sprite: _EE/Mobs/Species/Tajaran/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/_EE/Traits/languages.yml b/Resources/Prototypes/_EE/Traits/languages.yml new file mode 100644 index 0000000000..7996f96da4 --- /dev/null +++ b/Resources/Prototypes/_EE/Traits/languages.yml @@ -0,0 +1,85 @@ +- type: trait + id: SiikMaas + category: TraitsSpeechLanguages + points: -1 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Tajaran + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - SiikMaas + languagesUnderstood: + - SiikMaas + +- type: trait + id: NalRasan + category: TraitsSpeechLanguages + points: -1 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + species: + - Tajaran + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - NalRasan + languagesUnderstood: + - NalRasan + +- type: trait + id: SiikTajr + category: TraitsSpeechLanguages + points: -2 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + species: + - Tajaran + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - SiikTajr + languagesUnderstood: + - SiikTajr + +- type: trait + id: YaSsa + category: TraitsSpeechLanguages + points: -2 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + species: + - Tajaran + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - YaSsa + languagesUnderstood: + - YaSsa + +- type: trait + id: Delvahii + category: TraitsSpeechLanguages + points: -2 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + species: + - Tajaran + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - Delvahii + languagesUnderstood: + - Delvahii diff --git a/Resources/Prototypes/_Goobstation/Actions/clothing.yml b/Resources/Prototypes/_Goobstation/Actions/clothing.yml new file mode 100644 index 0000000000..d82ab2718f --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Actions/clothing.yml @@ -0,0 +1,20 @@ +- type: entity + id: ActionClothingSeal + name: Seal/Unseal Clothing + description: Seals or unseals your current clothing. + categories: [ HideSpawnMenu ] + components: + - type: ConfirmableAction + confirmDelay: 0 + primeTime: 2 + - type: InstantAction + checkCanInteract: true + checkConsciousness: true + itemIconStyle: NoItem + icon: + sprite: _Goobstation/Actions/modsuit.rsi + state: activate + iconOn: + sprite: _Goobstation/Actions/modsuit.rsi + state: activate-ready + event: !type:SealClothingEvent {} diff --git a/Resources/Prototypes/_Goobstation/Alerts/alerts.yml b/Resources/Prototypes/_Goobstation/Alerts/alerts.yml new file mode 100644 index 0000000000..efacd4a096 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Alerts/alerts.yml @@ -0,0 +1,19 @@ +- type: alert + id: ModsuitPower + icons: + - sprite: /Textures/_Goobstation/Interface/Alerts/modpower.rsi + state: modpower0 + - sprite: /Textures/_Goobstation/Interface/Alerts/modpower.rsi + state: modpower1 + - sprite: /Textures/_Goobstation/Interface/Alerts/modpower.rsi + state: modpower2 + - sprite: /Textures/_Goobstation/Interface/Alerts/modpower.rsi + state: modpower3 + - sprite: /Textures/_Goobstation/Interface/Alerts/modpower.rsi + state: modpower4 + - sprite: /Textures/_Goobstation/Interface/Alerts/modpower.rsi + state: modpower5 + name: alerts-modsuit-power-name + description: alerts-modsuit-power-desc + minSeverity: 0 + maxSeverity: 5 diff --git a/Resources/Prototypes/_Goobstation/Catalog/Cargo/cargo_science.yml b/Resources/Prototypes/_Goobstation/Catalog/Cargo/cargo_science.yml new file mode 100644 index 0000000000..56d703b1ab --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Catalog/Cargo/cargo_science.yml @@ -0,0 +1,9 @@ +- type: cargoProduct + id: ScienceModsuitCores + icon: + sprite: _Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi + state: mod-core-standard + product: CrateScienceModsuitCoresFilled + cost: 3000 + category: cargoproduct-category-name-science + group: market diff --git a/Resources/Prototypes/_Goobstation/Catalog/Fills/Crates/science.yml b/Resources/Prototypes/_Goobstation/Catalog/Fills/Crates/science.yml new file mode 100644 index 0000000000..f6d85c39b6 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Catalog/Fills/Crates/science.yml @@ -0,0 +1,10 @@ +- type: entity + id: CrateScienceModsuitCoresFilled + parent: CrateScienceSecure + name: MOD cores crate + description: Contains three MOD cores inside. + components: + - type: StorageFill + contents: + - id: ModsuitCoreStandard + amount: 3 diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Back/modsuit.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Back/modsuit.yml new file mode 100644 index 0000000000..7d0b625839 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Back/modsuit.yml @@ -0,0 +1,92 @@ +- type: entity + parent: [Clothing, ContentsExplosionResistanceBase] + id: ClothingModsuitStandard + name: standard modsuit control + description: A special modular suit contol containing all modular suit parts. + components: + - type: Appearance + - type: Sprite + sprite: _Goobstation/Clothing/Back/Modsuits/standard.rsi + layers: + - state: control + - state: control-sealed + visible: false + shader: unshaded + map: [ "sealed" ] + - type: Item + size: Huge + - type: Clothing + quickEquip: false + slots: + - back + - type: Storage + grid: + - 0,0,6,3 + maxItemSize: Huge + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + toggleable-clothing: !type:Container + cell_slot: !type:ContainerSlot + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + enum.ToggleClothingUiKey.Key: + type: ToggleableClothingBoundUserInterface + - type: UseDelay + delay: 0.5 + - type: ExplosionResistance + damageCoefficient: 0.9 + - type: ToggleableClothing + requiredSlot: back + blockUnequipWhenAttached: true + replaceCurrentClothing: true + clothingPrototypes: + head: ClothingModsuitHelmetStandard + gloves: ClothingModsuitGauntletsStandard + outerClothing: ClothingModsuitChestplateStandard + shoes: ClothingModsuitBootsStandard + - type: WiresPanel + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + whitelist: + components: + - PowerCell + - type: ItemSlotsRequirePanel + slots: + cell_slot: true + - type: PowerCellDraw + drawRate: 1 # Sealed draw rate + useRate: 5 # Draw rate for sealing + - type: PowerCellSlot + cellSlotId: cell_slot + fitsInCharger: false + - type: DoAfter + - type: SealableClothingControl + - type: SealableClothingRequiresPower + - type: SealableClothingVisuals + visualLayers: + back: + - state: equipped-BACKPACK-sealed + shader: unshaded + - type: Construction + graph: Modsuit + node: standard + +- type: entity + parent: ClothingModsuitStandard + id: ClothingModsuitStandardPowerCell + suffix: High-Capacity Battery + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHigh + whitelist: + components: + - PowerCell diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Hands/modsuit.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Hands/modsuit.yml new file mode 100644 index 0000000000..a6b5eb3b0e --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Hands/modsuit.yml @@ -0,0 +1,32 @@ +- type: entity + parent: ClothingHandsBase + id: ClothingModsuitGauntletsStandard + name: standard modsuit gauntlets + description: A special modular suit gloves that protect wearer from electric shock. + categories: [ HideSpawnMenu ] + components: + - type: Appearance + - type: Sprite + sprite: _Goobstation/Clothing/Hands/Modsuits/standard.rsi + layers: + - state: gauntlets + - state: gauntlets-sealed + visible: false + map: [ "sealed" ] + - type: Clothing + equipSound: /Audio/Mecha/mechmove03.ogg + unequipSound: /Audio/Mecha/mechmove03.ogg + slots: [ gloves ] + - type: Insulated + - type: Fiber + fiberMaterial: fibers-modular + fiberColor: fibers-black + - type: FingerprintMask + - type: SealableClothing + sealUpPopup: sealable-clothing-seal-up-gauntlets + sealDownPopup: sealable-clothing-seal-down-gauntlets + - type: SealableClothingVisuals + visualLayers: + gloves: + - state: equipped-HAND-sealed + shader: unshaded diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/modsuit.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/modsuit.yml new file mode 100644 index 0000000000..09be4262a8 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/modsuit.yml @@ -0,0 +1,128 @@ +- type: entity + abstract: true + # Used to put pressureProtection, layers blocker and etc components into ComponentToggler + id: BaseClothingModsuitHelmet + name: base modsuit helmet + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: icon + - type: Clickable + - type: InteractionOutline + - type: GroupExamine + - type: Clothing + equippedPrefix: off + equipSound: /Audio/Mecha/mechmove03.ogg + unequipSound: /Audio/Mecha/mechmove03.ogg + quickEquip: false + slots: [ HEAD ] + clothingVisuals: + head: + - state: equipped-HEAD + - type: Tag + tags: + - WhitelistChameleon + +- type: entity + abstract: true + parent: BaseClothingModsuitHelmet + # Used for helmets that hide your identity even if it's not sealed + id: BaseClothingModsuitHelmetHideIdentity + name: base modsuit helmet + categories: [ HideSpawnMenu ] + components: + - type: IdentityBlocker + - type: IngestionBlocker + - type: HideLayerClothing + slots: + - Hair + - Snout + - HeadTop + - HeadSide + +- type: entity + parent: BaseClothingModsuitHelmet + id: ClothingModsuitHelmetStandard + name: standard modsuit helmet + description: A special modular suit spaceproof helmet designed for compact folding inside modular suit control. + categories: [ HideSpawnMenu ] + components: + - type: Appearance + - type: Sprite + sprite: _Goobstation/Clothing/Head/Modsuits/standard.rsi + layers: + - state: helmet + - state: helmet-sealed + visible: false + map: [ "sealed" ] + - type: HideLayerClothing # This helmet don't have sprite on unsealed state + slots: + - Snout + - type: SealableClothing + sealUpPopup: sealable-clothing-seal-up-helmet + sealDownPopup: sealable-clothing-seal-down-helmet + - type: SealableClothingVisuals + visualLayers: + head: + - state: equipped-HEAD-sealed + - type: Armor + modifiers: + coefficients: + Blunt: 0.90 + Slash: 0.90 + Piercing: 0.95 + Heat: 0.90 + Radiation: 0.75 + - type: ComponentToggler + components: + - type: BreathMask + - type: PressureProtection + highPressureMultiplier: 0.3 + lowPressureMultiplier: 1000 + - type: TemperatureProtection + coefficient: 0.1 + - type: IdentityBlocker + - type: IngestionBlocker + - type: HideLayerClothing + slots: + - Hair + - Snout + - HeadTop + - HeadSide + # This will all be replaced by modules later + - type: ToggleableLightVisuals + - type: PointLight + enabled: false + radius: 3 + energy: 2 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + netsync: false + - 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: 600 # Lights drain 3/s but recharge of 2 makes this 1/s, therefore 600 is 10 minutes of light + startingCharge: 600 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 2 + diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/OuterClothing/modsuit.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/OuterClothing/modsuit.yml new file mode 100644 index 0000000000..c8cca76bad --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/OuterClothing/modsuit.yml @@ -0,0 +1,47 @@ +- type: entity + parent: ClothingOuterBase + id: ClothingModsuitChestplateStandard + name: standard modsuit chestplate + description: A special modular suit spaceproof cover designed for compact folding inside modular suit control. + categories: [ HideSpawnMenu ] + components: + - type: Appearance + - type: AllowSuitStorage + - type: Sprite + sprite: _Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi + layers: + - state: chestplate + - state: chestplate-sealed + visible: false + map: [ "sealed" ] + - type: Clothing + equipSound: /Audio/Mecha/mechmove03.ogg + unequipSound: /Audio/Mecha/mechmove03.ogg + slots: [ outerClothing ] + - type: ClothingSpeedModifier + walkModifier: 0.9 + sprintModifier: 0.9 + - type: SealableClothing + sealUpPopup: sealable-clothing-seal-up-chestplate + sealDownPopup: sealable-clothing-seal-down-chestplate + - type: SealableClothingVisuals + visualLayers: + outerClothing: + - state: equipped-OUTERCLOTHING-sealed + shader: unshaded + - type: Armor + modifiers: + coefficients: + Blunt: 0.85 + Slash: 0.85 + Piercing: 0.85 + Heat: 0.85 + Radiation: 0.6 + - type: ComponentToggler + components: + - type: PressureProtection + highPressureMultiplier: 0.3 + lowPressureMultiplier: 1000 + - type: TemperatureProtection + coefficient: 0.1 + diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Shoes/modsuit.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Shoes/modsuit.yml new file mode 100644 index 0000000000..4f192c6a23 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Shoes/modsuit.yml @@ -0,0 +1,33 @@ +- type: entity + parent: ClothingShoesBase + id: ClothingModsuitBootsStandard + name: standard modsuit boots + description: A special modular suit boots designed for compact folding inside modular suit control. + categories: [ HideSpawnMenu ] + components: + - type: Appearance + - type: Sprite + sprite: _Goobstation/Clothing/Shoes/Modsuits/standard.rsi + layers: + - state: boots + - state: boots-sealed + visible: false + map: [ "sealed" ] + - type: Clothing + equipSound: /Audio/Mecha/mechmove03.ogg + unequipSound: /Audio/Mecha/mechmove03.ogg + slots: [ feet ] + - type: Tag + tags: + - WhitelistChameleon + - type: SealableClothing + sealUpPopup: sealable-clothing-seal-up-boots + sealDownPopup: sealable-clothing-seal-down-boots + - type: ClothingSpeedModifier + walkModifier: 0.9 + sprintModifier: 0.9 + - type: SealableClothingVisuals + visualLayers: + shoes: + - state: equipped-FEET-sealed + shader: unshaded diff --git a/Resources/Prototypes/_Goobstation/Entities/Mobs/Customization/Markings/human_hair.yml b/Resources/Prototypes/_Goobstation/Entities/Mobs/Customization/Markings/human_hair.yml new file mode 100644 index 0000000000..96abc2dfd4 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Mobs/Customization/Markings/human_hair.yml @@ -0,0 +1,264 @@ +# Goobstation TODO: this should be in a goobstation folder +- type: marking + id: HumanHairBraidedExtension + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: braidedExtensions + +- type: marking + id: HumanHairCometTail + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: cometTail + +- type: marking + id: HumanHairFantasyHair + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: fantasyHair + +- type: marking + id: HumanHairFlatTwistsUpdo + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: flatTwistsUpdo + +- type: marking + id: HumanHairFloorlengthBraid + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: floorlengthBraid + +- type: marking + id: HumanHairFloorlengthWavy + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: floorlengthWavy + +- type: marking + id: HumanHairFrontBraidsLong + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: frontBraidsLong + +- type: marking + id: HumanHairFrontBraidsMedium + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: frontBraidsMedium + +- type: marking + id: HumanHairFrontBraidsShort + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: frontBraidsShort + +- type: marking + id: HumanHairHairnet + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: hairnet + +- type: marking + id: HumanHairJellyfish + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: jellyfish + +- type: marking + id: HumanHairKazuyaMishima + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: kazuyaMishima + +- type: marking + id: HumanHairLongBraids + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: longBraids + +- type: marking + id: HumanHairLongCurvy + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: longCurvy + +- type: marking + id: HumanHairLongPompadour + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: longPompadour + +- type: marking + id: HumanHairMediumCurls + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: mediumCurls + +- type: marking + id: HumanHairMullet + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: mullet + +- type: marking + id: HumanHairPelvicLengthBraid + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: pelvicLengthBraid + +- type: marking + id: HumanHairPlateau + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: plateau + +- type: marking + id: HumanHairQueenBee + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: queenBee + +- type: marking + id: HumanHairSaggedMohawk + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: saggedMohawk + +- type: marking + id: HumanHairSharpMohawk + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: sharpMohawk + +- type: marking + id: HumanHairShortAndPoofy + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: shortAndPoofy + +- type: marking + id: HumanHairShortCurls + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: shortCurls + +- type: marking + id: HumanHairShoulderLengthBraid + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: shoulderLengthBraid + +- type: marking + id: HumanHairSideSpike + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: sideSpike + +- type: marking + id: HumanHairSpaceLoops + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: spaceLoops + +- type: marking + id: HumanHairStar + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: star + +- type: marking + id: HumanHairStarFro + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: starFro + +- type: marking + id: HumanHairStyledCurls + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: styledCurls + +- type: marking + id: HumanHairUnkemptScientist + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: unkemptScientist + +- type: marking + id: HumanHairFrizzyBraid + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: frizzyBraid + +- type: marking + id: HumanHairWispy + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: _Goobstation/Mobs/Customization/human_hair.rsi + state: wispy diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml index dcb7ecfb45..85a5aeea01 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml @@ -13,7 +13,7 @@ wideAnimationRotation: -90 soundHit: path: "/Audio/Weapons/chainsaw.ogg" - attackRate: 3.5 + attackRate: 0.3 damage: types: Structural: 35 diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Robotics/modsuit_parts.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Robotics/modsuit_parts.yml new file mode 100644 index 0000000000..47ab0265e1 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Robotics/modsuit_parts.yml @@ -0,0 +1,162 @@ +- type: entity + id: PartModsuit + parent: BaseItem + name: MOD part + description: A part used in MOD construction. + abstract: true + components: + - type: Sprite + sprite: _Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi + - type: Icon + sprite: _Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi + - type: Item + size: Normal + - type: ContainerContainer + containers: + bodypart: !type:Container + ents: [] + #- type: GuideHelp TODO: Guide + +- type: entity + id: ModsuitChestplate + parent: PartModsuit + name: MOD chestplate + components: + - type: Sprite + state: chestplate + - type: Icon + state: chestplate + - type: PhysicalComposition + materialComposition: + Steel: 62 + - type: Tag + tags: + - ModsuitPart + - ModsuitChestplate + +- type: entity + id: ModsuitBoots + parent: PartModsuit + name: MOD boots + components: + - type: Sprite + state: boots + - type: Icon + state: boots + - type: PhysicalComposition + materialComposition: + Steel: 62 + - type: Tag + tags: + - ModsuitPart + - ModsuitBoots + +- type: entity + id: ModsuitHelmet + parent: PartModsuit + name: MOD helmet + components: + - type: Sprite + state: helmet + - type: Icon + state: helmet + - type: PhysicalComposition + materialComposition: + Steel: 62 + - type: Tag + tags: + - ModsuitPart + - ModsuitHelmet + +- type: entity + id: ModsuitGauntlets + parent: PartModsuit + name: MOD gauntlets + components: + - type: Sprite + state: gauntlets + - type: Icon + state: gauntlets + - type: PhysicalComposition + materialComposition: + Steel: 62 + - type: Tag + tags: + - ModsuitPart + - ModsuitGauntlets + +- type: entity + id: ModsuitShell + parent: PartModsuit + name: MOD shell + components: + - type: Appearance + - type: Sprite + state: shell + - type: Icon + state: shell + - type: PhysicalComposition + materialComposition: + Steel: 125 + Plasma: 62 + - type: ContainerContainer + containers: + cell_slot: !type:Container + core-container: !type:Container + - type: Construction + graph: Modsuit + node: start + defaultTarget: standard + containers: + - cell_slot + - core-container + - type: GenericVisualizer + visuals: + enum.ConstructionVisuals.Key: + enum.ConstructionVisuals.Layer: + shell-core: { state: shell-core } + shell-core-secured: { state: shell-core-secured } + shell-helmet: { state: shell-helmet } + shell-chestplate: { state: shell-chestplate } + shell-gauntlets: { state: shell-gauntlets } + shell-boots: { state: shell-boots } + shell-secured: { state: shell-secured } + +- type: entity + id: ModsuitPlatingExternal + parent: PartModsuit + name: MOD standard external plating + description: A part used in MOD construction. + components: + - type: Sprite + state: standard-plating + - type: Icon + state: standard-plating + - type: PhysicalComposition + materialComposition: + Steel: 75 + Glass: 37 + Plasma: 12 + - type: Tag + tags: + - ModsuitPart + - ModsuitPlatingExternal + +- type: entity + id: ModsuitCoreStandard + parent: PartModsuit + name: MOD standard core + description: Growing in the most lush, fertile areas of the planet Sprout, there is a crystal known as the Heartbloom. These rare, organic piezoelectric crystals are of incredible cultural significance to the artist castes of the Ethereals, owing to their appearance; which is exactly similar to that of an Ethereal's heart. Which one you have in your suit is unclear, but either way, it's been repurposed to be an internal power source for a Modular Outerwear Device. + components: + - type: Sprite + state: mod-core-standard + - type: Icon + state: mod-core-standard + - type: Tag + tags: + - ModsuitPart + - ModsuitCore + - type: PhysicalComposition + materialComposition: + Plasma: 50 + Glass: 25 diff --git a/Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/clothing/modsuit.yml b/Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/clothing/modsuit.yml new file mode 100644 index 0000000000..22357a98f7 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/clothing/modsuit.yml @@ -0,0 +1,113 @@ +- type: constructionGraph + id: Modsuit + start: start + graph: + - node: start + entity: ModsuitShell + edges: + - to: shell-core + steps: + - tag: ModsuitCore + name: MOD core + store: core-container + completed: + - !type:PlaySound + sound: /Audio/Items/screwdriver2.ogg + + - node: shell-core + actions: + - !type:AppearanceChange + edges: + - to: start + steps: + - tool: Prying + completed: + - !type:EmptyContainer + container: core-container + - to: shell-core-secured + steps: + - tool: Screwing + doAfter: 1 + + - node: shell-core-secured + actions: + - !type:AppearanceChange + edges: + - to: shell-helmet + steps: + - tag: ModsuitHelmet + name: MOD helmet + doAfter: 1 + completed: + - !type:PlaySound + sound: /Audio/Items/screwdriver2.ogg + + - node: shell-helmet + actions: + - !type:AppearanceChange + edges: + - to: shell-chestplate + steps: + - tag: ModsuitChestplate + name: MOD chestplate + doAfter: 1 + completed: + - !type:PlaySound + sound: /Audio/Items/screwdriver2.ogg + + - node: shell-chestplate + actions: + - !type:AppearanceChange + edges: + - to: shell-gauntlets + steps: + - tag: ModsuitGauntlets + name: MOD gauntlets + doAfter: 1 + completed: + - !type:PlaySound + sound: /Audio/Items/screwdriver2.ogg + + - node: shell-gauntlets + actions: + - !type:AppearanceChange + edges: + - to: shell-boots + steps: + - tag: ModsuitBoots + name: MOD boots + doAfter: 1 + completed: + - !type:PlaySound + sound: /Audio/Items/screwdriver2.ogg + + - node: shell-boots + actions: + - !type:AppearanceChange + edges: + - to: shell-secured + steps: + - tool: Anchoring + doAfter: 1 + + - tool: Screwing + doAfter: 1 + + - node: shell-secured + actions: + - !type:AppearanceChange + edges: + - to: standard + steps: + - tag: ModsuitPlatingExternal + name: any MOD plating + doAfter: 1 + completed: + - !type:PlaySound + sound: /Audio/Items/screwdriver2.ogg + + - tool: Anchoring + doAfter: 1 + + - node: standard + entity: ClothingModsuitStandard diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/categories.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/categories.yml index 42e63aaf24..a8107f0c2c 100644 --- a/Resources/Prototypes/_Goobstation/Recipes/Lathes/categories.yml +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/categories.yml @@ -38,3 +38,7 @@ - type: latheCategory id: MechWeapons name: lathe-category-mechs-weapons + +- type: latheCategory + id: Modsuit + name: lathe-category-modsuit diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/robotics.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/robotics.yml new file mode 100644 index 0000000000..66c23c1fbc --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/robotics.yml @@ -0,0 +1,50 @@ +- type: latheRecipe + id: ModsuitChestplate + result: ModsuitChestplate + category: Modsuit + completetime: 5 + materials: + Steel: 250 + +- type: latheRecipe + id: ModsuitBoots + result: ModsuitBoots + category: Modsuit + completetime: 5 + materials: + Steel: 250 + +- type: latheRecipe + id: ModsuitHelmet + result: ModsuitHelmet + category: Modsuit + completetime: 5 + materials: + Steel: 250 + +- type: latheRecipe + id: ModsuitGauntlets + result: ModsuitGauntlets + category: Modsuit + completetime: 5 + materials: + Steel: 250 + +- type: latheRecipe + id: ModsuitShell + result: ModsuitShell + category: Modsuit + completetime: 5 + materials: + Steel: 500 + Plasma: 250 + +- type: latheRecipe + id: ModsuitPlatingExternal + result: ModsuitPlatingExternal + category: Modsuit + completetime: 5 + materials: + Steel: 300 + Glass: 150 + Plasma: 50 diff --git a/Resources/Prototypes/_Goobstation/Research/experimental.yml b/Resources/Prototypes/_Goobstation/Research/experimental.yml new file mode 100644 index 0000000000..732c337016 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Research/experimental.yml @@ -0,0 +1,19 @@ +- type: technology + id: ModsuitsTech + name: research-technology-modsuits + icon: + sprite: _Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi + state: mod-core-standard + discipline: Experimental + tier: 3 + cost: 5000 + technologyPrerequisites: + - AdvancedTacsuits + softCapContribution: 1.5 + recipeUnlocks: + - ModsuitChestplate + - ModsuitBoots + - ModsuitHelmet + - ModsuitGauntlets + - ModsuitShell + - ModsuitPlatingExternal diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml index cfd728a2a1..9c1a50f9e4 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml @@ -39,9 +39,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: BlueshieldOfficerGear + subGear: + - BlueshieldPlasmamanGear equipment: back: ClothingBackpackBlueshield jumpsuit: ClothingUniformJumpsuitBlueshieldOfficer @@ -57,3 +64,11 @@ #belt: ClothingBeltSecurityFilled #pocket1: WeaponPistolMk58 #pocket2: DeathAcidifierImplanter + +- type: startingGear + id: BlueshieldPlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitBlueshield + head: ClothingHeadEnvirohelmBlueshield + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml index 1e97aee0d3..13f74d3dfd 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml @@ -34,9 +34,16 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: MagistrateGear + subGear: + - MagistratePlasmamanGear equipment: jumpsuit: ClothingUniformJumpsuitMagistrate shoes: ClothingShoesLeather @@ -44,3 +51,11 @@ id: CentcomPDA ears: ClothingHeadsetMagistrate pocket1: UniqueMagistrateLockerTeleporter + +- type: startingGear + id: MagistratePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitMagistrate + head: ClothingHeadEnvirohelmMagistrate + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml index 290a73e392..5158285608 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml @@ -33,12 +33,27 @@ - !type:AddComponentSpecial components: - type: CommandStaff + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 8 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh - type: startingGear id: NanotrasenRepresentativeGear + subGear: + - NanotrasenRepresentativePlasmamanGear equipment: shoes: ClothingShoesColorBlack id: CentcomPDA jumpsuit: ClothingUniformJumpsuitNanotrasenRepresentative ears: ClothingHeadsetCentCom pocket1: UniqueNanorepLockerTeleporter + +- type: startingGear + id: NanotrasenRepresentativePlasmamanGear + parent: BasePlasmamanGear + equipment: + jumpsuit: ClothingUniformEnvirosuitNanotrasenRepresentative + head: ClothingHeadEnvirohelmNanotrasenRepresentative + gloves: ClothingHandsGlovesEnviroglovesBlack diff --git a/Resources/Prototypes/_Goobstation/tags.yml b/Resources/Prototypes/_Goobstation/tags.yml index 27c98e1ad8..2f3f918967 100644 --- a/Resources/Prototypes/_Goobstation/tags.yml +++ b/Resources/Prototypes/_Goobstation/tags.yml @@ -96,7 +96,7 @@ - type: Tag id: RipleyMkII - + - type: Tag id: Clarke @@ -104,4 +104,30 @@ id: Durand - type: Tag - id: Gygax \ No newline at end of file + id: Gygax + + # MODsuits + +- type: Tag + id: ModsuitPart + +- type: Tag + id: ModsuitShell + +- type: Tag + id: ModsuitGauntlets + +- type: Tag + id: ModsuitHelmet + +- type: Tag + id: ModsuitBoots + +- type: Tag + id: ModsuitChestplate + +- type: Tag + id: ModsuitCore + +- type: Tag + id: ModsuitPlatingExternal diff --git a/Resources/Prototypes/_SimpleStation/Entities/Mobs/Customization/IPCwings.yml b/Resources/Prototypes/_SimpleStation/Entities/Mobs/Customization/IPCwings.yml new file mode 100644 index 0000000000..16360d6304 --- /dev/null +++ b/Resources/Prototypes/_SimpleStation/Entities/Mobs/Customization/IPCwings.yml @@ -0,0 +1,8 @@ +- type: marking + id: WingsRobotic + bodyPart: Wings + markingCategory: Wings + speciesRestriction: [IPC] + sprites: + - sprite: _SimpleStation/Mobs/Customization/wings64x34.rsi + state: robotic diff --git a/Resources/Prototypes/fonts.yml b/Resources/Prototypes/fonts.yml index 6b5ebca189..e8135ed045 100644 --- a/Resources/Prototypes/fonts.yml +++ b/Resources/Prototypes/fonts.yml @@ -73,3 +73,23 @@ - type: font id: Cambria path: /Fonts/Cambria.ttf + +- type: font + id: LDFComicSans + path: /Fonts/LDFComicSans/LDFComicSans-Medium.ttf + +- type: font + id: OnlyYou + path: /Fonts/Only_You.otf + +- type: font + id: Sriracha + path: /Fonts/Sriracha/Sriracha.ttf + +- type: font + id: GrenzeGotisch + path: /Fonts/Grenze_Gotisch/GrenzeGotisch.ttf + +- type: font + id: RubikDirt + path: /Fonts/Rubik_Dirt/RubikDirt.ttf \ No newline at end of file diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 047470e293..9bdce9227d 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -417,6 +417,9 @@ - type: Tag id: ClothMade +- type: Tag + id: ClothingHeadHelmetBasic + - type: Tag id: ClownMask @@ -597,6 +600,9 @@ - type: Tag id: EmitterBolt +- type: Tag + id: Envirohelm + - type: Tag id: Enzyme @@ -1076,6 +1082,9 @@ - type: Tag id: PlasmaGlassShard +- type: Tag + id: PlasmamanSafe + - type: Tag id: Plastic @@ -1275,6 +1284,9 @@ - type: Tag id: Steak +- type: Tag + id: Stunbaton + - type: Tag id: SubdermalImplant @@ -1374,6 +1386,9 @@ - type: Tag id: WeaponAntiqueLaser +- type: Tag + id: WeaponDisabler + - type: Tag id: WeaponPistolCHIMPUpgradeKit @@ -1446,4 +1461,4 @@ id: SiliconEmotes - type: Tag - id: UnathiEmotes \ No newline at end of file + id: UnathiEmotes diff --git a/Resources/Prototypes/typing_indicator.yml b/Resources/Prototypes/typing_indicator.yml index 7e8c92787f..11f339454f 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/DeltaV/Chitinid.xml b/Resources/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml new file mode 100644 index 0000000000..29dde13c0f --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/DeltaV/Chitinid.xml @@ -0,0 +1,28 @@ + + # Chitinid + + + + + + An industrious worker drone species, the Chitinid are strong diligent workers. Thanks to their homeworld's enviroment, they have grown an acute resistance to radiation, but not without its side effects. + + ## Diet + - Nothing special. + + ## Benefits + - Takes 80% less Radiation, 10% less Slash. + - Their bodies naturally recover from light radiation damage up to a point, once they accumulate enough radiation they must purge it from their systems in the form of a small rock. + - Due to their worker drone nature they are Better at pulling and carrying things. + - Due to their radioactive homeworld they possess a bio light. + + ## Drawbacks + - Built for work rather than combat their hard shells are weaker to Blunt and piercing damage, they take 25% more piercing and 15% more Blunt damage. + - Due to their hard shells normal syringes can not pierce them, requiring hypos to bypass the toughness. + - Thanks to their overactive systems they get hungry 33% faster. + - The cold does not agree with their biology and makes their movement sluggish, the cold also harms them more than others. + - They are deceptivly heavy due to their lifestyle and diet. + - The Chitzite they expel is slightly radioactive. + - Bug Blood. + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml b/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml new file mode 100644 index 0000000000..d0c41a3100 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Plasmaman.xml @@ -0,0 +1,73 @@ + + # Plasmamen + + + + + + They breathe plasma, and oxygen is highly toxic to them when inhaled. + Being exposed to oxygen sets them on fire. + + To prevent ignition, they wear sealed suits made up of an envirosuit (in the jumpsuit slot) and a [bold]spaceworthy[/bold] envirosuit helmet. + Other suits like EVA suits, vacsuits, tacsuits and hardsuits will also seal them from oxygen exposure. + + They don't experience hunger nor thirst. + They don't have blood and cannot bleed out. + + Due to their skeleton body, they can consume Milk to gain a positive moodlet and slowly heal Brute, Heat, Shock, and Caustic damage. + They can also consume Plasma to gain a bigger positive moodlet and heal every damage type faster, except for Cellular damage. + + + + + + + They infuse their fists with plasma dust that combusts when they punch, dealing [color=orange]5 Heat[/color] and [color=red]2.25 Blunt[/color] damage. However, each successful punch deals [color=orange]1 Heat[/color] damage to their hands. + + Plasmamen with the traits [bold]Claws[/bold], [bold]Talons[/bold] or [bold]Natural Weapons Removal[/bold] have less unarmed damage but don't take self-damage from unarmed attacks. + + They take [color=#1e90ff]25% less Piercing, 20% less Poison, and 15% less Slash damage[/color], + and are [color=#8658fc]immune to Radiation and Cold damage[/color], + but take [color=#ffa500]50% more Blunt and 50% more Heat damage[/color]. + + Due to their [color=#8658fc]Cold immunity[/color], they can live in cold environments such as Glacier Station without the need of a winter coat. + + ## Equipment + + + + + + + All Plasmamen start with an envirosuit, an envirosuit helmet, and a plasma internals tank. + + Their envirosuits contain a [color=#1e90ff]self-extinguisher[/color] with limited charges, which they can activate when they are on fire + and wearing their envirosuit helmet. The self-extinguisher needs to recharge between uses. + + + Cartridge refills of the envirosuit's self-extinguisher can be bought in [bold]Loadouts[/bold], or printed at the medical techfab after research. + A refill makes a recharging self-extinguisher immediately usable again. + + + + Their envirosuit helmets are [bold]spaceworthy[/bold] and provide welding protection. The helmet's visor can be lit up like a flashlight, using the inserted power cell as a battery. + They cannot eat nor drink without taking off their envirosuit helmet. + + The plasma internals tank lasts roughly an hour before needing to be replaced or refilled. + + ## Medical Treatment + + + + + Before performing surgery on a Plasmaman, their envirosuit needs to be unequipped first, which is disastrous in an oxygenated environment. + + To get around this, the Plasmaman can be buckled to a [bold]stasis bed[/bold] before removing their envirosuit + to prevent them from self-igniting throughout the surgical procedure. + + + Their envirosuit helmets prevents them from eating pills, but their envirosuits allow chemicals to be injected through them. + + + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Species.xml b/Resources/ServerInfo/Guidebook/Mobs/Species.xml index 6820cd1c80..4b747b5797 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Species.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Species.xml @@ -13,6 +13,7 @@ + # Parkstation specific species diff --git a/Resources/ServerInfo/Guidebook/Mobs/Tajaran.xml b/Resources/ServerInfo/Guidebook/Mobs/Tajaran.xml new file mode 100644 index 0000000000..07d9a999df --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Tajaran.xml @@ -0,0 +1,127 @@ + + # Tajaran + All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Tajaran with some modifications by SX-7(Github). + + + + The Tajara (direct plural: Tajara – Tah-jaw-rah both singular and multiple) (adjective: Tajaran - Tah-jaw-ran) are a race of humanoids that possess markedly felinoid traits that include a semi-prehensile tail, a body covered in fur of varying shades, and padded, digitigrade feet. + Tajaran history and society is deeply entrenched in the conflict between its caste system and ruling governments. + The species currently finds itself involved in a cold war between the three powers that control its homeworld, Adhomai. + + # Biology + + To the average human, the Tajara share many similarities with Earth's felines; however, when looked at from a purely scientific perspective, this description is largely superficial. + Unlike terrestrial felines, the Tajara are both omnivorous and bipedal. + Their bodies are almost entirely covered in a thick coat of fur that is extremely good at insulating them from the extreme cold of Adhomai. + The layer of body fat and fur is designed to trap body heat efficiently. + There are only a handful of areas where fur is not present, those being on the palm of their hands, the soles of their feet, and a number of various orifices as well as a small area around their eyes. + Tajara have nictitating membranes, a transparent eyelid layer that assists in preventing snow blindness and keeping their eyes moist against the wind. + + Occasionally, the fur around a Tajara's neck is known to grow into a shaggy 'mane' of sorts, giving them a distinct look, not unlike a terran lion. + This hair tends to be much stronger and a great deal wirier than the rest of the fur on a Tajara's body. + Some Tajara tend towards monochromatic bodies while others have multicolor or even calico fur patterns. + These designs depend heavily on the genetics of the individual's parents, much like hair and eye color. + Because of this, some parents are utterly incapable of producing multicolor children. + Designs including flat colors, stripes, spots, and most conceivable combinations have been recorded by scientists both Tajaran and human. + A male Tajara is somewhere between 150 cm and 185 cm in height, while the mean body mass is between 65 kg and 100 kg. + Females tend to range between 150 cm and 175 cm in height, with their own weight somewhere around 45 kg to 85kg. + As such, both their body weight and height are roughly comparable to the average human. + Height depends on a Tajara's ethnicity. + Njarir'akhran were bred to be taller, M'sai are a more middle height, Hharar are typically shorter or of middle height, and Zhan-Khazan are usually the tallest of the races. + Any Tajara who falls out of this range is unusually tall or short which typically stems from a medical condition. + A Tajaran fetus only takes six months to mature, and Tajaran children likewise mature rapidly, reaching the full extent of their growth by 15 or 16. + This rapid maturation has a profound effect on the lifespan of Tajara, as only with modern medicine have Tajara reached ages above 70, with the oldest living Tajara being 84 years old. + Most Tajara retire at age 60 when they are too old to work in any capacity. + + ## Ethnicities + + There are four races of Tajara: the Hharar, the Zhan-Khazan, the Njarir’Akhran, and the M'sai. + Each race has a common role that they play in a society to which their biological inclinations make them more suited, as well as their own cultures which have formed from long histories of performing these roles in society. + Tajara heavily stereotype each other based on race which is often a cause for conflict. + As a result of these differences, there is a lot of racial tension between these various types of Tajara which was further exacerbated by differences in socioeconomic classes. + + ### Hharar + + The first Tajaran ethnicity that Humanity came in contact with is generally viewed as the 'typical Tajara', which is reinforced by their numerical superiority over the other groups. + Additionally, given their large numbers and capabilities, they most often serve in governmental positions and as ambassadors to other races; this leads to them being taken as the 'face' of the Tajaran race, as it were. Hharar trend towards being the most intellectual of all Tajaran groups, and as such their physical prowess is significantly reduced. + The Hharar are the stereotypical 'worker' Tajara, commonly described as loyal employees who are passionate and not afraid to voice their opinions. + + ### Zhan-Khazan + + The second most populous of Tajaran ethnicities, and are considered to be the backbone of the Tajaran workforce. + Because of their history of hard work and the way they adapted to harsh mountain life, Zhan-Khazan are more physically intimidating than other Tajara. + Featuring more toned, muscular bodies, thicker fur coats, and heavier body weight, they are well-suited to tasks requiring brute strength and heavy lifting. + Due to their status as laborer they suffer discrimination and are usually regarded as less intelligent. + + ### M'sai + + The third most populous Tajaran ethnic group, the M'sai were at one point the hunters for ancient Tajara and evolved to have lithe, slender forms, and light fur that hid them in the blizzards on Adhomai. + As Tajaran society advanced, M'sai could be found in many roles related to combat, including law enforcement and military service. + They are very loyal to their friends and family but aren't as overt about it as the Zhan-Khazan. + With wide eyes and acute senses, they make great soldiers, with a vision adapted to compensate for the heavy blizzards that plague their home planet. + They are also great survivalists and are capable of scrounging food for themselves via hunting. + + ### Njarir’Akhran + + The ethnic group that made up the majority of the plutocracy before the Great War. + Their lineage can be traced from careful breeding between Hharar and M'sai, leading to where they currently are today. + Following recent events on Adhomai, Njarir make up less than ten percent of the population. + Easily identifiable by their large ears, fluffy tails, luxurious fur, and slender, elegant features. + Njarir suffer persecution and rejection from certain proponents of Tajaran society because of their bloodline. + As the most learned of all Tajaran ethnic groups, they boast high intelligence and have a propensity towards the arts and sciences. + + # History + + Adhomai, the Tajaran homeworld, has long been ruled by a deeply entrenched nobility. + Historical records dating back 3,000 years describe monarchies supported by religious authorities, where rulers claimed divine origins. + These local monarchies evolved into feudal systems where peasants lived under oppressive conditions, enforced by M’sai enforcers. + Over centuries, noble families like the Njarir’Akhran solidified their control, hoarding technological and scientific advancements while imposing harsh laws. + Tensions between nobility and peasants escalated with industrialization in the 18th and 19th centuries. + The invention of the printing press in 1756 CE spread anti-monarchist sentiments despite strict censorship. + By the mid-20th century, industrialization exacerbated inequalities, with peasants laboring in mines and on railways for the nobles' benefit. + Resentment reached a peak, paving the way for revolution. + + Human discovery in 2418 CE introduced new ideas of equality and freedom, fueling Tajaran uprisings. + The First Revolution began in 2421 CE after a public execution incited armed rebellion. + By 2431 CE, the rebels, aided by defecting nobles like the Hadii family, overthrew the old order at the cost of over 92 million lives. + + The People's Republic of Adhomai was established under Hadii leadership in 2432 CE, backed by human corporations like NanoTrasen. + However, disagreements over resource control led to the Second Revolution in 2451 CE, resulting in a decade-long conflict. + By 2461 CE, a cold war emerged among three factions: the People's Republic, the Democratic People's Republic, and the New Kingdom of Adhomai. + + Today, Adhomai remains divided, marked by ongoing tensions, proxy wars, and an uneven modernization process. + While urban centers thrive, rural areas struggle, and foreign influence continues to shape the Tajaran future. + The species navigates a precarious path, torn between progress and the scars of its feudal past. + + + # Species Traits + + - [color=#1e90ff]Animal diet[/color]: Tajara are poisoned by theobromine, but can process uncooked animal protein. + + - [color=#1e90ff]Cold Resistance[/color]: Tajara fare better against cold than humans, receiveing [color=#1e90ff]35% less cold damage[/color] and [color=#1e90ff]tolerating lower temperatures[/color]. + + - [color=#1e90ff]Hairballs[/color]: Tajara can spit out hairballs, which make other vomit when held. + + - [color=#1e90ff]Claws[/color]: Tajara unarmed attacks deal Slash damage instead of Blunt. + + - [color=#1e90ff]Reflexes[/color]: Tajara take less damage from high speed impacts. + + - [color=#1e90ff]Small Body[/color]: Tajara can fit in duffelbags. + + - [color=#1e90ff]Night Vision[/color]: Tajara can see in darkness. + + - [color=#1e90ff]Light Step[/color]: Thanks to their furred paw pads, tajara can walk silently without shoes + + - [color=#ffa500]Heat Intolerance[/color]: Tajara take [color=#ffa500]35% more Heat damage and burn more easily. [/color]They also [color=#ffa500]receive more damage from overheating[/color]. + + - [color=#ffa500]Light Build[/color]: Their small posture makes Tajara receive 15% more Brute damage, and they are lighter than humans. + + - [color=#ffa500]Weak Body[/color]: Tajara receive 15% more stamina damage. + + - [color=#ffa500]Sensitive Eyes[/color]: Tajara receive more damage from flashes. + + - [color=#ffa500]Fast Metabolism[/color]: Tajara need more food to sustain themselves. + + + + diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/equipped-HAND.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/equipped-HAND.png new file mode 100644 index 0000000000..9dc8e63a73 Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/equipped-HAND.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/icon.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/icon.png new file mode 100644 index 0000000000..1906b6b595 Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-left.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-left.png new file mode 100644 index 0000000000..2016841f04 Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-right.png b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-right.png new file mode 100644 index 0000000000..7bf0e1e75a Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json new file mode 100644 index 0000000000..e28954bcef --- /dev/null +++ b/Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Inhand and equipped taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e and modified by Flareguy for Space Station 14 and modified by Skubman | Icon taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c77c50ae3d19e763c60c44e75c7bf9d61e333875", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HAND", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..873fa47b2b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon-flash.png new file mode 100644 index 0000000000..edc62605ae Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon.png new file mode 100644 index 0000000000..982f408102 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json new file mode 100644 index 0000000000..21fd8d52aa --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "visor-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/visor-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/visor-equipped-HELMET.png new file mode 100644 index 0000000000..6c86bc9ecb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ancientvoid.rsi/visor-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..6c3e99f111 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/equipped-HELMET.png differ 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 0000000000..3580b91f59 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 0000000000..1abcea97c4 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..2988ab5d96 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/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 0000000000..3580b91f59 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 0000000000..4e39d2d54b 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 0000000000..efe0ef824e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/captain.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..b337689898 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/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 0000000000..3580b91f59 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 0000000000..e7a4d554b2 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..baf8c4a5ed Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/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 0000000000..3580b91f59 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 0000000000..2644d0774c 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/ce.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/centcom_agent.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..43ced855d8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon-flash.png new file mode 100644 index 0000000000..3580b91f59 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon.png new file mode 100644 index 0000000000..ebf672af7a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json new file mode 100644 index 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..1786d88729 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon-flash.png new file mode 100644 index 0000000000..3580b91f59 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon.png new file mode 100644 index 0000000000..6f7c4bdc54 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/meta.json new file mode 100644 index 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..ff26b7a61c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon-flash.png new file mode 100644 index 0000000000..3580b91f59 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon.png new file mode 100644 index 0000000000..2d8f37ab00 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json new file mode 100644 index 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..51e2292e5f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/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 0000000000..3580b91f59 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 0000000000..216c812a23 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..3c845ae012 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/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 0000000000..3580b91f59 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 0000000000..17b1b704af 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..bbe11f6c75 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/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 0000000000..a59d97aca6 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 0000000000..f5ad4ede17 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/clown.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..ba076ac700 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..3a6e85f8a9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/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 0000000000..3580b91f59 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 0000000000..0dd662f8b1 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/coroner.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..1ed81414a2 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/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 0000000000..3580b91f59 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 0000000000..b2f56d6003 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/custom.rsi/accent-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-equipped-HELMET.png new file mode 100644 index 0000000000..f89fa545ab Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-icon.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-icon.png new file mode 100644 index 0000000000..c596f99210 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-left.png new file mode 100644 index 0000000000..dc1f29bb64 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-right.png new file mode 100644 index 0000000000..c480d547c1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/accent-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..cd9f533851 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon-flash.png new file mode 100644 index 0000000000..3580b91f59 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon.png new file mode 100644 index 0000000000..3340f25bf7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-left.png new file mode 100644 index 0000000000..a3075b2ec6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-right.png new file mode 100644 index 0000000000..1875428f9e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json new file mode 100644 index 0000000000..4d255a09c2 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/meta.json @@ -0,0 +1,101 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "accent-icon" + }, + { + "name": "accent-equipped-HELMET", + "directions": 4 + }, + { + "name": "accent-inhand-left", + "directions": 4 + }, + { + "name": "accent-inhand-right", + "directions": 4 + }, + { + "name": "midaccent-icon" + }, + { + "name": "midaccent-equipped-HELMET", + "directions": 4 + }, + { + "name": "midaccent-inhand-left", + "directions": 4 + }, + { + "name": "midaccent-inhand-right", + "directions": 4 + }, + { + "name": "sideaccent-icon" + }, + { + "name": "sideaccent-equipped-HELMET", + "directions": 4 + }, + { + "name": "sideaccent-inhand-left", + "directions": 4 + }, + { + "name": "sideaccent-inhand-right", + "directions": 4 + }, + { + "name": "visor-icon" + }, + { + "name": "visor-equipped-HELMET", + "directions": 4 + }, + { + "name": "visor-inhand-left", + "directions": 4 + }, + { + "name": "visor-inhand-right", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-inhand-left", + "directions": 4 + }, + { + "name": "on-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-equipped-HELMET.png new file mode 100644 index 0000000000..b771b180ec Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-icon.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-icon.png new file mode 100644 index 0000000000..47539bdc2d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-left.png new file mode 100644 index 0000000000..5b3c26d83f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-right.png new file mode 100644 index 0000000000..6b115e0761 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/midaccent-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-left.png new file mode 100644 index 0000000000..4a8eb60ec9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-right.png new file mode 100644 index 0000000000..873df838b6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/on-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-equipped-HELMET.png new file mode 100644 index 0000000000..82667eae95 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-icon.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-icon.png new file mode 100644 index 0000000000..9bd507ef72 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-left.png new file mode 100644 index 0000000000..92cedcaf60 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-right.png new file mode 100644 index 0000000000..5e1ba883a2 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/sideaccent-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-equipped-HELMET.png new file mode 100644 index 0000000000..24d3d7be89 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-icon.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-icon.png new file mode 100644 index 0000000000..57ce267b03 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-left.png new file mode 100644 index 0000000000..f6588ba800 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-right.png new file mode 100644 index 0000000000..907076897a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/custom.rsi/visor-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..5c947d4bbd Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/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 0000000000..3580b91f59 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 0000000000..a3eb92f19a 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/genetics.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..10a0987784 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon-flash.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon-flash.png new file mode 100644 index 0000000000..3580b91f59 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon-flash.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon.png new file mode 100644 index 0000000000..8677f71e46 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json new file mode 100644 index 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..9ed1e3eb79 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/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 0000000000..3580b91f59 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 0000000000..fe9eeb3188 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hop.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..1d55bd5270 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/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 0000000000..3580b91f59 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 0000000000..9c39ef411c 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hos.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..350de2ebc7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/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 0000000000..3580b91f59 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 0000000000..2a4b193b2b 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/janitor.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..4a05589b5f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/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 0000000000..3580b91f59 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 0000000000..0236e6542f 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/medical.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..f826d404a9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/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 0000000000..3580b91f59 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 0000000000..b0461d1493 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/medical.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..06e5cb09fb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/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 0000000000..f3ccec3bf6 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 0000000000..f1b689db8c 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/mime.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..2ea6a40eac 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/paramedic.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..ee7ed60958 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/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 0000000000..3580b91f59 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 0000000000..0c95650ed0 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..59f1e4f8ea Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/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 0000000000..3580b91f59 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 0000000000..474e3fba57 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/inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-left.png new file mode 100644 index 0000000000..d5202b8068 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-right.png new file mode 100644 index 0000000000..7446843492 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/inhand-right.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 0000000000..62bc618b9f --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "on-inhand-left", + "directions": 4 + }, + { + "name": "on-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/plain.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-left.png new file mode 100644 index 0000000000..4a8eb60ec9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-right.png new file mode 100644 index 0000000000..873df838b6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/plain.rsi/on-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..5af3beb5a4 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/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 0000000000..3580b91f59 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 0000000000..2d5d6c394a 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/rd.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..8ed2259d5f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/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 0000000000..3580b91f59 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 0000000000..4a39bcf7c6 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..a826d42142 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/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 0000000000..698c4ff6e4 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 0000000000..ce4c2d0022 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..b28f42716d 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..63154766a7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/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 0000000000..3580b91f59 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 0000000000..7e08f6d19d 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/tacticool.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..bb70ade705 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/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 0000000000..3580b91f59 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 0000000000..13dc3f4679 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 0000000000..86ae56f226 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..db8cc9f835 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/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 0000000000..3580b91f59 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 0000000000..2cba69dd88 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/virology.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..c18f183d46 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/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 0000000000..3580b91f59 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 0000000000..dae944c5ef 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 0000000000..83a0683d0e --- /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 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/warden.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..e73142d46f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/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 0000000000..3580b91f59 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 0000000000..3c2f355d66 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 0000000000..83a0683d0e --- /dev/null +++ b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Envirohelms/white.rsi/on-equipped-HELMET.png new file mode 100644 index 0000000000..adfa03a3d1 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/ancientvoid.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..16d3ec02c5 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/icon.png new file mode 100644 index 0000000000..9277423151 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.rsi/meta.json new file mode 100644 index 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/ancientvoid.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/atmos.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..43ddf4a578 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 0000000000..08a25d0bce 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 0000000000..7881ed5501 --- /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/blueshield_officer.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..26258a7006 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/icon.png new file mode 100644 index 0000000000..2cb5f54b77 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/meta.json new file mode 100644 index 0000000000..a730d09891 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/blueshield_officer.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Paradise Station at commit https://github.com/ParadiseSS13/Paradise/commit/b55bef2ed28b8bde30883fb14311b221ab0dc977 and modified by Skubman", + "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 0000000000..9332939422 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 0000000000..594ba5a9e4 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 0000000000..e669a6403e --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef and modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..d31317d5e5 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 0000000000..465c819c20 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 0000000000..7881ed5501 --- /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 0000000000..d71154821f 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 0000000000..759670ef07 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 0000000000..7881ed5501 --- /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/centcom_agent.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..c74fe2b800 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/icon.png new file mode 100644 index 0000000000..6a9940326d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/meta.json new file mode 100644 index 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_agent.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..c57ecfe5eb Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/icon.png new file mode 100644 index 0000000000..4a7e1f31bd Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json new file mode 100644 index 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_officer.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..2b169155c9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/icon.png new file mode 100644 index 0000000000..c8f010a368 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json new file mode 100644 index 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/centcom_official.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..6cae82165f 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 0000000000..7f6c7ee109 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 0000000000..7881ed5501 --- /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 0000000000..7810f37d2c 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 0000000000..c9d6114ea7 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 0000000000..7881ed5501 --- /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 0000000000..b9c4c0327e 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 0000000000..8e0dad6a3b 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 0000000000..7881ed5501 --- /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 0000000000..5b1d0f39d5 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 0000000000..f28976a3da 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 0000000000..7881ed5501 --- /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 0000000000..4e8be768c7 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 0000000000..7eb85c8dd2 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 0000000000..7881ed5501 --- /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/coroner.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..c48495a6d5 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 0000000000..dc5dc934c5 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 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..89e252f7d4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-icon.png new file mode 100644 index 0000000000..21d362fa6a Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-left.png new file mode 100644 index 0000000000..2ff08cc237 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-right.png new file mode 100644 index 0000000000..9e11e06718 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..eb13f68b9e Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-icon.png new file mode 100644 index 0000000000..8b5586b03f Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-left.png new file mode 100644 index 0000000000..53e2eaa867 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-right.png new file mode 100644 index 0000000000..c3aadd5b86 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..e1b24b41cc Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-icon.png new file mode 100644 index 0000000000..bbc3d21aae Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-left.png new file mode 100644 index 0000000000..bd8a0e7cad Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-right.png new file mode 100644 index 0000000000..b000ed7ec7 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent2_chestonly-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..93bee36bd5 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-icon.png new file mode 100644 index 0000000000..384286f395 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-left.png new file mode 100644 index 0000000000..0c0017dde5 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-right.png new file mode 100644 index 0000000000..c7b68db12c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..fff2774616 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-icon.png new file mode 100644 index 0000000000..2cb85e632f Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-left.png new file mode 100644 index 0000000000..e1975815e2 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-right.png new file mode 100644 index 0000000000..fea004b30b Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accent3_chestonly-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..3fa4884328 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt_noback-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt_noback-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..01a3666be1 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentalt_noback-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..a7a23ec3c9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-icon.png new file mode 100644 index 0000000000..4b3249fe20 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-left.png new file mode 100644 index 0000000000..987cbdb733 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-right.png new file mode 100644 index 0000000000..ff81d2d0b3 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accenthighlight-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..64b70260c7 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-icon.png new file mode 100644 index 0000000000..9a49ad2d09 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-left.png new file mode 100644 index 0000000000..afdd7622c7 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-right.png new file mode 100644 index 0000000000..a390285775 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/accentprisoner-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/backaccent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/backaccent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..e6776137d5 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/backaccent-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..7351de7e21 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-icon.png new file mode 100644 index 0000000000..473510a86f Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-left.png new file mode 100644 index 0000000000..a5ece79a5c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-right.png new file mode 100644 index 0000000000..363fceada4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/belt-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..fc98cadb90 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-icon.png new file mode 100644 index 0000000000..f70ea45de9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-left.png new file mode 100644 index 0000000000..a95ce71374 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-right.png new file mode 100644 index 0000000000..e091c45504 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..c50769249b Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-icon.png new file mode 100644 index 0000000000..0091012bb9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-left.png new file mode 100644 index 0000000000..83664d1486 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-right.png new file mode 100644 index 0000000000..fe8b1bf970 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/beltbuckle_small-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..8060fdd544 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-icon.png new file mode 100644 index 0000000000..f09673433c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-left.png new file mode 100644 index 0000000000..aa90e95dc5 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-right.png new file mode 100644 index 0000000000..9be9ecbf60 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/buttons-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..7b84f544da Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-icon.png new file mode 100644 index 0000000000..5cb2a361c0 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-left.png new file mode 100644 index 0000000000..c8461c2d92 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-right.png new file mode 100644 index 0000000000..226a816774 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..026af9dc7e Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-icon.png new file mode 100644 index 0000000000..090bf7274d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-left.png new file mode 100644 index 0000000000..29c74bdf83 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-right.png new file mode 100644 index 0000000000..c45549adf3 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/clip_right-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..e787a2c9f6 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-icon.png new file mode 100644 index 0000000000..ad3624500d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-left.png new file mode 100644 index 0000000000..ae6c4e7861 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-right.png new file mode 100644 index 0000000000..104a6b2a06 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/corneraccent-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..12b2750942 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs_upper-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs_upper-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..9567633b9b Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/cuffs_upper-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..69ff51e103 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..4cec655e64 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-icon.png new file mode 100644 index 0000000000..95251ce244 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-left.png new file mode 100644 index 0000000000..a4fcf07fb9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-right.png new file mode 100644 index 0000000000..32f62714ce Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/heart-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/icon.png new file mode 100644 index 0000000000..a42baf390d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-left.png new file mode 100644 index 0000000000..1f2a705a58 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-right.png new file mode 100644 index 0000000000..41e57d6149 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..33ff060a92 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..d25487ab7c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_bottom-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_bottom-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..c066a49092 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_bottom-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_top-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_top-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..f9bbed4068 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/loweraccent2_top-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/meta.json new file mode 100644 index 0000000000..576d5c219b --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/meta.json @@ -0,0 +1,374 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "accent-icon" + }, + { + "name": "accent-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accent-inhand-left", + "directions": 4 + }, + { + "name": "accent-inhand-right", + "directions": 4 + }, + { + "name": "accent2-icon" + }, + { + "name": "accent2-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accent2-inhand-left", + "directions": 4 + }, + { + "name": "accent2-inhand-right", + "directions": 4 + }, + { + "name": "accent2_chestonly-icon" + }, + { + "name": "accent2_chestonly-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accent2_chestonly-inhand-left", + "directions": 4 + }, + { + "name": "accent2_chestonly-inhand-right", + "directions": 4 + }, + { + "name": "accent3-icon" + }, + { + "name": "accent3-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accent3-inhand-left", + "directions": 4 + }, + { + "name": "accent3-inhand-right", + "directions": 4 + }, + { + "name": "accent3_chestonly-icon" + }, + { + "name": "accent3_chestonly-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accent3_chestonly-inhand-left", + "directions": 4 + }, + { + "name": "accent3_chestonly-inhand-right", + "directions": 4 + }, + { + "name": "accentprisoner-icon" + }, + { + "name": "accentprisoner-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accentprisoner-inhand-left", + "directions": 4 + }, + { + "name": "accentprisoner-inhand-right", + "directions": 4 + }, + { + "name": "accenthighlight-icon" + }, + { + "name": "accenthighlight-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accenthighlight-inhand-left", + "directions": 4 + }, + { + "name": "accenthighlight-inhand-right", + "directions": 4 + }, + { + "name": "accentalt-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "accentalt_noback-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "backaccent-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "loweraccent-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "loweraccent2-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "loweraccent2_bottom-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "loweraccent2_top-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "pin-icon" + }, + { + "name": "pin-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "pin-inhand-left", + "directions": 4 + }, + { + "name": "pin-inhand-right", + "directions": 4 + }, + { + "name": "buttons-icon" + }, + { + "name": "buttons-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "buttons-inhand-left", + "directions": 4 + }, + { + "name": "buttons-inhand-right", + "directions": 4 + }, + { + "name": "plaintop-icon" + }, + { + "name": "plaintop-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "plaintop-inhand-left", + "directions": 4 + }, + { + "name": "plaintop-inhand-right", + "directions": 4 + }, + { + "name": "tie-icon" + }, + { + "name": "tie-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "tie-inhand-left", + "directions": 4 + }, + { + "name": "tie-inhand-right", + "directions": 4 + }, + { + "name": "tieclip-icon" + }, + { + "name": "tieclip-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "tieclip-inhand-left", + "directions": 4 + }, + { + "name": "tieclip-inhand-right", + "directions": 4 + }, + { + "name": "clip-icon" + }, + { + "name": "clip-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "clip-inhand-left", + "directions": 4 + }, + { + "name": "clip-inhand-right", + "directions": 4 + }, + { + "name": "clip_right-icon" + }, + { + "name": "clip_right-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "clip_right-inhand-left", + "directions": 4 + }, + { + "name": "clip_right-inhand-right", + "directions": 4 + }, + { + "name": "heart-icon" + }, + { + "name": "heart-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "heart-inhand-left", + "directions": 4 + }, + { + "name": "heart-inhand-right", + "directions": 4 + }, + { + "name": "corneraccent-icon" + }, + { + "name": "corneraccent-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "corneraccent-inhand-left", + "directions": 4 + }, + { + "name": "corneraccent-inhand-right", + "directions": 4 + }, + { + "name": "pants-icon" + }, + { + "name": "pants-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "pants-inhand-left", + "directions": 4 + }, + { + "name": "pants-inhand-right", + "directions": 4 + }, + { + "name": "belt-icon" + }, + { + "name": "belt-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "belt-inhand-left", + "directions": 4 + }, + { + "name": "belt-inhand-right", + "directions": 4 + }, + { + "name": "beltbuckle-icon" + }, + { + "name": "beltbuckle-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "beltbuckle-inhand-left", + "directions": 4 + }, + { + "name": "beltbuckle-inhand-right", + "directions": 4 + }, + { + "name": "beltbuckle_small-icon" + }, + { + "name": "beltbuckle_small-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "beltbuckle_small-inhand-left", + "directions": 4 + }, + { + "name": "beltbuckle_small-inhand-right", + "directions": 4 + }, + { + "name": "cuffs-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "cuffs_upper-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "shoes-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "shoesdark-equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "soles-equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..9c11f765ef Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-icon.png new file mode 100644 index 0000000000..9afac6d69d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-left.png new file mode 100644 index 0000000000..b654f960f4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-right.png new file mode 100644 index 0000000000..92749caa93 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pants-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..693cfd5087 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-icon.png new file mode 100644 index 0000000000..117d83e93e Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-left.png new file mode 100644 index 0000000000..72e6a885cb Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-right.png new file mode 100644 index 0000000000..f8f8ae4f79 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/pin-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..0c0ee90b94 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-icon.png new file mode 100644 index 0000000000..bbc2d4dc2c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-left.png new file mode 100644 index 0000000000..c468d7db6b Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-right.png new file mode 100644 index 0000000000..b7e5ec47d6 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/plaintop-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoes-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoes-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..9e95afa556 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoes-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoesdark-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoesdark-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..d24fb9e4e7 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/shoesdark-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/soles-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/soles-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..8e08e9402d Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/soles-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..3dc73d2aa0 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-icon.png new file mode 100644 index 0000000000..ff5be6f5ff Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-left.png new file mode 100644 index 0000000000..704f785120 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-right.png new file mode 100644 index 0000000000..a60a89348c Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tie-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..cb628a3e59 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-icon.png new file mode 100644 index 0000000000..4591a086b4 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-left.png new file mode 100644 index 0000000000..3c74066875 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-right.png new file mode 100644 index 0000000000..88e26c3ac1 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/custom.rsi/tieclip-inhand-right.png differ 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 0000000000..2a89400603 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 0000000000..144ee7b639 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 0000000000..7881ed5501 --- /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 0000000000..7d9aa8981b 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 0000000000..7b4a2760e2 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 0000000000..7881ed5501 --- /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/genetics.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..1db56bb0c6 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/icon.png new file mode 100644 index 0000000000..a6bf5e7704 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json new file mode 100644 index 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/genetics.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/hop.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..6599aa9df8 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 0000000000..897b70669b 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 0000000000..7881ed5501 --- /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 0000000000..51a9fdac33 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 0000000000..b0a9644989 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 0000000000..7881ed5501 --- /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 0000000000..8d6ac5e7fa 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 0000000000..e7bf4945f9 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 0000000000..7881ed5501 --- /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/janitor.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..ad1c6cbbc1 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 0000000000..18a829b655 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 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/janitor.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/medical.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..cdac280607 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 0000000000..933083422d 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 0000000000..7881ed5501 --- /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 0000000000..37c4441170 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 0000000000..eb0d90d7c6 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 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/mime.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/paramedic.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..711f6fe61b 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 0000000000..4ef99e18f5 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 0000000000..7881ed5501 --- /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 0000000000..f9a9cf1854 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 0000000000..7cbe2a556d 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/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-left.png new file mode 100644 index 0000000000..5ca9cdac9a Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-right.png new file mode 100644 index 0000000000..6379627118 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/inhand-right.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 0000000000..e46e835779 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/plain.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "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 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "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 0000000000..53028a197d 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 0000000000..3a64566880 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 0000000000..d4c04394ef --- /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 and modified by Skubman", + "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 0000000000..d3ba777080 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 0000000000..8e38f72012 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 0000000000..e669a6403e --- /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 and modified by Skubman for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/salvage.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..726b862a56 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 0000000000..8775c1a3e0 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 0000000000..7881ed5501 --- /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 0000000000..7199bf41fb 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 0000000000..4d3dcb91ea 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 0000000000..7881ed5501 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Envirosuits/scientist.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/a3849062b8756e3c2176fa0b9bd80aef9facc3ef", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Envirosuits/tacticool.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..9caeea98ab 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 0000000000..6370d1483d 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 0000000000..7881ed5501 --- /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 0000000000..7f5881cd57 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 0000000000..f2a1071bc5 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 0000000000..7881ed5501 --- /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 0000000000..5482b7a4dd 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 0000000000..d48c2be0fa 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 0000000000..7881ed5501 --- /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/DeltaV/Effects/speech.rsi/chitinid0.png b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid0.png new file mode 100644 index 0000000000..dc37e2d63b Binary files /dev/null and b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid0.png differ diff --git a/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid1.png b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid1.png new file mode 100644 index 0000000000..a8adc694b0 Binary files /dev/null and b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid1.png differ diff --git a/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid2.png b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid2.png new file mode 100644 index 0000000000..91bcf88fe5 Binary files /dev/null and b/Resources/Textures/DeltaV/Effects/speech.rsi/chitinid2.png differ diff --git a/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json b/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json index b630e99de6..e621532251 100644 --- a/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json +++ b/Resources/Textures/DeltaV/Effects/speech.rsi/meta.json @@ -25,7 +25,10 @@ "name": "felinid2" }, { - "name": "rodentia0", + "name": "rodentia0" + }, + { + "name": "chitinid0", "delays": [ [ 0.2, @@ -40,6 +43,12 @@ }, { "name": "rodentia2" + }, + { + "name": "chitinid1" + }, + { + "name": "chitinid2" } ] } diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/bee.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/bee.png new file mode 100644 index 0000000000..3c5faa4aa2 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/bee.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/curly.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/curly.png new file mode 100644 index 0000000000..7d7dd45da0 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/curly.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/default.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/default.png new file mode 100644 index 0000000000..f3d291ebdc Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/default.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/firefly_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/firefly_primary.png new file mode 100644 index 0000000000..32aeb03d3c Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/firefly_primary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/firefly_secondary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/firefly_secondary.png new file mode 100644 index 0000000000..ce6864cb06 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/firefly_secondary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/gray.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/gray.png new file mode 100644 index 0000000000..e215684cf9 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/gray.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/long.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/long.png new file mode 100644 index 0000000000..9ff75a1010 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/long.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/meta.json new file mode 100644 index 0000000000..52bc240973 --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Concepts by: https://github.com/ElusiveCoin", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "default", + "directions": 4 + }, + { + "name": "curly", + "directions": 4 + }, + { + "name": "gray", + "directions": 4 + }, + { + "name": "slick", + "directions": 4 + }, + { + "name": "short", + "directions": 4 + }, + { + "name": "long", + "directions": 4 + }, + { + "name": "bee", + "directions": 4 + }, + { + "name": "firefly_primary", + "directions": 4 + }, + { + "name": "firefly_secondary", + "directions": 4 + }, + { + "name": "radar", + "directions": 4 + }, + { + "name": "speed", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/radar.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/radar.png new file mode 100644 index 0000000000..41ec7d9923 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/radar.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/short.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/short.png new file mode 100644 index 0000000000..1dde872b78 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/short.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/slick.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/slick.png new file mode 100644 index 0000000000..f1e856667c Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/slick.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/speed.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/speed.png new file mode 100644 index 0000000000..f3dda4c687 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_antennas.rsi/speed.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_chest.png new file mode 100644 index 0000000000..8981bd797e Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_chest.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_head.png new file mode 100644 index 0000000000..98c698e905 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_head.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_arm.png new file mode 100644 index 0000000000..14709b0c31 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_leg.png new file mode 100644 index 0000000000..5be58a196c Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_l_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_arm.png new file mode 100644 index 0000000000..7a83b33619 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_leg.png new file mode 100644 index 0000000000..0ebd96c5dd Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/charred_r_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/meta.json new file mode 100644 index 0000000000..6667bbc2b3 --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/meta.json @@ -0,0 +1,143 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commits https://github.com/tgstation/tgstation/commit/b30e2934e7585bad901dd12a35d0635f1fc292c1 and https://github.com/tgstation/tgstation/commit/6b0af0febe578f47ae280781682ea7a3d77f508a, modified by https://github.com/MilenVolf, Charred further modified and new assets by https://github.com/ElusiveCoin", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "toxic_head", + "directions": 4 + }, + { + "name": "toxic_chest", + "directions": 4 + }, + { + "name": "toxic_r_arm", + "directions": 4 + }, + { + "name": "toxic_l_arm", + "directions": 4 + }, + { + "name": "toxic_r_leg", + "directions": 4 + }, + { + "name": "toxic_l_leg", + "directions": 4 + }, + { + "name": "charred_head", + "directions": 4 + }, + { + "name": "charred_chest", + "directions": 4 + }, + { + "name": "charred_r_arm", + "directions": 4 + }, + { + "name": "charred_l_arm", + "directions": 4 + }, + { + "name": "charred_r_leg", + "directions": 4 + }, + { + "name": "charred_l_leg", + "directions": 4 + }, + { + "name": "radiant_head", + "directions": 4 + }, + { + "name": "radiant_chest", + "directions": 4 + }, + { + "name": "radiant_r_arm", + "directions": 4 + }, + { + "name": "radiant_l_arm", + "directions": 4 + }, + { + "name": "radiant_r_leg", + "directions": 4 + }, + { + "name": "radiant_l_leg", + "directions": 4 + }, + { + "name": "plated_chest", + "directions": 4 + }, + { + "name": "plated_r_arm", + "directions": 4 + }, + { + "name": "plated_l_arm", + "directions": 4 + }, + { + "name": "stripes_head", + "directions": 4 + }, + { + "name": "stripes_chest", + "directions": 4 + }, + { + "name": "stripes_r_arm", + "directions": 4 + }, + { + "name": "stripes_l_arm", + "directions": 4 + }, + { + "name": "stripes_r_leg", + "directions": 4 + }, + { + "name": "stripes_l_leg", + "directions": 4 + }, + { + "name": "spotted_head", + "directions": 4 + }, + { + "name": "spotted_chest", + "directions": 4 + }, + { + "name": "spotted_r_arm", + "directions": 4 + }, + { + "name": "spotted_l_arm", + "directions": 4 + }, + { + "name": "spotted_r_leg", + "directions": 4 + }, + { + "name": "spotted_l_leg", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_chest.png new file mode 100644 index 0000000000..f32f5d317c Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_chest.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_l_arm.png new file mode 100644 index 0000000000..5e1061d931 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_r_arm.png new file mode 100644 index 0000000000..b24897986d Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/plated_r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_chest.png new file mode 100644 index 0000000000..214caa4c97 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_chest.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_head.png new file mode 100644 index 0000000000..5a19d26577 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_head.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_l_arm.png new file mode 100644 index 0000000000..272177404a Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_l_leg.png new file mode 100644 index 0000000000..16f0616a24 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_l_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_arm.png new file mode 100644 index 0000000000..72dfcfde06 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_leg.png new file mode 100644 index 0000000000..9c4d8173e9 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/radiant_r_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_chest.png new file mode 100644 index 0000000000..90a8539d73 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_chest.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_head.png new file mode 100644 index 0000000000..c7301de381 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_head.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_l_arm.png new file mode 100644 index 0000000000..4c6f3c1ce4 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_l_leg.png new file mode 100644 index 0000000000..f78e45889f Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_l_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_arm.png new file mode 100644 index 0000000000..a83a50ec97 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_leg.png new file mode 100644 index 0000000000..27e6854260 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/spotted_r_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_chest.png new file mode 100644 index 0000000000..29b41970dc Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_chest.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_head.png new file mode 100644 index 0000000000..8bcda1cbe6 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_head.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_l_arm.png new file mode 100644 index 0000000000..521352f9d4 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_l_leg.png new file mode 100644 index 0000000000..6b19d5237f Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_l_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_arm.png new file mode 100644 index 0000000000..51b1f0d370 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_leg.png new file mode 100644 index 0000000000..e149af3795 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/stripes_r_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_chest.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_chest.png new file mode 100644 index 0000000000..ad53da7165 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_chest.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_head.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_head.png new file mode 100644 index 0000000000..d3400bf0e1 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_head.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_arm.png new file mode 100644 index 0000000000..f74ffaae9d Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_leg.png new file mode 100644 index 0000000000..fbcd1237d7 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_l_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_arm.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_arm.png new file mode 100644 index 0000000000..31ef8726fc Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_leg.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_leg.png new file mode 100644 index 0000000000..bd772bfc0b Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_parts.rsi/toxic_r_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/bee_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/bee_primary.png new file mode 100644 index 0000000000..d8f46c8e70 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/bee_primary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/bee_secondary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/bee_secondary.png new file mode 100644 index 0000000000..82a14ba3e5 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/bee_secondary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/default.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/default.png new file mode 100644 index 0000000000..c01f5a4ba4 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/default.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/firefly_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/firefly_primary.png new file mode 100644 index 0000000000..1f74656812 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/firefly_primary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/firefly_secondary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/firefly_secondary.png new file mode 100644 index 0000000000..3386aa4583 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/firefly_secondary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_primary.png new file mode 100644 index 0000000000..d842859726 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_primary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_secondary.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_secondary.png new file mode 100644 index 0000000000..587a5a1f75 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/honeypot_secondary.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/meta.json new file mode 100644 index 0000000000..b7f59a8231 --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/meta.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Concepts by: https://github.com/ElusiveCoin", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "default", + "directions": 4 + }, + { + "name": "smooth", + "directions": 4 + }, + { + "name": "honeypot_primary", + "directions": 4 + }, + { + "name": "honeypot_secondary", + "directions": 4 + }, + { + "name": "stubby", + "directions": 4 + }, + { + "name": "bee_primary", + "directions": 4 + }, + { + "name": "bee_secondary", + "directions": 4 + }, + { + "name": "firefly_primary", + "directions": 4 + }, + { + "name": "firefly_secondary", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/smooth.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/smooth.png new file mode 100644 index 0000000000..bd0bbec36f Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/smooth.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/stubby.png b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/stubby.png new file mode 100644 index 0000000000..028676d9f4 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Chitinid/chitinid_wings.rsi/stubby.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/classic_long2.png b/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/classic_long2.png deleted file mode 100644 index 950bc1430b..0000000000 Binary files a/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/classic_long2.png and /dev/null differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/classic_long3.png b/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/classic_long3.png deleted file mode 100644 index bc7eb6ea06..0000000000 Binary files a/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/classic_long3.png and /dev/null differ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/meta.json index 387949d4b3..ca3709fda9 100644 --- a/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/meta.json +++ b/Resources/Textures/DeltaV/Mobs/Customization/hair.rsi/meta.json @@ -43,14 +43,6 @@ { "name":"classic_long", "directions": 4 - }, - { - "name":"classic_long2", - "directions": 4 - }, - { - "name":"classic_long3", - "directions": 4 } ] } diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/eyes.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/eyes.png new file mode 100644 index 0000000000..e35b5717d2 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/eyes.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/full.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/full.png new file mode 100644 index 0000000000..6d5e167c55 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/full.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_f.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_f.png new file mode 100644 index 0000000000..fe85b75345 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_f.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_m.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_m.png new file mode 100644 index 0000000000..c9b9cbb197 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/head_m.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_arm.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_arm.png new file mode 100644 index 0000000000..48c0a2ee06 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_foot.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_foot.png new file mode 100644 index 0000000000..02c9335b20 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_hand.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_hand.png new file mode 100644 index 0000000000..b02e2317be Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_leg.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_leg.png new file mode 100644 index 0000000000..54efa6db78 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/meta.json new file mode 100644 index 0000000000..ed5dfd5145 --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/meta.json @@ -0,0 +1,66 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/1d0eadcb126fc3581eed33490f4be2a88157af58, modified by https://github.com/PixelTheKermit", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_arm.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_arm.png new file mode 100644 index 0000000000..703756e5c4 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_foot.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_foot.png new file mode 100644 index 0000000000..e661076301 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_hand.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_hand.png new file mode 100644 index 0000000000..b9f02aa597 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_leg.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_leg.png new file mode 100644 index 0000000000..6f45ae1895 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_f.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_f.png new file mode 100644 index 0000000000..71d3466001 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_m.png b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_m.png new file mode 100644 index 0000000000..9f08874e16 Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Species/Chitinid/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite.png b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite.png new file mode 100644 index 0000000000..8983e82b36 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite.png differ diff --git a/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite_glow.png b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite_glow.png new file mode 100644 index 0000000000..5a77b238e8 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/chitzite_glow.png differ diff --git a/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/meta.json new file mode 100644 index 0000000000..e55e488f4d --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Specific/Species/chitinid.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Concepts by: https://github.com/ElusiveCoin", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "chitzite", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "chitzite_glow", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/Effects/speech.rsi/meta.json b/Resources/Textures/Effects/speech.rsi/meta.json index 1ec1219b0f..e3644f147b 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 0000000000..fb6cf1ad25 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 0000000000..4a3cb354ff 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 0000000000..9f86cb268c 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 0000000000..8695d90baf 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 0000000000..3943f59767 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 0000000000..64bb33c713 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/skeleton2.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png new file mode 100644 index 0000000000..5145216bf3 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png new file mode 100644 index 0000000000..8b3c3fbe05 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand1.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand1.png new file mode 100644 index 0000000000..8797bc9b52 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand1.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand2.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand2.png new file mode 100644 index 0000000000..7d217388d0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand2.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand3.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand3.png new file mode 100644 index 0000000000..646ec3241b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand3.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand4.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand4.png new file mode 100644 index 0000000000..a10b441e1c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand4.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand5.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand5.png new file mode 100644 index 0000000000..b348eef2ca Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand5.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_joker.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_joker.png new file mode 100644 index 0000000000..dcb21b4f8c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_joker.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_empty.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_empty.png new file mode 100644 index 0000000000..666e33a6ef Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_empty.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_full.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_full.png new file mode 100644 index 0000000000..e475aea4f2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_full.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_half.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_half.png new file mode 100644 index 0000000000..6121837e31 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_half.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_low.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_low.png new file mode 100644 index 0000000000..812fa134de Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_low.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_empty.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_empty.png new file mode 100644 index 0000000000..3eab35d483 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_empty.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_full.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_full.png new file mode 100644 index 0000000000..b68e72fad5 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_full.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_half.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_half.png new file mode 100644 index 0000000000..aaf8d07645 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_half.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_low.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_low.png new file mode 100644 index 0000000000..22f8db3c70 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_low.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_empty.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_empty.png new file mode 100644 index 0000000000..df0f80a270 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_empty.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_full.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_full.png new file mode 100644 index 0000000000..fd54e580a4 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_full.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_half.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_half.png new file mode 100644 index 0000000000..45e53d99e0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_half.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_low.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_low.png new file mode 100644 index 0000000000..364885508c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_low.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/meta.json b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/meta.json new file mode 100644 index 0000000000..b5035a33bf --- /dev/null +++ b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/meta.json @@ -0,0 +1,614 @@ +{ + "version": 1, + "copyright": "Cards, Decks and Hands Sprites were originally from Paradise Station (https://github.com/ParadiseSS13/Paradise) and modified by VictorJob. Boxes are from VictorJob.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "black_hand1" + }, + { + "name": "black_hand2" + }, + { + "name": "black_hand3" + }, + { + "name": "black_hand4" + }, + { + "name": "black_hand5" + }, + { + "name": "deck_black_empty" + }, + { + "name": "deck_black_full" + }, + { + "name": "deck_black_half" + }, + { + "name": "deck_black_low" + }, + { + "name": "deck_nanotrasen_empty" + }, + { + "name": "deck_nanotrasen_full" + }, + { + "name": "deck_nanotrasen_half" + }, + { + "name": "deck_nanotrasen_low" + }, + { + "name": "deck_syndicate_empty" + }, + { + "name": "deck_syndicate_full" + }, + { + "name": "deck_syndicate_half" + }, + { + "name": "deck_syndicate_low" + }, + { + "name": "nanotrasen_hand1" + }, + { + "name": "nanotrasen_hand2" + }, + { + "name": "nanotrasen_hand3" + }, + { + "name": "nanotrasen_hand4" + }, + { + "name": "nanotrasen_hand5" + }, + { + "name": "sc_10_of_Clubs_black" + }, + { + "name": "sc_10_of_Clubs_nanotrasen" + }, + { + "name": "sc_10_of_Clubs_syndicate" + }, + { + "name": "sc_10_of_Diamonds_black" + }, + { + "name": "sc_10_of_Diamonds_nanotrasen" + }, + { + "name": "sc_10_of_Diamonds_syndicate" + }, + { + "name": "sc_10_of_Hearts_black" + }, + { + "name": "sc_10_of_Hearts_nanotrasen" + }, + { + "name": "sc_10_of_Hearts_syndicate" + }, + { + "name": "sc_10_of_Spades_black" + }, + { + "name": "sc_10_of_Spades_nanotrasen" + }, + { + "name": "sc_10_of_Spades_syndicate" + }, + { + "name": "sc_2_of_Clubs_black" + }, + { + "name": "sc_2_of_Clubs_nanotrasen" + }, + { + "name": "sc_2_of_Clubs_syndicate" + }, + { + "name": "sc_2_of_Diamonds_black" + }, + { + "name": "sc_2_of_Diamonds_nanotrasen" + }, + { + "name": "sc_2_of_Diamonds_syndicate" + }, + { + "name": "sc_2_of_Hearts_black" + }, + { + "name": "sc_2_of_Hearts_nanotrasen" + }, + { + "name": "sc_2_of_Hearts_syndicate" + }, + { + "name": "sc_2_of_Spades_black" + }, + { + "name": "sc_2_of_Spades_nanotrasen" + }, + { + "name": "sc_2_of_Spades_syndicate" + }, + { + "name": "sc_3_of_Clubs_black" + }, + { + "name": "sc_3_of_Clubs_nanotrasen" + }, + { + "name": "sc_3_of_Clubs_syndicate" + }, + { + "name": "sc_3_of_Diamonds_black" + }, + { + "name": "sc_3_of_Diamonds_nanotrasen" + }, + { + "name": "sc_3_of_Diamonds_syndicate" + }, + { + "name": "sc_3_of_Hearts_black" + }, + { + "name": "sc_3_of_Hearts_nanotrasen" + }, + { + "name": "sc_3_of_Hearts_syndicate" + }, + { + "name": "sc_3_of_Spades_black" + }, + { + "name": "sc_3_of_Spades_nanotrasen" + }, + { + "name": "sc_3_of_Spades_syndicate" + }, + { + "name": "sc_4_of_Clubs_black" + }, + { + "name": "sc_4_of_Clubs_nanotrasen" + }, + { + "name": "sc_4_of_Clubs_syndicate" + }, + { + "name": "sc_4_of_Diamonds_black" + }, + { + "name": "sc_4_of_Diamonds_nanotrasen" + }, + { + "name": "sc_4_of_Diamonds_syndicate" + }, + { + "name": "sc_4_of_Hearts_black" + }, + { + "name": "sc_4_of_Hearts_nanotrasen" + }, + { + "name": "sc_4_of_Hearts_syndicate" + }, + { + "name": "sc_4_of_Spades_black" + }, + { + "name": "sc_4_of_Spades_nanotrasen" + }, + { + "name": "sc_4_of_Spades_syndicate" + }, + { + "name": "sc_5_of_Clubs_black" + }, + { + "name": "sc_5_of_Clubs_nanotrasen" + }, + { + "name": "sc_5_of_Clubs_syndicate" + }, + { + "name": "sc_5_of_Diamonds_black" + }, + { + "name": "sc_5_of_Diamonds_nanotrasen" + }, + { + "name": "sc_5_of_Diamonds_syndicate" + }, + { + "name": "sc_5_of_Hearts_black" + }, + { + "name": "sc_5_of_Hearts_nanotrasen" + }, + { + "name": "sc_5_of_Hearts_syndicate" + }, + { + "name": "sc_5_of_Spades_black" + }, + { + "name": "sc_5_of_Spades_nanotrasen" + }, + { + "name": "sc_5_of_Spades_syndicate" + }, + { + "name": "sc_6_of_Clubs_black" + }, + { + "name": "sc_6_of_Clubs_nanotrasen" + }, + { + "name": "sc_6_of_Clubs_syndicate" + }, + { + "name": "sc_6_of_Diamonds_black" + }, + { + "name": "sc_6_of_Diamonds_nanotrasen" + }, + { + "name": "sc_6_of_Diamonds_syndicate" + }, + { + "name": "sc_6_of_Hearts_black" + }, + { + "name": "sc_6_of_Hearts_nanotrasen" + }, + { + "name": "sc_6_of_Hearts_syndicate" + }, + { + "name": "sc_6_of_Spades_black" + }, + { + "name": "sc_6_of_Spades_nanotrasen" + }, + { + "name": "sc_6_of_Spades_syndicate" + }, + { + "name": "sc_7_of_Clubs_black" + }, + { + "name": "sc_7_of_Clubs_nanotrasen" + }, + { + "name": "sc_7_of_Clubs_syndicate" + }, + { + "name": "sc_7_of_Diamonds_black" + }, + { + "name": "sc_7_of_Diamonds_nanotrasen" + }, + { + "name": "sc_7_of_Diamonds_syndicate" + }, + { + "name": "sc_7_of_Hearts_black" + }, + { + "name": "sc_7_of_Hearts_nanotrasen" + }, + { + "name": "sc_7_of_Hearts_syndicate" + }, + { + "name": "sc_7_of_Spades_black" + }, + { + "name": "sc_7_of_Spades_nanotrasen" + }, + { + "name": "sc_7_of_Spades_syndicate" + }, + { + "name": "sc_8_of_Clubs_black" + }, + { + "name": "sc_8_of_Clubs_nanotrasen" + }, + { + "name": "sc_8_of_Clubs_syndicate" + }, + { + "name": "sc_8_of_Diamonds_black" + }, + { + "name": "sc_8_of_Diamonds_nanotrasen" + }, + { + "name": "sc_8_of_Diamonds_syndicate" + }, + { + "name": "sc_8_of_Hearts_black" + }, + { + "name": "sc_8_of_Hearts_nanotrasen" + }, + { + "name": "sc_8_of_Hearts_syndicate" + }, + { + "name": "sc_8_of_Spades_black" + }, + { + "name": "sc_8_of_Spades_nanotrasen" + }, + { + "name": "sc_8_of_Spades_syndicate" + }, + { + "name": "sc_9_of_Clubs_black" + }, + { + "name": "sc_9_of_Clubs_nanotrasen" + }, + { + "name": "sc_9_of_Clubs_syndicate" + }, + { + "name": "sc_9_of_Diamonds_black" + }, + { + "name": "sc_9_of_Diamonds_nanotrasen" + }, + { + "name": "sc_9_of_Diamonds_syndicate" + }, + { + "name": "sc_9_of_Hearts_black" + }, + { + "name": "sc_9_of_Hearts_nanotrasen" + }, + { + "name": "sc_9_of_Hearts_syndicate" + }, + { + "name": "sc_9_of_Spades_black" + }, + { + "name": "sc_9_of_Spades_nanotrasen" + }, + { + "name": "sc_9_of_Spades_syndicate" + }, + { + "name": "sc_Ace_of_Clubs_black" + }, + { + "name": "sc_Ace_of_Clubs_nanotrasen" + }, + { + "name": "sc_Ace_of_Clubs_syndicate" + }, + { + "name": "sc_Ace_of_Diamonds_black" + }, + { + "name": "sc_Ace_of_Diamonds_nanotrasen" + }, + { + "name": "sc_Ace_of_Diamonds_syndicate" + }, + { + "name": "sc_Ace_of_Hearts_black" + }, + { + "name": "sc_Ace_of_Hearts_nanotrasen" + }, + { + "name": "sc_Ace_of_Hearts_syndicate" + }, + { + "name": "sc_Ace_of_Spades_black" + }, + { + "name": "sc_Ace_of_Spades_nanotrasen" + }, + { + "name": "sc_Ace_of_Spades_syndicate" + }, + { + "name": "sc_Jack_of_Clubs_black" + }, + { + "name": "sc_Jack_of_Clubs_nanotrasen" + }, + { + "name": "sc_Jack_of_Clubs_syndicate" + }, + { + "name": "sc_Jack_of_Diamonds_black" + }, + { + "name": "sc_Jack_of_Diamonds_nanotrasen" + }, + { + "name": "sc_Jack_of_Diamonds_syndicate" + }, + { + "name": "sc_Jack_of_Hearts_black" + }, + { + "name": "sc_Jack_of_Hearts_nanotrasen" + }, + { + "name": "sc_Jack_of_Hearts_syndicate" + }, + { + "name": "sc_Jack_of_Spades_black" + }, + { + "name": "sc_Jack_of_Spades_nanotrasen" + }, + { + "name": "sc_Jack_of_Spades_syndicate" + }, + { + "name": "sc_King_of_Clubs_black" + }, + { + "name": "sc_King_of_Clubs_nanotrasen" + }, + { + "name": "sc_King_of_Clubs_syndicate" + }, + { + "name": "sc_King_of_Diamonds_black" + }, + { + "name": "sc_King_of_Diamonds_nanotrasen" + }, + { + "name": "sc_King_of_Diamonds_syndicate" + }, + { + "name": "sc_King_of_Hearts_black" + }, + { + "name": "sc_King_of_Hearts_nanotrasen" + }, + { + "name": "sc_King_of_Hearts_syndicate" + }, + { + "name": "sc_King_of_Spades_black" + }, + { + "name": "sc_King_of_Spades_nanotrasen" + }, + { + "name": "sc_King_of_Spades_syndicate" + }, + { + "name": "sc_Queen_of_Clubs_black" + }, + { + "name": "sc_Queen_of_Clubs_nanotrasen" + }, + { + "name": "sc_Queen_of_Clubs_syndicate" + }, + { + "name": "sc_Queen_of_Diamonds_black" + }, + { + "name": "sc_Queen_of_Diamonds_nanotrasen" + }, + { + "name": "sc_Queen_of_Diamonds_syndicate" + }, + { + "name": "sc_Queen_of_Hearts_black" + }, + { + "name": "sc_Queen_of_Hearts_nanotrasen" + }, + { + "name": "sc_Queen_of_Hearts_syndicate" + }, + { + "name": "sc_Queen_of_Spades_black" + }, + { + "name": "sc_Queen_of_Spades_nanotrasen" + }, + { + "name": "sc_Queen_of_Spades_syndicate" + }, + { + "name": "singlecard_down_black" + }, + { + "name": "singlecard_down_nanotrasen" + }, + { + "name": "singlecard_down_syndicate" + }, + { + "name": "syndicate_hand1" + }, + { + "name": "syndicate_hand2" + }, + { + "name": "syndicate_hand3" + }, + { + "name": "syndicate_hand4" + }, + { + "name": "syndicate_hand5" + }, + { + "name": "syndicate_joker", + "delays": [ + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "nanotrasen_joker", + "delays": [ + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "black_joker", + "delays": [ + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "syndicate_box" + }, + { + "name": "syndicate_box_open" + }, + { + "name": "black_box" + }, + { + "name": "black_box_open" + }, + { + "name": "nanotrasen_box" + }, + { + "name": "nanotrasen_box_open" + } + ] +} diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png new file mode 100644 index 0000000000..b80b2ccd71 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png new file mode 100644 index 0000000000..b86bfb1c2d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand1.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand1.png new file mode 100644 index 0000000000..2c532c3148 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand1.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand2.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand2.png new file mode 100644 index 0000000000..073d79718c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand2.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand3.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand3.png new file mode 100644 index 0000000000..1edfe42011 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand3.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand4.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand4.png new file mode 100644 index 0000000000..b788969f0f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand4.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand5.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand5.png new file mode 100644 index 0000000000..8836dc110b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand5.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_joker.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_joker.png new file mode 100644 index 0000000000..c7c5c9e061 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_joker.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_black.png new file mode 100644 index 0000000000..1c45b9f176 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..23f499fe81 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_syndicate.png new file mode 100644 index 0000000000..ae4d73c1a6 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_black.png new file mode 100644 index 0000000000..17a7cb99d2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..afad380277 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..100b213afc Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_black.png new file mode 100644 index 0000000000..0a179f78ee Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..eca6193c86 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_syndicate.png new file mode 100644 index 0000000000..b9a8467485 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_black.png new file mode 100644 index 0000000000..5fc75d0bce Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..01187507f6 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_syndicate.png new file mode 100644 index 0000000000..b4ac829a24 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_black.png new file mode 100644 index 0000000000..ba33f6b6a7 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..2067145ca0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_syndicate.png new file mode 100644 index 0000000000..1a057ecf79 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_black.png new file mode 100644 index 0000000000..e5e5afcbf3 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..f0ee45883d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..8f6549e8d3 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_black.png new file mode 100644 index 0000000000..b16deb15ae Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..af710d0711 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_syndicate.png new file mode 100644 index 0000000000..7f99d786cf Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_black.png new file mode 100644 index 0000000000..4ff15e4136 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..c8c01eb2d5 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_syndicate.png new file mode 100644 index 0000000000..bea976dc1b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_black.png new file mode 100644 index 0000000000..36fcb2d654 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..b64b1a6650 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_syndicate.png new file mode 100644 index 0000000000..feeefb7bcc Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_black.png new file mode 100644 index 0000000000..a100b46058 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..34e8feae6f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..1cf21d7723 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_black.png new file mode 100644 index 0000000000..50be1e655a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..20cf0ab74e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_syndicate.png new file mode 100644 index 0000000000..8d62899fe2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_black.png new file mode 100644 index 0000000000..d43b828a49 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..dd9ba51947 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_syndicate.png new file mode 100644 index 0000000000..6a51db9b7e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_black.png new file mode 100644 index 0000000000..67f25777ea Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..fb1266f391 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_syndicate.png new file mode 100644 index 0000000000..2b14b3777d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_black.png new file mode 100644 index 0000000000..653109f088 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..93d00aa65e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..1b63837065 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_black.png new file mode 100644 index 0000000000..30e3525c7e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..8d55ea1df9 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_syndicate.png new file mode 100644 index 0000000000..2fb582d569 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_black.png new file mode 100644 index 0000000000..cb82281e40 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..6bd780f250 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_syndicate.png new file mode 100644 index 0000000000..e6d0a439ee Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_black.png new file mode 100644 index 0000000000..61c3ad81f1 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..bf156aceb7 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_syndicate.png new file mode 100644 index 0000000000..8183e0defa Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_black.png new file mode 100644 index 0000000000..3dd9f7c95b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..66032a9ddd Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..eef3d3322d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_black.png new file mode 100644 index 0000000000..f1fa1b4f34 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..95d5ed72a2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_syndicate.png new file mode 100644 index 0000000000..b9a25077a1 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_black.png new file mode 100644 index 0000000000..48290bd26c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..5f557f6f11 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_syndicate.png new file mode 100644 index 0000000000..22f74e0535 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_black.png new file mode 100644 index 0000000000..7b4eb021bf Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..f94cc86077 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_syndicate.png new file mode 100644 index 0000000000..7b7905bd38 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_black.png new file mode 100644 index 0000000000..c44ddd87e6 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..970bef60e4 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..729c0def3f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_black.png new file mode 100644 index 0000000000..23697e2f9a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..e099806d23 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_syndicate.png new file mode 100644 index 0000000000..fabd88049a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_black.png new file mode 100644 index 0000000000..429b9c9dcf Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..7fc01c72b5 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_syndicate.png new file mode 100644 index 0000000000..b1021e01bc Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_black.png new file mode 100644 index 0000000000..444a83394e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..8d795e524e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_syndicate.png new file mode 100644 index 0000000000..6f786cca2a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_black.png new file mode 100644 index 0000000000..2308d43d4f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..efbe7248ec Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..7954748eab Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_black.png new file mode 100644 index 0000000000..e466ae7120 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..452bd851e4 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_syndicate.png new file mode 100644 index 0000000000..7beeded173 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_black.png new file mode 100644 index 0000000000..b72505fb87 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..c9923e0c89 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_syndicate.png new file mode 100644 index 0000000000..07f4d96f75 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_black.png new file mode 100644 index 0000000000..3367fa0d2e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..83eafee6c7 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_syndicate.png new file mode 100644 index 0000000000..76d30fab1a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_black.png new file mode 100644 index 0000000000..58a1130c4a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..6204855e3c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..e1b2aba48e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_black.png new file mode 100644 index 0000000000..2ce9b69f16 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..86b3c37cd0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_syndicate.png new file mode 100644 index 0000000000..1ad0852935 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_black.png new file mode 100644 index 0000000000..69154bbc3b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..587025d064 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_syndicate.png new file mode 100644 index 0000000000..ec1158a360 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_black.png new file mode 100644 index 0000000000..59686360af Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..9c88a1a275 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_syndicate.png new file mode 100644 index 0000000000..4ef37da096 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_black.png new file mode 100644 index 0000000000..7104afcd64 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..35aba68cfe Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..f6bad83825 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_black.png new file mode 100644 index 0000000000..43341bb1f8 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..389004ac91 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_syndicate.png new file mode 100644 index 0000000000..c3b7cc6142 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_black.png new file mode 100644 index 0000000000..ab89960ba0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..dbdff6554e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_syndicate.png new file mode 100644 index 0000000000..1a68d32b7c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_black.png new file mode 100644 index 0000000000..5c524bad64 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..4aab2f09d4 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_syndicate.png new file mode 100644 index 0000000000..47fe7da11d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_black.png new file mode 100644 index 0000000000..eff87dcb56 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..bc1f38c11e Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..f3bb83907b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_black.png new file mode 100644 index 0000000000..da4360e0e5 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..d5823c0fb7 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_syndicate.png new file mode 100644 index 0000000000..e17eaab8cf Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_black.png new file mode 100644 index 0000000000..4be96b088a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..11bea7d14b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_syndicate.png new file mode 100644 index 0000000000..94d9ce9f9d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_black.png new file mode 100644 index 0000000000..83e604757b Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..5aa923cba2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_syndicate.png new file mode 100644 index 0000000000..9b1a9ee48c Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_black.png new file mode 100644 index 0000000000..0e79933147 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..8b9d7cb53f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..c11bda0bf3 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_black.png new file mode 100644 index 0000000000..e9ab75342f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..bfeaa7d8d2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_syndicate.png new file mode 100644 index 0000000000..6b07df3520 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_black.png new file mode 100644 index 0000000000..df54477231 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..5fa983d5e1 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_syndicate.png new file mode 100644 index 0000000000..1da0de75ba Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_black.png new file mode 100644 index 0000000000..2ec99fc8dd Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..28488799a0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_syndicate.png new file mode 100644 index 0000000000..446c79e0b3 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_black.png new file mode 100644 index 0000000000..0c561befb9 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..b6af7d6218 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..b6f8e32cc2 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_black.png new file mode 100644 index 0000000000..fe38670021 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..c53d7fe5d0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_syndicate.png new file mode 100644 index 0000000000..7ebf4ce24f Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_black.png new file mode 100644 index 0000000000..6fc8241b11 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..adb48697f9 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_syndicate.png new file mode 100644 index 0000000000..5da2adf32a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_black.png new file mode 100644 index 0000000000..de3cf80db9 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_nanotrasen.png new file mode 100644 index 0000000000..c22d142b63 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_syndicate.png new file mode 100644 index 0000000000..e234569093 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_black.png new file mode 100644 index 0000000000..7a529a1915 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_nanotrasen.png new file mode 100644 index 0000000000..537de98404 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_syndicate.png new file mode 100644 index 0000000000..184f90b5de Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_black.png new file mode 100644 index 0000000000..1b190bd934 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_nanotrasen.png new file mode 100644 index 0000000000..74a5fe35c4 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_syndicate.png new file mode 100644 index 0000000000..30c4271fc9 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_black.png new file mode 100644 index 0000000000..40edb50caa Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_nanotrasen.png new file mode 100644 index 0000000000..613f4e81ca Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_syndicate.png new file mode 100644 index 0000000000..0106a46014 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_black.png new file mode 100644 index 0000000000..e634a9f8a0 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_black.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_nanotrasen.png new file mode 100644 index 0000000000..a219d05954 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_nanotrasen.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_syndicate.png new file mode 100644 index 0000000000..03b7154520 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_syndicate.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png new file mode 100644 index 0000000000..24d143e40d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png new file mode 100644 index 0000000000..a8edb3d5cd Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand1.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand1.png new file mode 100644 index 0000000000..a0c5cf0e13 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand1.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand2.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand2.png new file mode 100644 index 0000000000..88a445a27a Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand2.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand3.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand3.png new file mode 100644 index 0000000000..c30454d2b5 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand3.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand4.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand4.png new file mode 100644 index 0000000000..7a9eb2d197 Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand4.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand5.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand5.png new file mode 100644 index 0000000000..3dc0f71ddc Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand5.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_joker.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_joker.png new file mode 100644 index 0000000000..2e282d0c7d Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_joker.png differ diff --git a/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt b/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt index bd63121b98..6e9491704e 100644 --- a/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt +++ b/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt @@ -18,3 +18,6 @@ bubbles.svg by Lorc under CC BY 3.0 https://game-icons.net/1x1/lorc/bubbles.html oxygen.svg, collapse.svg by varttist (discord) + +extinguisher.svg by Smarticons under Attribution CC BY +https://www.svgrepo.com/svg/394932/extinguisher diff --git a/Resources/Textures/Interface/VerbIcons/extinguisher.svg b/Resources/Textures/Interface/VerbIcons/extinguisher.svg new file mode 100644 index 0000000000..2c15815430 --- /dev/null +++ b/Resources/Textures/Interface/VerbIcons/extinguisher.svg @@ -0,0 +1,7 @@ + + + + + + 869 + \ No newline at end of file diff --git a/Resources/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png b/Resources/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png new file mode 100644 index 0000000000..cea01249e7 Binary files /dev/null and b/Resources/Textures/Interface/VerbIcons/extinguisher.svg.192dpi.png differ diff --git a/Resources/Textures/Mobs/Customization/gauze.rsi/gauze_head.png b/Resources/Textures/Mobs/Customization/gauze.rsi/gauze_head.png new file mode 100644 index 0000000000..713ae3d4bc Binary files /dev/null and b/Resources/Textures/Mobs/Customization/gauze.rsi/gauze_head.png differ diff --git a/Resources/Textures/Mobs/Customization/gauze.rsi/meta.json b/Resources/Textures/Mobs/Customization/gauze.rsi/meta.json index 8d82ccab51..bd7d1ed4eb 100644 --- a/Resources/Textures/Mobs/Customization/gauze.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/gauze.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Gauze sprites by Github KittenColony / Discord kittencolony (297865728374210561)", + "copyright": "Gauze sprites by Github KittenColony / Discord kittencolony (297865728374210561), gauze_head by github:DreamlyJack(624946166152298517)", "size": { "x": 32, "y": 32 @@ -142,6 +142,10 @@ { "name": "gauze_moth_lowerleg_l", "directions": 4 + }, + { + "name": "gauze_head", + "directions": 4 } ] } \ No newline at end of file diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/classiclong2.png b/Resources/Textures/Mobs/Customization/human_hair.rsi/classiclong2.png new file mode 100644 index 0000000000..4bf29c6c3c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/human_hair.rsi/classiclong2.png differ diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/classiclong3.png b/Resources/Textures/Mobs/Customization/human_hair.rsi/classiclong3.png new file mode 100644 index 0000000000..6597c3a3d0 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/human_hair.rsi/classiclong3.png differ diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json b/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json index 97a4b9c80e..90b1d8ee34 100644 --- a/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json @@ -4,7 +4,7 @@ "x": 32, "y": 32 }, - "copyright": "Taken from https://github.com/tgstation/tgstation/blob/05ec94e46349c35e29ca91e5e97d0c88ae26ad44/icons/mob/species/human/human_face.dmi ,resprited by Alekshhh, a modified by potato1234x, uneven and tailed is drawn by Ubaser, doublebun_long by Emisse, longbundled and bob5 sprited by github:DreamlyJack(624946166152298517)", + "copyright": "Taken from https://github.com/tgstation/tgstation/blob/05ec94e46349c35e29ca91e5e97d0c88ae26ad44/icons/mob/species/human/human_face.dmi ,resprited by Alekshhh, a modified by potato1234x, uneven and tailed is drawn by Ubaser, doublebun_long by Emisse, longbundled and bob5 sprited by github:DreamlyJack(624946166152298517), pulato.png made by DreamlyJack for SS14", "license": "CC-BY-SA-3.0", "states": [ { @@ -571,6 +571,10 @@ "name": "protagonist", "directions": 4 }, + { + "name": "pulato", + "directions": 4 + }, { "name": "quiff", "directions": 4 @@ -786,6 +790,18 @@ { "name": "tailed", "directions": 4 + }, + { + "name": "classiclong2", + "directions": 4 + }, + { + "name": "classiclong3", + "directions": 4 + }, + { + "name": "shaped", + "directions": 4 } ] } diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/pulato.png b/Resources/Textures/Mobs/Customization/human_hair.rsi/pulato.png new file mode 100644 index 0000000000..7fd30556fe Binary files /dev/null and b/Resources/Textures/Mobs/Customization/human_hair.rsi/pulato.png differ diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/shaped.png b/Resources/Textures/Mobs/Customization/human_hair.rsi/shaped.png new file mode 100644 index 0000000000..f65d7cf444 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/human_hair.rsi/shaped.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 0000000000..28ce6d9e9e 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 0000000000..f0bed207c0 --- /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/Silicon/Bots/batonbot.rsi/batonbot.png b/Resources/Textures/Mobs/Silicon/Bots/batonbot.rsi/batonbot.png new file mode 100644 index 0000000000..b063645cd1 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/Bots/batonbot.rsi/batonbot.png differ diff --git a/Resources/Textures/Mobs/Silicon/Bots/batonbot.rsi/meta.json b/Resources/Textures/Mobs/Silicon/Bots/batonbot.rsi/meta.json new file mode 100644 index 0000000000..cb9bb6358b --- /dev/null +++ b/Resources/Textures/Mobs/Silicon/Bots/batonbot.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Tim Falken", + "states": [ + { + "name": "batonbot", + "delays": [ + [ + 0.5, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/disablerbot.png b/Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/disablerbot.png new file mode 100644 index 0000000000..6cebd2767f Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/disablerbot.png differ diff --git a/Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/meta.json b/Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/meta.json new file mode 100644 index 0000000000..11518dd793 --- /dev/null +++ b/Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Tim Falken", + "states": [ + { + "name": "disablerbot", + "delays": [ + [ + 0.5, + 0.2 + ] + ] + } + ] +} 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 0000000000..06fb867f80 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/eyes.png b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/eyes.png new file mode 100644 index 0000000000..b12859f247 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/eyes.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 0000000000..5205aa6474 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 0000000000..99c5641d5b 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 0000000000..bf117e4d55 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 0000000000..453945a519 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 0000000000..6982b741c2 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 0000000000..f5b37bb53f --- /dev/null +++ b/Resources/Textures/Mobs/Species/Plasmaman/organs.rsi/meta.json @@ -0,0 +1,65 @@ +{ + "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/eyes 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 + ] + ] + }, + { + "name": "eyes" + } + ] +} 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 0000000000..de6fbbe192 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 0000000000..fd246dbfda 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 0000000000..a00035648e 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 0000000000..1c861e1d9f 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 0000000000..1c861e1d9f 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 0000000000..785150c042 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 0000000000..06be449f0b 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 0000000000..6849df79df 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 0000000000..e80de98dff 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 0000000000..db0b13c920 --- /dev/null +++ b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/fc4de530ce208ad6d91ad85cf241b094e64b2ae5 and modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_arm.png b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/r_arm.png new file mode 100644 index 0000000000..c2e942d0d5 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 0000000000..1081917430 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 0000000000..bba548419b 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 0000000000..b10d70ab94 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 0000000000..878dd9ed62 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 0000000000..878dd9ed62 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Plasmaman/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/icon.png b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/icon.png new file mode 100644 index 0000000000..b61d2ae760 Binary files /dev/null and b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-left.png new file mode 100644 index 0000000000..a4c38e93fc Binary files /dev/null and b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-right.png new file mode 100644 index 0000000000..c2b3b59e25 Binary files /dev/null and b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/meta.json b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/meta.json new file mode 100644 index 0000000000..ce34667b41 --- /dev/null +++ b/Resources/Textures/Objects/Misc/extinguisher_refill.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Icon taken from TG station at commit https://github.com/tgstation/tgstation/commit/8337d99a131ce67fcb53dff18af957eefc06bc5e | Inhands taken from TG station at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432 then modified by Skubman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardchin.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardchin.png new file mode 100644 index 0000000000..3a8d1ed155 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardchin.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardlong.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardlong.png new file mode 100644 index 0000000000..d7b1aad864 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardlong.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardshort.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardshort.png new file mode 100644 index 0000000000..bf28dc5904 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardshort.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardthick.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardthick.png new file mode 100644 index 0000000000..a1d455d6a1 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardthick.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardviking.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardviking.png new file mode 100644 index 0000000000..90ae0f344c Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-beardviking.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-bristle.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-bristle.png new file mode 100644 index 0000000000..5a33fecac6 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-bristle.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-mustachewithstubble.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-mustachewithstubble.png new file mode 100644 index 0000000000..ee0c8e7f65 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-mustachewithstubble.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-thickbristle.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-thickbristle.png new file mode 100644 index 0000000000..2e80975282 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/beard-thickbristle.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-arabicgatheredhair.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-arabicgatheredhair.png new file mode 100644 index 0000000000..a602671345 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-arabicgatheredhair.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-classichairmale.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-classichairmale.png new file mode 100644 index 0000000000..7f0d6e3d38 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-classichairmale.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-combedfromside.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-combedfromside.png new file mode 100644 index 0000000000..0f37dd7aee Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-combedfromside.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-longhair.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-longhair.png new file mode 100644 index 0000000000..fc0f54241a Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-longhair.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-manbunold.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-manbunold.png new file mode 100644 index 0000000000..277d00c46e Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-manbunold.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-pigtailtajaran.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-pigtailtajaran.png new file mode 100644 index 0000000000..5b01ffe5cc Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-pigtailtajaran.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-shavedside.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-shavedside.png new file mode 100644 index 0000000000..abe48a688d Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-shavedside.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-shorthaired.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-shorthaired.png new file mode 100644 index 0000000000..13b7700554 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-shorthaired.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-womenbun.png b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-womenbun.png new file mode 100644 index 0000000000..11a31465c5 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/hair-womenbun.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/meta.json b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/meta.json new file mode 100644 index 0000000000..bcaf1ccde9 --- /dev/null +++ b/Resources/Textures/_ADT/Mobs/Customization/Human/custom.rsi/meta.json @@ -0,0 +1,79 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:prazat911", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "beard-beardchin", + "directions": 4 + }, + { + "name": "beard-beardlong", + "directions": 4 + }, + { + "name": "beard-beardshort", + "directions": 4 + }, + { + "name": "beard-beardthick", + "directions": 4 + }, + { + "name": "beard-beardviking", + "directions": 4 + }, + { + "name": "beard-bristle", + "directions": 4 + }, + { + "name": "beard-mustachewithstubble", + "directions": 4 + }, + { + "name": "beard-thickbristle", + "directions": 4 + }, + { + "name": "hair-arabicgatheredhair", + "directions": 4 + }, + { + "name": "hair-classichairmale", + "directions": 4 + }, + { + "name": "hair-combedfromside", + "directions": 4 + }, + { + "name": "hair-longhair", + "directions": 4 + }, + { + "name": "hair-manbunold", + "directions": 4 + }, + { + "name": "hair-pigtailtajaran", + "directions": 4 + }, + { + "name": "hair-shavedside", + "directions": 4 + }, + { + "name": "hair-shorthaired", + "directions": 4 + }, + { + "name": "hair-womenbun", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_ADT/Mobs/Customization/augments/headaugs.rsi/iron_jaw.png b/Resources/Textures/_ADT/Mobs/Customization/augments/headaugs.rsi/iron_jaw.png new file mode 100644 index 0000000000..9acadb7170 Binary files /dev/null and b/Resources/Textures/_ADT/Mobs/Customization/augments/headaugs.rsi/iron_jaw.png differ diff --git a/Resources/Textures/_ADT/Mobs/Customization/augments/headaugs.rsi/meta.json b/Resources/Textures/_ADT/Mobs/Customization/augments/headaugs.rsi/meta.json new file mode 100644 index 0000000000..d9336b88fc --- /dev/null +++ b/Resources/Textures/_ADT/Mobs/Customization/augments/headaugs.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "made by nope_ingeneer", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "directions": 4, + "name": "iron_jaw" + } + ] +} diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/handlebar.png b/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/handlebar.png new file mode 100644 index 0000000000..3032455e18 Binary files /dev/null and b/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/handlebar.png differ diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/handlebar2.png b/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/handlebar2.png new file mode 100644 index 0000000000..c0acfbf346 Binary files /dev/null and b/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/handlebar2.png differ diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/meta.json b/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/meta.json new file mode 100644 index 0000000000..ce68ba9113 --- /dev/null +++ b/Resources/Textures/_Corvax/Mobs/Customization/human_facial_hair.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Skyrat-tg at https://github.com/Skyrat-SS13/Skyrat-tg/commit/ad654e76b4c5dd3972cd2a07eb2d4f9658965807", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "handlebar", + "directions": 4 + }, + { + "name": "handlebar2", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/africanpigtails.png b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/africanpigtails.png new file mode 100644 index 0000000000..75afa8079f Binary files /dev/null and b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/africanpigtails.png differ diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffdouble.png b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffdouble.png new file mode 100644 index 0000000000..8132ba10b8 Binary files /dev/null and b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffdouble.png differ diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffleft.png b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffleft.png new file mode 100644 index 0000000000..617d78c8aa Binary files /dev/null and b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffleft.png differ diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffright.png b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffright.png new file mode 100644 index 0000000000..7c66dc74ac Binary files /dev/null and b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/afropuffright.png differ diff --git a/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/meta.json b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/meta.json new file mode 100644 index 0000000000..281d4f86c0 --- /dev/null +++ b/Resources/Textures/_Corvax/Mobs/Customization/human_hair.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Skyrat-tg at https://github.com/Skyrat-SS13/Skyrat-tg/commit/ad654e76b4c5dd3972cd2a07eb2d4f9658965807", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "africanpigtails", + "directions": 4 + }, + { + "name": "afropuffdouble", + "directions": 4 + }, + { + "name": "afropuffleft", + "directions": 4 + }, + { + "name": "afropuffright", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/ears.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/ears.png new file mode 100644 index 0000000000..7444faecf0 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/ears.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/ears_near.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/ears_near.png new file mode 100644 index 0000000000..c069ac4ab4 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/ears_near.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/inears.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/inears.png new file mode 100644 index 0000000000..c335e704e2 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/inears.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/inears_near.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/inears_near.png new file mode 100644 index 0000000000..e7af318b33 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/inears_near.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/meta.json new file mode 100644 index 0000000000..34b9f717da --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/meta.json @@ -0,0 +1,43 @@ +{ + "version": 1, + "copyright": "Creator was not supplied, oldest reference to markings ('patch') tracked to KasparoVy @ https://github.com/ParadiseSS13/Paradise/commit/3610cfd4ea7e9bffc804320851f0b0a625db1dba, meanwhile ears are made by Cael Aislinn in commit https://github.com/ParadiseSS13/Paradise/commit/9e4539fdce01f00ed7e47ca1174a1470ac5fe77c. Minor tweaks and '_near' versions by SX-7", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ears", + "directions": 4 + }, + { + "name": "inears", + "directions": 4 + }, + { + "name": "outears", + "directions": 4 + }, + { + "name": "patch", + "directions": 4 + }, + { + "name": "ears_near", + "directions": 4 + }, + { + "name": "inears_near", + "directions": 4 + }, + { + "name": "outears_near", + "directions": 4 + }, + { + "name": "patch_near", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/outears.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/outears.png new file mode 100644 index 0000000000..4f5041880b Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/outears.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/outears_near.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/outears_near.png new file mode 100644 index 0000000000..54583699fd Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/outears_near.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/patch.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/patch.png new file mode 100644 index 0000000000..591dde13ee Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/patch.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/patch_near.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/patch_near.png new file mode 100644 index 0000000000..1595303ac9 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/ears.rsi/patch_near.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/basic_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/basic_inner.png new file mode 100644 index 0000000000..57bcdaa8b9 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/basic_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/basic_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/basic_outer.png new file mode 100644 index 0000000000..24fe753ebd Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/basic_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/curled_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/curled_inner.png new file mode 100644 index 0000000000..b447625e18 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/curled_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/curled_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/curled_outer.png new file mode 100644 index 0000000000..3590520cda Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/curled_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/droopy_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/droopy_inner.png new file mode 100644 index 0000000000..b87d5560ce Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/droopy_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/droopy_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/droopy_outer.png new file mode 100644 index 0000000000..7b3e947430 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/droopy_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/fuzzy_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/fuzzy_inner.png new file mode 100644 index 0000000000..2656ff2a99 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/fuzzy_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/meta.json new file mode 100644 index 0000000000..45e8f84702 --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/meta.json @@ -0,0 +1,75 @@ +{ + "version": 1, + "copyright": "Felinid ears made by @Vordenburg for Nyanotrasen @ https://github.com/Nyanotrasen/Nyanotrasen/pull/581/commits/77fe4c38589516ceef533de17cde56665ce970c7, modified by SX-7.", + "license": "CC-BY-SA-4.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "basic_inner", + "directions": 4 + }, + { + "name": "basic_outer", + "directions": 4 + }, + { + "name": "curled_inner", + "directions": 4 + }, + { + "name": "curled_outer", + "directions": 4 + }, + { + "name": "fuzzy_inner", + "directions": 4 + }, + { + "name": "tall_outer", + "directions": 4 + }, + { + "name": "tall_inner", + "directions": 4 + }, + { + "name": "tall_fuzz", + "directions": 4 + }, + { + "name": "torn_outer", + "directions": 4 + }, + { + "name": "torn_inner", + "directions": 4 + }, + { + "name": "stubby_outer", + "directions": 4 + }, + { + "name": "stubby_inner", + "directions": 4 + }, + { + "name": "droopy_outer", + "directions": 4 + }, + { + "name": "droopy_inner", + "directions": 4 + }, + { + "name": "wide_inner", + "directions": 4 + }, + { + "name": "wide_outer", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/stubby_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/stubby_inner.png new file mode 100644 index 0000000000..2cb7d1093d Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/stubby_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/stubby_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/stubby_outer.png new file mode 100644 index 0000000000..57e8c8f375 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/stubby_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_fuzz.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_fuzz.png new file mode 100644 index 0000000000..c6e610549a Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_fuzz.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_inner.png new file mode 100644 index 0000000000..6755edeec1 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_outer.png new file mode 100644 index 0000000000..5ea6dbbaa5 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/tall_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/torn_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/torn_inner.png new file mode 100644 index 0000000000..abdb77c487 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/torn_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/torn_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/torn_outer.png new file mode 100644 index 0000000000..d5242590cf Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/torn_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/wide_inner.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/wide_inner.png new file mode 100644 index 0000000000..eaa1ff64a5 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/wide_inner.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/wide_outer.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/wide_outer.png new file mode 100644 index 0000000000..ae964a487d Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/felinid_ears.rsi/wide_outer.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/base_fox_tail.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/base_fox_tail.png new file mode 100644 index 0000000000..afd2c8384c Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/base_fox_tail.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/base_fox_tail_tip.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/base_fox_tail_tip.png new file mode 100644 index 0000000000..cbfe070e29 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/base_fox_tail_tip.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/meta.json new file mode 100644 index 0000000000..a85e714e7a --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/foxtail.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "apparently splurt-station https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/96703f76bccd8fe6a96b78524efb97a9af661767", + "license": "CC-BY-SA-4.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base_fox_tail", + "directions": 4 + }, + { + "name": "base_fox_tail_tip", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/meta.json new file mode 100644 index 0000000000..a6d17cb0dd --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "copyright": "Creator was not supplied, oldest reference tracked to KasparoVy @ https://github.com/ParadiseSS13/Paradise/commit/3610cfd4ea7e9bffc804320851f0b0a625db1dba. Minor tweaks by SX-7", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "muzzle", + "directions": 4 + }, + { + "name": "muzzle_large", + "directions": 4 + }, + { + "name": "nose", + "directions": 4 + }, + { + "name": "patch", + "directions": 4 + }, + { + "name": "points", + "directions": 4 + }, + { + "name": "tiger_face", + "directions": 4 + }, + { + "name": "tiger_head", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/muzzle.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/muzzle.png new file mode 100644 index 0000000000..67030feac8 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/muzzle.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/muzzle_large.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/muzzle_large.png new file mode 100644 index 0000000000..f96ed03537 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/muzzle_large.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/nose.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/nose.png new file mode 100644 index 0000000000..31bc5f06d8 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/nose.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/patch.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/patch.png new file mode 100644 index 0000000000..64f3effae9 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/patch.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/points.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/points.png new file mode 100644 index 0000000000..dff01d78ae Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/points.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/tiger_face.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/tiger_face.png new file mode 100644 index 0000000000..36d8617fab Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/tiger_face.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/tiger_head.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/tiger_head.png new file mode 100644 index 0000000000..8ee160777b Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/head.rsi/tiger_head.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/meta.json new file mode 100644 index 0000000000..5f23a51818 --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Creator was not supplied, oldest reference tracked to KasparoVy @ https://github.com/ParadiseSS13/Paradise/commit/3610cfd4ea7e9bffc804320851f0b0a625db1dba. Minor tweaks by SX-7", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "patch", + "directions": 4 + }, + { + "name": "points", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/patch.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/patch.png new file mode 100644 index 0000000000..835270a15b Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/patch.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/points.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/points.png new file mode 100644 index 0000000000..c38d3d2e3a Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/overlays.rsi/points.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/meta.json new file mode 100644 index 0000000000..f61cbf5e37 --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "copyright": "Creator was not supplied, oldest reference tracked to Cael Aislinn in commit https://github.com/ParadiseSS13/Paradise/commit/9e4539fdce01f00ed7e47ca1174a1470ac5fe77c. Sprite reorganization by SX-7, but no changes to sprites themselves", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tail_anim_rings", + "directions": 4, + "delays": [ + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ], + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ], + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ], + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ] + ] + }, + { + "name": "tail_rings", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/tail_anim_rings.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/tail_anim_rings.png new file mode 100644 index 0000000000..b60ffd8620 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/tail_anim_rings.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/tail_rings.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/tail_rings.png new file mode 100644 index 0000000000..84f6b2542c Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tail_markings.rsi/tail_rings.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/meta.json new file mode 100644 index 0000000000..39050cb344 --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "copyright": "Creator was not supplied, oldest reference tracked to Cael Aislinn in commit https://github.com/ParadiseSS13/Paradise/commit/9e4539fdce01f00ed7e47ca1174a1470ac5fe77c. Sprite reorganization by SX-7, but no changes to sprites themselves", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tail", + "directions": 4 + }, + { + "name": "tail_anim", + "directions": 4, + "delays": [ + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ], + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ], + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ], + [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ] + ] + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/tail.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/tail.png new file mode 100644 index 0000000000..cbdeebb613 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/tail.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/tail_anim.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/tail_anim.png new file mode 100644 index 0000000000..a849bf7cbb Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/tails.rsi/tail_anim.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/belly.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/belly.png new file mode 100644 index 0000000000..c7f9e78255 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/belly.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/crest.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/crest.png new file mode 100644 index 0000000000..ccb52f0883 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/crest.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/fullbelly.png b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/fullbelly.png new file mode 100644 index 0000000000..bcb6dc67ac Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/fullbelly.png differ diff --git a/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/meta.json b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/meta.json new file mode 100644 index 0000000000..66d6f47649 --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Customization/Tajaran/torso.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "copyright": "Creator was not supplied, oldest reference tracked to KasparoVy @ https://github.com/ParadiseSS13/Paradise/commit/38717e3b034550b3c0a9f3c5f3c78a957dcad0d9. Minor tweaks by SX-7", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "belly", + "directions": 4 + }, + { + "name": "crest", + "directions": 4 + }, + { + "name": "fullbelly", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/head_f.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/head_f.png new file mode 100644 index 0000000000..a89cf12a1f Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/head_f.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/head_m.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/head_m.png new file mode 100644 index 0000000000..1d01e03523 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/head_m.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_arm.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_arm.png new file mode 100644 index 0000000000..7873edd652 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_foot.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_foot.png new file mode 100644 index 0000000000..4fcc3ea79c Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_hand.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_hand.png new file mode 100644 index 0000000000..dc9c2b6422 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_leg.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_leg.png new file mode 100644 index 0000000000..fd0008474c Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/meta.json b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/meta.json new file mode 100644 index 0000000000..13e804ad54 --- /dev/null +++ b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/meta.json @@ -0,0 +1,59 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Creator was not supplied, oldest reference tracked to Cael Aislinn in commit https://github.com/ParadiseSS13/Paradise/commit/9e4539fdce01f00ed7e47ca1174a1470ac5fe77c. Small changes made by SX-7. Names are as provided, sans torso_f front which is a combined version of modified torso_m front, and modified torso_f", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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/_EE/Mobs/Species/Tajaran/parts.rsi/r_arm.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_arm.png new file mode 100644 index 0000000000..f0449da695 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_foot.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_foot.png new file mode 100644 index 0000000000..5d5d6ce77e Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_hand.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_hand.png new file mode 100644 index 0000000000..e11a7ad5e9 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_leg.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_leg.png new file mode 100644 index 0000000000..80b4a864d7 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/torso_f.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/torso_f.png new file mode 100644 index 0000000000..c18fc1458c Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/torso_m.png b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/torso_m.png new file mode 100644 index 0000000000..f5650c6f52 Binary files /dev/null and b/Resources/Textures/_EE/Mobs/Species/Tajaran/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/_Goobstation/Actions/modsuit.rsi/activate-ready.png b/Resources/Textures/_Goobstation/Actions/modsuit.rsi/activate-ready.png new file mode 100644 index 0000000000..c604a291a5 Binary files /dev/null and b/Resources/Textures/_Goobstation/Actions/modsuit.rsi/activate-ready.png differ diff --git a/Resources/Textures/_Goobstation/Actions/modsuit.rsi/activate.png b/Resources/Textures/_Goobstation/Actions/modsuit.rsi/activate.png new file mode 100644 index 0000000000..aafa86494e Binary files /dev/null and b/Resources/Textures/_Goobstation/Actions/modsuit.rsi/activate.png differ diff --git a/Resources/Textures/_Goobstation/Actions/modsuit.rsi/meta.json b/Resources/Textures/_Goobstation/Actions/modsuit.rsi/meta.json new file mode 100644 index 0000000000..86935425a0 --- /dev/null +++ b/Resources/Textures/_Goobstation/Actions/modsuit.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "activate" + }, + { + "name": "activate-ready" + } + ] +} diff --git a/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/control-sealed.png b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/control-sealed.png new file mode 100644 index 0000000000..b6623346a2 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/control-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/control.png b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/control.png new file mode 100644 index 0000000000..3c697a6408 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/control.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/equipped-BACKPACK-sealed.png b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/equipped-BACKPACK-sealed.png new file mode 100644 index 0000000000..8c9541f32f Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/equipped-BACKPACK-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/equipped-BACKPACK.png b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..4f1b124080 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/meta.json new file mode 100644 index 0000000000..ad0319fbe8 --- /dev/null +++ b/Resources/Textures/_Goobstation/Clothing/Back/Modsuits/standard.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "control" + }, + { + "name": "control-sealed", + "delays": [[ 0.1, 0.1, 0.1, 0.1 ]] + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-BACKPACK-sealed", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/equipped-HAND-sealed.png b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/equipped-HAND-sealed.png new file mode 100644 index 0000000000..bbe4c7db6f Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/equipped-HAND-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/equipped-HAND.png b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/equipped-HAND.png new file mode 100644 index 0000000000..6cf7712099 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/equipped-HAND.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/gauntlets-sealed.png b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/gauntlets-sealed.png new file mode 100644 index 0000000000..c118476a06 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/gauntlets-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/gauntlets.png b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/gauntlets.png new file mode 100644 index 0000000000..8657069573 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/gauntlets.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/meta.json new file mode 100644 index 0000000000..c89900d9aa --- /dev/null +++ b/Resources/Textures/_Goobstation/Clothing/Hands/Modsuits/standard.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "gauntlets" + }, + { + "name": "gauntlets-sealed" + }, + { + "name": "equipped-HAND", + "directions": 4 + }, + { + "name": "equipped-HAND-sealed", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/equipped-HEAD-sealed.png b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/equipped-HEAD-sealed.png new file mode 100644 index 0000000000..bfb719e985 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/equipped-HEAD-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/equipped-HEAD.png b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/equipped-HEAD.png new file mode 100644 index 0000000000..b9f66137b8 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/equipped-HEAD.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/helmet-sealed.png b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/helmet-sealed.png new file mode 100644 index 0000000000..0031e63fb3 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/helmet-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/helmet.png b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/helmet.png new file mode 100644 index 0000000000..968c155414 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/helmet.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/meta.json new file mode 100644 index 0000000000..77303d7be4 --- /dev/null +++ b/Resources/Textures/_Goobstation/Clothing/Head/Modsuits/standard.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "helmet" + }, + { + "name": "helmet-sealed" + }, + { + "name": "equipped-HEAD", + "directions": 4 + }, + { + "name": "equipped-HEAD-sealed", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/chestplate-sealed.png b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/chestplate-sealed.png new file mode 100644 index 0000000000..5f374eecd9 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/chestplate-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/chestplate.png b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/chestplate.png new file mode 100644 index 0000000000..404383a236 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/chestplate.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/equipped-OUTERCLOTHING-sealed.png b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/equipped-OUTERCLOTHING-sealed.png new file mode 100644 index 0000000000..41ec1315e4 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/equipped-OUTERCLOTHING-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..708d97c92a Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/meta.json new file mode 100644 index 0000000000..0f10810f22 --- /dev/null +++ b/Resources/Textures/_Goobstation/Clothing/OuterClothing/Modsuits/standard.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "chestplate" + }, + { + "name": "chestplate-sealed" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-sealed", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/boots-sealed.png b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/boots-sealed.png new file mode 100644 index 0000000000..4d141b313f Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/boots-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/boots.png b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/boots.png new file mode 100644 index 0000000000..7dcd0cf6e5 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/boots.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/equipped-FEET-sealed.png b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/equipped-FEET-sealed.png new file mode 100644 index 0000000000..5ad67b6efa Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/equipped-FEET-sealed.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/equipped-FEET.png b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/equipped-FEET.png new file mode 100644 index 0000000000..a95a4bb37d Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/meta.json new file mode 100644 index 0000000000..136eede0ec --- /dev/null +++ b/Resources/Textures/_Goobstation/Clothing/Shoes/Modsuits/standard.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "boots" + }, + { + "name": "boots-sealed" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "equipped-FEET-sealed", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/meta.json b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/meta.json new file mode 100644 index 0000000000..2687b6079d --- /dev/null +++ b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Taken from TG", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "modpower0" + }, + { + "name": "modpower1" + }, + { + "name": "modpower2" + }, + { + "name": "modpower3" + }, + { + "name": "modpower4" + }, + { + "name": "modpower5" + } + ] +} diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower0.png b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower0.png new file mode 100644 index 0000000000..2e738ca7e7 Binary files /dev/null and b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower0.png differ diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower1.png b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower1.png new file mode 100644 index 0000000000..62780521b7 Binary files /dev/null and b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower1.png differ diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower2.png b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower2.png new file mode 100644 index 0000000000..21d8e7f6e7 Binary files /dev/null and b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower2.png differ diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower3.png b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower3.png new file mode 100644 index 0000000000..80c0d1dcfc Binary files /dev/null and b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower3.png differ diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower4.png b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower4.png new file mode 100644 index 0000000000..d6b47c7577 Binary files /dev/null and b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower4.png differ diff --git a/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower5.png b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower5.png new file mode 100644 index 0000000000..d6b47c7577 Binary files /dev/null and b/Resources/Textures/_Goobstation/Interface/Alerts/modpower.rsi/modpower5.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/braidedExtensions.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/braidedExtensions.png new file mode 100644 index 0000000000..9df64362f5 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/braidedExtensions.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/cometTail.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/cometTail.png new file mode 100644 index 0000000000..1dfb6e85a0 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/cometTail.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/fantasyHair.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/fantasyHair.png new file mode 100644 index 0000000000..71beae1358 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/fantasyHair.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/flatTwistsUpdo.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/flatTwistsUpdo.png new file mode 100644 index 0000000000..c23886cf8f Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/flatTwistsUpdo.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/floorlengthBraid.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/floorlengthBraid.png new file mode 100644 index 0000000000..74649ba09e Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/floorlengthBraid.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/floorlengthWavy.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/floorlengthWavy.png new file mode 100644 index 0000000000..bd0d638c17 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/floorlengthWavy.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frizzyBraid.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frizzyBraid.png new file mode 100644 index 0000000000..3f8cfd65f8 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frizzyBraid.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsLong.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsLong.png new file mode 100644 index 0000000000..008f09d744 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsLong.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsMedium.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsMedium.png new file mode 100644 index 0000000000..6c423a7746 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsMedium.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsShort.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsShort.png new file mode 100644 index 0000000000..a99d8fb497 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/frontBraidsShort.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/hairnet.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/hairnet.png new file mode 100644 index 0000000000..d46f40eb06 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/hairnet.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/jellyfish.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/jellyfish.png new file mode 100644 index 0000000000..bf9401a861 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/jellyfish.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/kazuyaMishima.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/kazuyaMishima.png new file mode 100644 index 0000000000..eafcda2482 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/kazuyaMishima.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longBraids.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longBraids.png new file mode 100644 index 0000000000..5a8a963452 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longBraids.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longCurvy.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longCurvy.png new file mode 100644 index 0000000000..f8ba2d8cac Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longCurvy.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longPompadour.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longPompadour.png new file mode 100644 index 0000000000..613b19a114 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/longPompadour.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/mediumCurls.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/mediumCurls.png new file mode 100644 index 0000000000..d0960ba875 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/mediumCurls.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/meta.json b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/meta.json new file mode 100644 index 0000000000..c3074508a6 --- /dev/null +++ b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/meta.json @@ -0,0 +1,143 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "copyright": "Sprited by Bloomyex and implemented by RobynTheWarcrime, FrizzyBraid by Renee - https://discord.com/channels/1202734573247795300/1288192265319223387/1288887697917607936 | flatTwistsUpdo edited by Skubman", + "license": "CC-BY-SA-3.0", + "states": [ + { + "name": "braidedExtensions", + "directions": 4 + }, + { + "name": "cometTail", + "directions": 4 + }, + { + "name": "fantasyHair", + "directions": 4 + }, + { + "name": "flatTwistsUpdo", + "directions": 4 + }, + { + "name": "floorlengthBraid", + "directions": 4 + }, + { + "name": "floorlengthWavy", + "directions": 4 + }, + { + "name": "frizzyBraid", + "directions": 4 + }, + { + "name": "frontBraidsLong", + "directions": 4 + }, + { + "name": "frontBraidsMedium", + "directions": 4 + }, + { + "name": "frontBraidsShort", + "directions": 4 + }, + { + "name": "hairnet", + "directions": 4 + }, + { + "name": "jellyfish", + "directions": 4 + }, + { + "name": "kazuyaMishima", + "directions": 4 + }, + { + "name": "longBraids", + "directions": 4 + }, + { + "name": "longCurvy", + "directions": 4 + }, + { + "name": "longPompadour", + "directions": 4 + }, + { + "name": "mediumCurls", + "directions": 4 + }, + { + "name": "mullet", + "directions": 4 + }, + { + "name": "pelvicLengthBraid", + "directions": 4 + }, + { + "name": "plateau", + "directions": 4 + }, + { + "name": "queenBee", + "directions": 4 + }, + { + "name": "saggedMohawk", + "directions": 4 + }, + { + "name": "sharpMohawk", + "directions": 4 + }, + { + "name": "shortAndPoofy", + "directions": 4 + }, + { + "name": "shortCurls", + "directions": 4 + }, + { + "name": "shoulderLengthBraid", + "directions": 4 + }, + { + "name": "sideSpike", + "directions": 4 + }, + { + "name": "spaceLoops", + "directions": 4 + }, + { + "name": "star", + "directions": 4 + }, + { + "name": "starFro", + "directions": 4 + }, + { + "name": "styledCurls", + "directions": 4 + }, + { + "name": "unkemptScientist", + "directions": 4 + }, + { + "name": "wispy", + "directions": 4 + } + ] + } diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/mullet.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/mullet.png new file mode 100644 index 0000000000..1e76c07a9c Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/mullet.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/pelvicLengthBraid.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/pelvicLengthBraid.png new file mode 100644 index 0000000000..171ec69f5c Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/pelvicLengthBraid.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/plateau.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/plateau.png new file mode 100644 index 0000000000..04edf9cdd9 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/plateau.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/queenBee.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/queenBee.png new file mode 100644 index 0000000000..54d50924d4 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/queenBee.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/saggedMohawk.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/saggedMohawk.png new file mode 100644 index 0000000000..c895dc5699 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/saggedMohawk.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/sharpMohawk.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/sharpMohawk.png new file mode 100644 index 0000000000..54a01f213d Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/sharpMohawk.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shortAndPoofy.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shortAndPoofy.png new file mode 100644 index 0000000000..9badee4ad3 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shortAndPoofy.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shortCurls.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shortCurls.png new file mode 100644 index 0000000000..e11e4a8576 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shortCurls.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shoulderLengthBraid.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shoulderLengthBraid.png new file mode 100644 index 0000000000..49dc670def Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/shoulderLengthBraid.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/sideSpike.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/sideSpike.png new file mode 100644 index 0000000000..e1424eb941 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/sideSpike.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/spaceLoops.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/spaceLoops.png new file mode 100644 index 0000000000..940dc18938 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/spaceLoops.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/star.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/star.png new file mode 100644 index 0000000000..c6f91e1564 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/star.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/starFro.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/starFro.png new file mode 100644 index 0000000000..702167f80b Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/starFro.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/styledCurls.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/styledCurls.png new file mode 100644 index 0000000000..2f2038cc64 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/styledCurls.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/unkemptScientist.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/unkemptScientist.png new file mode 100644 index 0000000000..088fe4da17 Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/unkemptScientist.png differ diff --git a/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/wispy.png b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/wispy.png new file mode 100644 index 0000000000..5f0d1773ec Binary files /dev/null and b/Resources/Textures/_Goobstation/Mobs/Customization/human_hair.rsi/wispy.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/boots.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/boots.png new file mode 100644 index 0000000000..0b0ada9e58 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/boots.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/chestplate.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/chestplate.png new file mode 100644 index 0000000000..a499fcf230 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/chestplate.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/gauntlets.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/gauntlets.png new file mode 100644 index 0000000000..f242f4db40 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/gauntlets.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/helmet.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/helmet.png new file mode 100644 index 0000000000..5385dcb9fa Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/helmet.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/meta.json b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/meta.json new file mode 100644 index 0000000000..1d59db7f79 --- /dev/null +++ b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/meta.json @@ -0,0 +1,56 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "From tgstation - https://github.com/tgstation/tgstation/pull/59109", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "chestplate" + }, + { + "name": "gauntlets" + }, + { + "name": "helmet" + }, + { + "name": "standard-plating" + }, + { + "name": "boots" + }, + { + "name": "shell" + }, + { + "name": "mod-core-standard", + "delays": [[0.1, 0.1, 0.1, 0.1]] + }, + { + "name": "shell-core", + "delays": [[0.1, 0.1, 0.1, 0.1]] + }, + { + "name": "shell-core-secured", + "delays": [[0.1, 0.1, 0.1, 0.1]] + }, + { + "name": "shell-helmet" + }, + { + "name": "shell-chestplate" + }, + { + "name": "shell-gauntlets" + }, + { + "name": "shell-boots" + }, + { + "name": "shell-secured" + } + ] +} diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/mod-core-standard.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/mod-core-standard.png new file mode 100644 index 0000000000..437079c540 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/mod-core-standard.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-boots.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-boots.png new file mode 100644 index 0000000000..f825bb5c40 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-boots.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-chestplate.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-chestplate.png new file mode 100644 index 0000000000..25384dabf4 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-chestplate.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-core-secured.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-core-secured.png new file mode 100644 index 0000000000..f03323b100 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-core-secured.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-core.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-core.png new file mode 100644 index 0000000000..1957741c8d Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-core.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-gauntlets.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-gauntlets.png new file mode 100644 index 0000000000..02b9c2824b Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-gauntlets.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-helmet.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-helmet.png new file mode 100644 index 0000000000..9417be1ef6 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-helmet.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-secured.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-secured.png new file mode 100644 index 0000000000..4152554390 Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell-secured.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell.png new file mode 100644 index 0000000000..0f9665700a Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/shell.png differ diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/standard-plating.png b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/standard-plating.png new file mode 100644 index 0000000000..ff521088cb Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Specific/Robotics/modsuit_parts.rsi/standard-plating.png differ diff --git a/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/dragon.png b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/dragon.png new file mode 100644 index 0000000000..39e32610d7 Binary files /dev/null and b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/dragon.png differ diff --git a/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/fly.png b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/fly.png new file mode 100644 index 0000000000..cb6e4a0423 Binary files /dev/null and b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/fly.png differ diff --git a/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/meta.json b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/meta.json new file mode 100644 index 0000000000..8b7c597c2d --- /dev/null +++ b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/meta.json @@ -0,0 +1,24 @@ +{ + "version": 1, + "size": { "x": 64, "y": 34 }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TGStation at commit https://github.com/tgstation/tgstation/commit/e9cc620e9f908e18949031c6e1b5811e3fc5af4e | skeleton modified by Skubman", + "states": [ + { + "name": "dragon", + "directions": 4 + }, + { + "name": "fly", + "directions": 4 + }, + { + "name": "robotic", + "directions": 4 + }, + { + "name": "skeleton", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/robotic.png b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/robotic.png new file mode 100644 index 0000000000..0663a6be4a Binary files /dev/null and b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/robotic.png differ diff --git a/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/skeleton.png b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/skeleton.png new file mode 100644 index 0000000000..22b76c2e31 Binary files /dev/null and b/Resources/Textures/_SimpleStation/Mobs/Customization/wings64x34.rsi/skeleton.png differ