Merge remote-tracking branch 'upstream/master' into 20-11-19-sandboxing
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<!-- Work around https://github.com/dotnet/project-system/issues/4314 -->
|
||||
<TargetFramework>$(TargetFramework)</TargetFramework>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<OutputPath>..\bin\Content.Client\</OutputPath>
|
||||
|
||||
@@ -79,6 +79,7 @@ namespace Content.Client
|
||||
prototypes.RegisterIgnore("gasReaction");
|
||||
prototypes.RegisterIgnore("seed"); // Seeds prototypes are server-only.
|
||||
prototypes.RegisterIgnore("barSign");
|
||||
prototypes.RegisterIgnore("objective");
|
||||
|
||||
ClientContentIoC.Register();
|
||||
|
||||
|
||||
@@ -1,26 +1,30 @@
|
||||
#nullable enable
|
||||
using System.Drawing;
|
||||
using Content.Client.GameObjects.Components.Mobs;
|
||||
using Content.Client.UserInterface;
|
||||
using Content.Client.UserInterface.Stylesheets;
|
||||
using Content.Shared.GameObjects.Components.Actor;
|
||||
using Robust.Client.Interfaces.GameObjects.Components;
|
||||
using Robust.Client.Interfaces.ResourceManagement;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.Utility;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.Network;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Players;
|
||||
|
||||
namespace Content.Client.GameObjects.Components.Actor
|
||||
{
|
||||
[RegisterComponent]
|
||||
public sealed class CharacterInfoComponent : Component, ICharacterUI
|
||||
public sealed class CharacterInfoComponent : SharedCharacterInfoComponent, ICharacterUI
|
||||
{
|
||||
[Dependency] private readonly IResourceCache _resourceCache = default!;
|
||||
|
||||
private CharacterInfoControl _control;
|
||||
private CharacterInfoControl _control = default!;
|
||||
|
||||
public override string Name => "CharacterInfo";
|
||||
|
||||
public Control Scene { get; private set; }
|
||||
public Control Scene { get; private set; } = default!;
|
||||
public UIPriority Priority => UIPriority.Info;
|
||||
|
||||
public override void OnAdd()
|
||||
@@ -30,18 +34,29 @@ namespace Content.Client.GameObjects.Components.Actor
|
||||
Scene = _control = new CharacterInfoControl(_resourceCache);
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
public void Opened()
|
||||
{
|
||||
base.Initialize();
|
||||
SendNetworkMessage(new RequestCharacterInfoMessage());
|
||||
}
|
||||
|
||||
if (Owner.TryGetComponent(out ISpriteComponent spriteComponent))
|
||||
public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, ICommonSession? session = null)
|
||||
{
|
||||
base.HandleNetworkMessage(message, netChannel, session);
|
||||
|
||||
if(session?.AttachedEntity != Owner) return;
|
||||
|
||||
switch (message)
|
||||
{
|
||||
_control.SpriteView.Sprite = spriteComponent;
|
||||
}
|
||||
case CharacterInfoMessage characterInfoMessage:
|
||||
_control.UpdateUI(characterInfoMessage);
|
||||
if (Owner.TryGetComponent(out ISpriteComponent? spriteComponent))
|
||||
{
|
||||
_control.SpriteView.Sprite = spriteComponent;
|
||||
}
|
||||
|
||||
_control.NameLabel.Text = Owner.Name;
|
||||
// ReSharper disable once StringLiteralTypo
|
||||
_control.SubText.Text = Loc.GetString("Professional Greyshirt");
|
||||
_control.NameLabel.Text = Owner.Name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private sealed class CharacterInfoControl : VBoxContainer
|
||||
@@ -50,8 +65,12 @@ namespace Content.Client.GameObjects.Components.Actor
|
||||
public Label NameLabel { get; }
|
||||
public Label SubText { get; }
|
||||
|
||||
public VBoxContainer ObjectivesContainer { get; }
|
||||
|
||||
public CharacterInfoControl(IResourceCache resourceCache)
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
AddChild(new HBoxContainer
|
||||
{
|
||||
Children =
|
||||
@@ -66,7 +85,8 @@ namespace Content.Client.GameObjects.Components.Actor
|
||||
(SubText = new Label
|
||||
{
|
||||
SizeFlagsVertical = SizeFlags.None,
|
||||
StyleClasses = {StyleNano.StyleClassLabelSubText}
|
||||
StyleClasses = {StyleNano.StyleClassLabelSubText},
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -78,16 +98,65 @@ namespace Content.Client.GameObjects.Components.Actor
|
||||
PlaceholderText = Loc.GetString("Health & status effects")
|
||||
});
|
||||
|
||||
AddChild(new Placeholder(resourceCache)
|
||||
AddChild(new Label
|
||||
{
|
||||
PlaceholderText = Loc.GetString("Objectives")
|
||||
Text = Loc.GetString("Objectives"),
|
||||
SizeFlagsHorizontal = SizeFlags.ShrinkCenter
|
||||
});
|
||||
ObjectivesContainer = new VBoxContainer();
|
||||
AddChild(ObjectivesContainer);
|
||||
|
||||
AddChild(new Placeholder(resourceCache)
|
||||
{
|
||||
PlaceholderText = Loc.GetString("Antagonist Roles")
|
||||
});
|
||||
}
|
||||
|
||||
public void UpdateUI(CharacterInfoMessage characterInfoMessage)
|
||||
{
|
||||
SubText.Text = characterInfoMessage.JobTitle;
|
||||
|
||||
ObjectivesContainer.RemoveAllChildren();
|
||||
foreach (var (groupId, objectiveConditions) in characterInfoMessage.Objectives)
|
||||
{
|
||||
var vbox = new VBoxContainer
|
||||
{
|
||||
Modulate = Color.Gray
|
||||
};
|
||||
|
||||
vbox.AddChild(new Label
|
||||
{
|
||||
Text = groupId,
|
||||
Modulate = Color.LightSkyBlue
|
||||
});
|
||||
|
||||
foreach (var objectiveCondition in objectiveConditions)
|
||||
{
|
||||
var hbox = new HBoxContainer();
|
||||
hbox.AddChild(new ProgressTextureRect
|
||||
{
|
||||
Texture = objectiveCondition.SpriteSpecifier.Frame0(),
|
||||
Progress = objectiveCondition.Progress,
|
||||
SizeFlagsVertical = SizeFlags.ShrinkCenter
|
||||
});
|
||||
hbox.AddChild(new Control
|
||||
{
|
||||
CustomMinimumSize = (10,0)
|
||||
});
|
||||
hbox.AddChild(new VBoxContainer
|
||||
{
|
||||
Children =
|
||||
{
|
||||
new Label{Text = objectiveCondition.Title},
|
||||
new Label{Text = objectiveCondition.Description}
|
||||
}
|
||||
}
|
||||
);
|
||||
vbox.AddChild(hbox);
|
||||
}
|
||||
ObjectivesContainer.AddChild(vbox);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +116,7 @@ namespace Content.Client.GameObjects.Components.Actor
|
||||
public class CharacterWindow : SS14Window
|
||||
{
|
||||
private readonly VBoxContainer _contentsVBox;
|
||||
private readonly List<ICharacterUI> _windowComponents;
|
||||
|
||||
public CharacterWindow(List<ICharacterUI> windowComponents)
|
||||
{
|
||||
@@ -129,6 +130,17 @@ namespace Content.Client.GameObjects.Components.Actor
|
||||
{
|
||||
_contentsVBox.AddChild(element.Scene);
|
||||
}
|
||||
|
||||
_windowComponents = windowComponents;
|
||||
}
|
||||
|
||||
protected override void Opened()
|
||||
{
|
||||
base.Opened();
|
||||
foreach (var windowComponent in _windowComponents)
|
||||
{
|
||||
windowComponent.Opened();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using Content.Client.GameObjects.EntitySystems.DoAfter;
|
||||
using Robust.Client.Graphics.Drawing;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.Maths;
|
||||
|
||||
namespace Content.Client.GameObjects.Components.Actor
|
||||
{
|
||||
public class ProgressTextureRect : TextureRect
|
||||
{
|
||||
public float Progress;
|
||||
|
||||
protected override void Draw(DrawingHandleScreen handle)
|
||||
{
|
||||
var dims = Texture != null ? GetDrawDimensions(Texture) : UIBox2.FromDimensions(Vector2.Zero, PixelSize);
|
||||
dims.Top = Math.Max(dims.Bottom - dims.Bottom * Progress,0);
|
||||
handle.DrawRect(dims, DoAfterHelpers.GetProgressColor(Progress));
|
||||
|
||||
base.Draw(handle);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,13 @@
|
||||
using Content.Client.GameObjects.Components.Items;
|
||||
#nullable enable
|
||||
using Content.Client.GameObjects.Components.HUD.Inventory;
|
||||
using Content.Client.GameObjects.Components.Items;
|
||||
using Content.Shared.GameObjects;
|
||||
using Content.Shared.GameObjects.Components.Inventory;
|
||||
using Content.Shared.GameObjects.Components.Items;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects.Components;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.ViewVariables;
|
||||
|
||||
@@ -18,8 +22,29 @@ namespace Content.Client.GameObjects.Components.Clothing
|
||||
public override string Name => "Clothing";
|
||||
public override uint? NetID => ContentNetIDs.CLOTHING;
|
||||
|
||||
private string? _clothingEquippedPrefix;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public string ClothingEquippedPrefix { get; set; }
|
||||
public string? ClothingEquippedPrefix
|
||||
{
|
||||
get => _clothingEquippedPrefix;
|
||||
set
|
||||
{
|
||||
if (_clothingEquippedPrefix == value)
|
||||
return;
|
||||
|
||||
_clothingEquippedPrefix = value;
|
||||
|
||||
if (!Owner.TryGetContainer(out IContainer? container))
|
||||
return;
|
||||
if (!container.Owner.TryGetComponent(out ClientInventoryComponent? inventory))
|
||||
return;
|
||||
if (!inventory.TryFindItemSlots(Owner, out EquipmentSlotDefines.Slots? slots))
|
||||
return;
|
||||
|
||||
inventory.SetSlotVisuals(slots.Value, Owner);
|
||||
}
|
||||
}
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public FemaleClothingMask FemaleMask
|
||||
@@ -54,7 +79,7 @@ namespace Content.Client.GameObjects.Components.Clothing
|
||||
return null;
|
||||
}
|
||||
|
||||
public override void HandleComponentState(ComponentState curState, ComponentState nextState)
|
||||
public override void HandleComponentState(ComponentState? curState, ComponentState? nextState)
|
||||
{
|
||||
if (curState == null)
|
||||
return;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Content.Client.GameObjects.Components.Clothing;
|
||||
using Content.Shared.GameObjects.Components.Inventory;
|
||||
@@ -22,10 +24,9 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory
|
||||
{
|
||||
private readonly Dictionary<Slots, IEntity> _slots = new Dictionary<Slots, IEntity>();
|
||||
|
||||
[ViewVariables]
|
||||
public InventoryInterfaceController InterfaceController { get; private set; }
|
||||
[ViewVariables] public InventoryInterfaceController InterfaceController { get; private set; } = default!;
|
||||
|
||||
private ISpriteComponent _sprite;
|
||||
private ISpriteComponent? _sprite;
|
||||
|
||||
private bool _playerAttached = false;
|
||||
|
||||
@@ -69,7 +70,7 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory
|
||||
}
|
||||
}
|
||||
|
||||
public override void HandleComponentState(ComponentState curState, ComponentState nextState)
|
||||
public override void HandleComponentState(ComponentState? curState, ComponentState? nextState)
|
||||
{
|
||||
base.HandleComponentState(curState, nextState);
|
||||
|
||||
@@ -126,7 +127,7 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory
|
||||
return;
|
||||
}
|
||||
|
||||
if (entity != null && entity.TryGetComponent(out ClothingComponent clothing))
|
||||
if (entity.TryGetComponent(out ClothingComponent? clothing))
|
||||
{
|
||||
var flag = SlotMasks[slot];
|
||||
var data = clothing.GetEquippedStateInfo(flag);
|
||||
@@ -155,6 +156,9 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory
|
||||
|
||||
internal void ClearAllSlotVisuals()
|
||||
{
|
||||
if (_sprite == null)
|
||||
return;
|
||||
|
||||
foreach (var slot in InventoryInstance.SlotMasks)
|
||||
{
|
||||
if (slot != Slots.NONE)
|
||||
@@ -192,7 +196,7 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory
|
||||
SendNetworkMessage(new OpenSlotStorageUIMessage(slot));
|
||||
}
|
||||
|
||||
public override void HandleMessage(ComponentMessage message, IComponent component)
|
||||
public override void HandleMessage(ComponentMessage message, IComponent? component)
|
||||
{
|
||||
base.HandleMessage(message, component);
|
||||
|
||||
@@ -210,9 +214,25 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryGetSlot(Slots slot, out IEntity item)
|
||||
public bool TryGetSlot(Slots slot, out IEntity? item)
|
||||
{
|
||||
return _slots.TryGetValue(slot, out item);
|
||||
}
|
||||
|
||||
public bool TryFindItemSlots(IEntity item, [NotNullWhen(true)] out Slots? slots)
|
||||
{
|
||||
slots = null;
|
||||
|
||||
foreach (var (slot, entity) in _slots)
|
||||
{
|
||||
if (entity == item)
|
||||
{
|
||||
slots = slot;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,5 +17,10 @@ namespace Content.Client.GameObjects.Components.Mobs
|
||||
/// The order it will appear in the character UI, higher is lower
|
||||
/// </summary>
|
||||
UIPriority Priority { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Called when the CharacterUi was opened
|
||||
/// </summary>
|
||||
void Opened(){}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#nullable enable
|
||||
#nullable enable
|
||||
using System;
|
||||
using Robust.Client.Graphics.Drawing;
|
||||
using Robust.Client.Graphics.Shaders;
|
||||
@@ -105,16 +105,10 @@ namespace Content.Client.GameObjects.EntitySystems.DoAfter
|
||||
}
|
||||
|
||||
color = new Color(1.0f, 0.0f, 0.0f, _flash ? 1.0f : 0.0f);
|
||||
}
|
||||
else if (Ratio >= 1.0f)
|
||||
{
|
||||
color = new Color(0f, 1f, 0f);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// lerp
|
||||
var hue = (5f / 18f) * Ratio;
|
||||
color = Color.FromHsv((hue, 1f, 0.75f, 1f));
|
||||
color = DoAfterHelpers.GetProgressColor(Ratio);
|
||||
}
|
||||
|
||||
handle.UseShader(_shader);
|
||||
@@ -128,4 +122,18 @@ namespace Content.Client.GameObjects.EntitySystems.DoAfter
|
||||
handle.DrawRect(box, color);
|
||||
}
|
||||
}
|
||||
|
||||
public static class DoAfterHelpers
|
||||
{
|
||||
public static Color GetProgressColor(float progress)
|
||||
{
|
||||
if (progress >= 1.0f)
|
||||
{
|
||||
return new Color(0f, 1f, 0f);
|
||||
}
|
||||
// lerp
|
||||
var hue = (5f / 18f) * progress;
|
||||
return Color.FromHsv((hue, 1f, 0.75f, 1f));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace Content.Client.GameObjects.EntitySystems.DoAfter
|
||||
// Predictions
|
||||
if (doAfter.BreakOnUserMove)
|
||||
{
|
||||
if (userGrid != doAfter.UserGrid)
|
||||
if (!userGrid.InRange(EntityManager, doAfter.UserGrid, doAfter.MovementThreshold))
|
||||
{
|
||||
comp.Cancel(id, currentTime);
|
||||
continue;
|
||||
@@ -123,7 +123,7 @@ namespace Content.Client.GameObjects.EntitySystems.DoAfter
|
||||
|
||||
if (doAfter.BreakOnTargetMove)
|
||||
{
|
||||
if (EntityManager.TryGetEntity(doAfter.TargetUid, out var targetEntity) && targetEntity.Transform.Coordinates != doAfter.TargetGrid)
|
||||
if (EntityManager.TryGetEntity(doAfter.TargetUid, out var targetEntity) && !targetEntity.Transform.Coordinates.InRange(EntityManager, doAfter.TargetGrid, doAfter.MovementThreshold))
|
||||
{
|
||||
comp.Cancel(id, currentTime);
|
||||
continue;
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
"Smes",
|
||||
"LightBulb",
|
||||
"Healing",
|
||||
"Catwalk",
|
||||
"RangedMagazine",
|
||||
"Ammo",
|
||||
"HitscanWeaponCapacitor",
|
||||
@@ -210,8 +209,9 @@
|
||||
"CrematoriumEntityStorage",
|
||||
"RandomArcade",
|
||||
"RandomSpriteState",
|
||||
"WelderRefinable",
|
||||
"ConveyorAssembly",
|
||||
"TwoWayLever"
|
||||
"TwoWayLever",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<OutputPath>..\bin\Content.IntegrationTests\</OutputPath>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\RobustToolbox\MSBuild\Robust.DefineConstants.targets" />
|
||||
<ItemGroup>
|
||||
|
||||
@@ -53,11 +53,11 @@ namespace Content.IntegrationTests.Tests
|
||||
Assert.That(inventory.HasSlot(Slots.INNERCLOTHING));
|
||||
Assert.That(inventory.HasSlot(Slots.IDCARD));
|
||||
|
||||
Assert.That(inventory.SpawnItemInSlot(Slots.INNERCLOTHING, "UniformJanitor", true));
|
||||
Assert.That(inventory.SpawnItemInSlot(Slots.INNERCLOTHING, "ClothingUniformJumpsuitJanitor", true));
|
||||
|
||||
// Do we actually have the uniform equipped?
|
||||
Assert.That(inventory.TryGetSlotItem(Slots.INNERCLOTHING, out ItemComponent uniform));
|
||||
Assert.That(uniform.Owner.Prototype != null && uniform.Owner.Prototype.ID == "UniformJanitor");
|
||||
Assert.That(uniform.Owner.Prototype != null && uniform.Owner.Prototype.ID == "ClothingUniformJumpsuitJanitor");
|
||||
|
||||
stun.Stun(1f);
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<!-- Work around https://github.com/dotnet/project-system/issues/4314 -->
|
||||
<TargetFramework>$(TargetFramework)</TargetFramework>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<OutputPath>..\bin\Content.Server.Database\</OutputPath>
|
||||
|
||||
@@ -197,7 +197,7 @@ namespace Content.Server.Atmos
|
||||
foreach (var entity in _gridTileLookupSystem.GetEntitiesIntersecting(GridIndex, GridIndices))
|
||||
{
|
||||
if (!entity.TryGetComponent(out IPhysicsComponent physics)
|
||||
|| !entity.TryGetComponent(out MovedByPressureComponent pressure)
|
||||
|| !entity.IsMovedByPressure(out var pressure)
|
||||
|| entity.IsInContainer())
|
||||
continue;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<!-- Work around https://github.com/dotnet/project-system/issues/4314 -->
|
||||
<TargetFramework>$(TargetFramework)</TargetFramework>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<OutputPath>..\bin\Content.Server\</OutputPath>
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Server.GameObjects.Components.Mobs;
|
||||
using Content.Server.Mobs.Roles;
|
||||
using Content.Shared.GameObjects.Components.Actor;
|
||||
using Content.Shared.Objectives;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.Network;
|
||||
using Robust.Shared.Players;
|
||||
|
||||
namespace Content.Server.GameObjects.Components.Actor
|
||||
{
|
||||
[RegisterComponent]
|
||||
public class CharacterInfoComponent : SharedCharacterInfoComponent
|
||||
{
|
||||
public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, ICommonSession? session = null)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case RequestCharacterInfoMessage _:
|
||||
var conditions = new Dictionary<string, List<ConditionInfo>>();
|
||||
var jobTitle = "No Profession";
|
||||
if (Owner.TryGetComponent(out MindComponent? mindComponent))
|
||||
{
|
||||
var mind = mindComponent.Mind;
|
||||
|
||||
if (mind != null)
|
||||
{
|
||||
// getting conditions
|
||||
foreach (var objective in mind.AllObjectives)
|
||||
{
|
||||
if (!conditions.ContainsKey(objective.Issuer))
|
||||
conditions[objective.Issuer] = new List<ConditionInfo>();
|
||||
foreach (var condition in objective.Conditions)
|
||||
{
|
||||
conditions[objective.Issuer].Add(new ConditionInfo(condition.GetTitle(),
|
||||
condition.GetDescription(), condition.GetIcon(), condition.GetProgress(mindComponent.Mind)));
|
||||
}
|
||||
}
|
||||
|
||||
// getting jobtitle
|
||||
foreach (var role in mind.AllRoles)
|
||||
{
|
||||
if (role.GetType() == typeof(Job))
|
||||
{
|
||||
jobTitle = role.Name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SendNetworkMessage(new CharacterInfoMessage(jobTitle, conditions));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
#nullable enable
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.ViewVariables;
|
||||
|
||||
@@ -9,6 +12,8 @@ namespace Content.Server.GameObjects.Components.Atmos
|
||||
{
|
||||
public override string Name => "MovedByPressure";
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public bool Enabled { get; set; } = true;
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float PressureResistance { get; set; } = 1f;
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
@@ -19,8 +24,23 @@ namespace Content.Server.GameObjects.Components.Atmos
|
||||
public override void ExposeData(ObjectSerializer serializer)
|
||||
{
|
||||
base.ExposeData(serializer);
|
||||
serializer.DataField(this, x => x.Enabled, "enabled", true);
|
||||
serializer.DataField(this, x => PressureResistance, "pressureResistance", 1f);
|
||||
serializer.DataField(this, x => MoveResist, "moveResist", 100f);
|
||||
}
|
||||
}
|
||||
|
||||
public static class MovedByPressureExtensions
|
||||
{
|
||||
public static bool IsMovedByPressure(this IEntity entity)
|
||||
{
|
||||
return entity.IsMovedByPressure(out _);
|
||||
}
|
||||
|
||||
public static bool IsMovedByPressure(this IEntity entity, [NotNullWhen(true)] out MovedByPressureComponent? moved)
|
||||
{
|
||||
return entity.TryGetComponent(out moved) &&
|
||||
moved.Enabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.Server.GameObjects.Components
|
||||
{
|
||||
/// <summary>
|
||||
/// Literally just a marker component for footsteps for now.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed class CatwalkComponent : Component
|
||||
{
|
||||
public override string Name => "Catwalk";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Server.GameObjects.Components.Interactable;
|
||||
using Content.Server.GameObjects.Components.Stack;
|
||||
using Content.Shared.GameObjects.Components.Interactable;
|
||||
using Content.Shared.Interfaces.GameObjects.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.ViewVariables;
|
||||
|
||||
namespace Content.Server.GameObjects.Components.Construction
|
||||
{
|
||||
/// <summary>
|
||||
/// Used for something that can be refined by welder.
|
||||
/// For example, glass shard can be refined to glass sheet.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public class WelderRefinableComponent : Component, IInteractUsing
|
||||
{
|
||||
[ViewVariables]
|
||||
private HashSet<string>? _refineResult = default;
|
||||
[ViewVariables]
|
||||
private float _refineTime;
|
||||
|
||||
private bool _beingWelded;
|
||||
|
||||
public override string Name => "WelderRefinable";
|
||||
|
||||
public override void ExposeData(ObjectSerializer serializer)
|
||||
{
|
||||
base.ExposeData(serializer);
|
||||
serializer.DataField(ref _refineResult, "refineResult", new HashSet<string> { "GlassStack" });
|
||||
serializer.DataField(ref _refineTime, "refineTime", 2f);
|
||||
}
|
||||
|
||||
public async Task<bool> InteractUsing(InteractUsingEventArgs eventArgs)
|
||||
{
|
||||
// check if object is welder
|
||||
if (!eventArgs.Using.TryGetComponent(out ToolComponent? tool))
|
||||
return false;
|
||||
|
||||
// check if someone is already welding object
|
||||
if (_beingWelded)
|
||||
return false;
|
||||
_beingWelded = true;
|
||||
|
||||
if (!await tool.UseTool(eventArgs.User, Owner, _refineTime, ToolQuality.Welding))
|
||||
{
|
||||
// failed to veld - abort refine
|
||||
_beingWelded = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
// get last owner coordinates and delete it
|
||||
var resultPosition = Owner.Transform.Coordinates;
|
||||
Owner.Delete();
|
||||
|
||||
// spawn each result afrer refine
|
||||
foreach (var result in _refineResult!)
|
||||
{
|
||||
var droppedEnt = Owner.EntityManager.SpawnEntity(result, resultPosition);
|
||||
|
||||
if (droppedEnt.TryGetComponent<StackComponent>(out var stackComp))
|
||||
stackComp.Count = 1;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using Robust.Server.GameObjects.Components.Container;
|
||||
|
||||
namespace Content.Server.GameObjects.Components.ContainerExt
|
||||
{
|
||||
public static class ContainerExt
|
||||
{
|
||||
public static int CountPrototypeOccurencesRecursive(this ContainerManagerComponent mgr, string prototypeId)
|
||||
{
|
||||
int total = 0;
|
||||
foreach (var container in mgr.GetAllContainers())
|
||||
{
|
||||
foreach (var entity in container.ContainedEntities)
|
||||
{
|
||||
if (entity.Prototype?.ID == prototypeId) total++;
|
||||
if(!entity.TryGetComponent<ContainerManagerComponent>(out var component)) continue;
|
||||
total += component.CountPrototypeOccurencesRecursive(prototypeId);
|
||||
}
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,13 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Server.Administration;
|
||||
using Content.Server.GameObjects.Components.Atmos;
|
||||
using Content.Server.GameObjects.EntitySystems;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.GameObjects.Components.Damage;
|
||||
using Robust.Server.Interfaces.Console;
|
||||
using Robust.Server.Interfaces.Player;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameObjects.Systems;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
|
||||
@@ -204,17 +205,12 @@ namespace Content.Server.GameObjects.Components.Damage
|
||||
return;
|
||||
}
|
||||
|
||||
if (entity.HasComponent<MovedByPressureComponent>())
|
||||
{
|
||||
entity.RemoveComponent<MovedByPressureComponent>();
|
||||
}
|
||||
var godmodeSystem = EntitySystem.Get<GodmodeSystem>();
|
||||
var enabled = godmodeSystem.ToggleGodmode(entity);
|
||||
|
||||
if (entity.TryGetComponent(out IDamageableComponent? damageable))
|
||||
{
|
||||
damageable.AddFlag(DamageFlag.Invulnerable);
|
||||
}
|
||||
|
||||
shell.SendText(player, $"Enabled godmode for entity {entity.Name}");
|
||||
shell.SendText(player, enabled
|
||||
? $"Enabled godmode for entity {entity.Name} with id {entity.Uid}"
|
||||
: $"Disabled godmode for entity {entity.Name} with id {entity.Uid}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#nullable enable
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using Content.Server.GameObjects.EntitySystems.DoAfter;
|
||||
using Content.Shared.GameObjects.Components;
|
||||
@@ -31,6 +31,7 @@ namespace Content.Server.GameObjects.Components
|
||||
doAfter.EventArgs.Delay,
|
||||
doAfter.EventArgs.BreakOnUserMove,
|
||||
doAfter.EventArgs.BreakOnTargetMove,
|
||||
doAfter.EventArgs.MovementThreshold,
|
||||
doAfter.EventArgs.Target?.Uid ?? EntityUid.Invalid);
|
||||
|
||||
toAdd.Add(clientDoAfter);
|
||||
|
||||
@@ -80,6 +80,10 @@ namespace Content.Server.GameObjects.Components.Doors
|
||||
|
||||
public bool Occludes => _occludes;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)] private bool _bumpOpen;
|
||||
|
||||
public bool BumpOpen => _bumpOpen;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public bool IsWeldedShut
|
||||
{
|
||||
@@ -112,6 +116,7 @@ namespace Content.Server.GameObjects.Components.Doors
|
||||
base.ExposeData(serializer);
|
||||
|
||||
serializer.DataField(ref _occludes, "occludes", true);
|
||||
serializer.DataField(ref _bumpOpen, "bumpOpen", true);
|
||||
serializer.DataField(ref _isWeldedShut, "welded", false);
|
||||
serializer.DataField(ref _canCrush, "canCrush", true);
|
||||
}
|
||||
@@ -147,6 +152,11 @@ namespace Content.Server.GameObjects.Components.Doors
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_bumpOpen)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Disabled because it makes it suck hard to walk through double doors.
|
||||
|
||||
if (entity.HasComponent<IBody>())
|
||||
|
||||
@@ -3,8 +3,10 @@ using System.Threading.Tasks;
|
||||
using Content.Server.GameObjects.Components.Items.Clothing;
|
||||
using Content.Server.GameObjects.Components.Items.Storage;
|
||||
using Content.Server.GameObjects.Components.Power;
|
||||
using Content.Server.GameObjects.Components.Weapon.Ranged.Barrels;
|
||||
using Content.Shared.GameObjects.Components;
|
||||
using Content.Shared.GameObjects.EntitySystems;
|
||||
using Content.Shared.GameObjects.Verbs;
|
||||
using Content.Shared.Interfaces;
|
||||
using Content.Shared.Interfaces.GameObjects.Components;
|
||||
using Content.Shared.Utility;
|
||||
@@ -164,7 +166,7 @@ namespace Content.Server.GameObjects.Components.Interactable
|
||||
|
||||
if (Owner.TryGetComponent(out ClothingComponent? clothing))
|
||||
{
|
||||
clothing.ClothingEquippedPrefix = on ? "On" : "Off";
|
||||
clothing.ClothingEquippedPrefix = on ? "on" : "off";
|
||||
}
|
||||
|
||||
if (Owner.TryGetComponent(out ItemComponent? item))
|
||||
@@ -226,5 +228,25 @@ namespace Content.Server.GameObjects.Components.Interactable
|
||||
{
|
||||
return new HandheldLightComponentState(GetLevel());
|
||||
}
|
||||
|
||||
[Verb]
|
||||
public sealed class ToggleLightVerb : Verb<HandheldLightComponent>
|
||||
{
|
||||
protected override void GetData(IEntity user, HandheldLightComponent component, VerbData data)
|
||||
{
|
||||
if (!ActionBlockerSystem.CanInteract(user))
|
||||
{
|
||||
data.Visibility = VerbVisibility.Invisible;
|
||||
return;
|
||||
}
|
||||
|
||||
data.Text = Loc.GetString("Toggle light");
|
||||
}
|
||||
|
||||
protected override void Activate(IEntity user, HandheldLightComponent component)
|
||||
{
|
||||
component.ToggleStatus(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ using Robust.Shared.IoC;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Timers;
|
||||
using Robust.Shared.Utility;
|
||||
using Robust.Shared.ViewVariables;
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ using Robust.Shared.GameObjects.Components.Timers;
|
||||
using Robust.Shared.Interfaces.Timing;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.ViewVariables;
|
||||
using Timer = Robust.Shared.Timers.Timer;
|
||||
|
||||
namespace Content.Server.GameObjects.Components.Timing
|
||||
@@ -24,6 +25,7 @@ namespace Content.Server.GameObjects.Components.Timing
|
||||
/// <summary>
|
||||
/// The time, in seconds, between an object's use and when it can be used again
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Delay { get => _delay; set => _delay = value; }
|
||||
|
||||
public bool ActiveDelay{ get; private set; }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#nullable enable
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Server.GameObjects.Components.GUI;
|
||||
@@ -118,12 +118,14 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter
|
||||
}
|
||||
|
||||
// TODO :Handle inertia in space.
|
||||
if (EventArgs.BreakOnUserMove && EventArgs.User.Transform.Coordinates != UserGrid)
|
||||
if (EventArgs.BreakOnUserMove && !EventArgs.User.Transform.Coordinates.InRange(
|
||||
EventArgs.User.EntityManager, UserGrid, EventArgs.MovementThreshold))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (EventArgs.BreakOnTargetMove && EventArgs.Target!.Transform.Coordinates != TargetGrid)
|
||||
if (EventArgs.BreakOnTargetMove && !EventArgs.Target!.Transform.Coordinates.InRange(
|
||||
EventArgs.User.EntityManager, TargetGrid, EventArgs.MovementThreshold))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#nullable enable
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Content.Shared.Physics;
|
||||
@@ -60,6 +60,11 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter
|
||||
/// </summary>
|
||||
public bool BreakOnTargetMove { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Threshold for user and target movement
|
||||
/// </summary>
|
||||
public float MovementThreshold { get; set; }
|
||||
|
||||
public bool BreakOnDamage { get; set; }
|
||||
public bool BreakOnStun { get; set; }
|
||||
|
||||
@@ -86,6 +91,7 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter
|
||||
Delay = delay;
|
||||
CancelToken = cancelToken;
|
||||
Target = target;
|
||||
MovementThreshold = 0.1f;
|
||||
|
||||
if (Target == null)
|
||||
{
|
||||
|
||||
100
Content.Server/GameObjects/EntitySystems/GodmodeSystem.cs
Normal file
100
Content.Server/GameObjects/EntitySystems/GodmodeSystem.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using Content.Server.GameObjects.Components.Atmos;
|
||||
using Content.Shared.GameObjects.Components.Damage;
|
||||
using Content.Shared.GameTicking;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects.Systems;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
|
||||
namespace Content.Server.GameObjects.EntitySystems
|
||||
{
|
||||
[UsedImplicitly]
|
||||
public class GodmodeSystem : EntitySystem, IResettingEntitySystem
|
||||
{
|
||||
private readonly Dictionary<IEntity, OldEntityInformation> _entities = new Dictionary<IEntity, OldEntityInformation>();
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
_entities.Clear();
|
||||
}
|
||||
|
||||
public bool EnableGodmode(IEntity entity)
|
||||
{
|
||||
if (_entities.ContainsKey(entity))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_entities[entity] = new OldEntityInformation(entity);
|
||||
|
||||
if (entity.TryGetComponent(out MovedByPressureComponent? moved))
|
||||
{
|
||||
moved.Enabled = false;
|
||||
}
|
||||
|
||||
if (entity.TryGetComponent(out IDamageableComponent? damageable))
|
||||
{
|
||||
damageable.AddFlag(DamageFlag.Invulnerable);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool HasGodmode(IEntity entity)
|
||||
{
|
||||
return _entities.ContainsKey(entity);
|
||||
}
|
||||
|
||||
public bool DisableGodmode(IEntity entity)
|
||||
{
|
||||
if (!_entities.Remove(entity, out var old))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (entity.TryGetComponent(out MovedByPressureComponent? moved))
|
||||
{
|
||||
moved.Enabled = old.MovedByPressure;
|
||||
}
|
||||
|
||||
if (entity.TryGetComponent(out IDamageableComponent? damageable))
|
||||
{
|
||||
damageable.RemoveFlag(DamageFlag.Invulnerable);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles godmode for a given entity.
|
||||
/// </summary>
|
||||
/// <param name="entity">The entity to toggle godmode for.</param>
|
||||
/// <returns>true if enabled, false if disabled.</returns>
|
||||
public bool ToggleGodmode(IEntity entity)
|
||||
{
|
||||
if (HasGodmode(entity))
|
||||
{
|
||||
DisableGodmode(entity);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
EnableGodmode(entity);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public class OldEntityInformation
|
||||
{
|
||||
public OldEntityInformation(IEntity entity)
|
||||
{
|
||||
Entity = entity;
|
||||
MovedByPressure = entity.IsMovedByPressure();
|
||||
}
|
||||
|
||||
public IEntity Entity { get; }
|
||||
public bool MovedByPressure { get; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -56,7 +56,8 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
foreach (var (moverComponent, collidableComponent) in EntityManager.ComponentManager.EntityQuery<IMoverComponent, IPhysicsComponent>())
|
||||
foreach (var (moverComponent, collidableComponent) in EntityManager.ComponentManager
|
||||
.EntityQuery<IMoverComponent, IPhysicsComponent>(false))
|
||||
{
|
||||
var entity = moverComponent.Owner;
|
||||
UpdateKinematics(entity.Transform, moverComponent, collidableComponent);
|
||||
@@ -141,24 +142,19 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
var grid = _mapManager.GetGrid(coordinates.GetGridId(EntityManager));
|
||||
var tile = grid.GetTileRef(coordinates);
|
||||
|
||||
// If the coordinates have a catwalk, it's always catwalk.
|
||||
string soundCollectionName;
|
||||
var catwalk = false;
|
||||
foreach (var maybeCatwalk in grid.GetSnapGridCell(tile.GridIndices, SnapGridOffset.Center))
|
||||
// If the coordinates have a FootstepModifier component
|
||||
// i.e. component that emit sound on footsteps emit that sound
|
||||
string? soundCollectionName = null;
|
||||
foreach (var maybeFootstep in grid.GetSnapGridCell(tile.GridIndices, SnapGridOffset.Center))
|
||||
{
|
||||
if (maybeCatwalk.Owner.HasComponent<CatwalkComponent>())
|
||||
if (maybeFootstep.Owner.TryGetComponent(out FootstepModifierComponent? footstep))
|
||||
{
|
||||
catwalk = true;
|
||||
soundCollectionName = footstep._soundCollectionName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (catwalk)
|
||||
{
|
||||
// Catwalk overrides tile sound.s
|
||||
soundCollectionName = "footstep_catwalk";
|
||||
}
|
||||
else
|
||||
// if there is no FootstepModifierComponent, determine sound based on tiles
|
||||
if (soundCollectionName == null)
|
||||
{
|
||||
// Walking on a tile.
|
||||
var def = (ContentTileDefinition) _tileDefinitionManager[tile.Tile.TypeId];
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"SubFloorHide",
|
||||
"LowWall",
|
||||
"ReinforcedWall",
|
||||
"CharacterInfo",
|
||||
"InteractionOutline",
|
||||
"MeleeWeaponArcAnimation",
|
||||
"AnimationsTest",
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Server.GameObjects.Components.Mobs;
|
||||
using Content.Server.Mobs.Roles;
|
||||
using Content.Server.Objectives;
|
||||
using Content.Server.Players;
|
||||
using Robust.Server.Interfaces.GameObjects;
|
||||
using Robust.Server.Interfaces.Player;
|
||||
@@ -27,6 +28,8 @@ namespace Content.Server.Mobs
|
||||
{
|
||||
private readonly ISet<Role> _roles = new HashSet<Role>();
|
||||
|
||||
private readonly List<ObjectivePrototype> _objectives = new List<ObjectivePrototype>();
|
||||
|
||||
/// <summary>
|
||||
/// Creates the new mind attached to a specific player session.
|
||||
/// </summary>
|
||||
@@ -74,6 +77,12 @@ namespace Content.Server.Mobs
|
||||
[ViewVariables]
|
||||
public IEnumerable<Role> AllRoles => _roles;
|
||||
|
||||
/// <summary>
|
||||
/// An enumerable over all the objectives this mind has.
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public IEnumerable<ObjectivePrototype> AllObjectives => _objectives;
|
||||
|
||||
/// <summary>
|
||||
/// The session of the player owning this mind.
|
||||
/// Can be null, in which case the player is currently not logged in.
|
||||
@@ -144,6 +153,32 @@ namespace Content.Server.Mobs
|
||||
return _roles.Any(role => role.GetType() == t);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds an objective to this mind.
|
||||
/// </summary>
|
||||
public bool TryAddObjective(ObjectivePrototype objective)
|
||||
{
|
||||
if (!objective.CanBeAssigned(this))
|
||||
return false;
|
||||
_objectives.Add(objective);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes an objective to this mind.
|
||||
/// </summary>
|
||||
/// <returns>Returns true if the removal succeeded.</returns>
|
||||
public bool TryRemoveObjective(int index)
|
||||
{
|
||||
if (_objectives.Count >= index) return false;
|
||||
|
||||
var objective = _objectives[index];
|
||||
_objectives.Remove(objective);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Transfer this mind's control over to a new entity.
|
||||
/// </summary>
|
||||
|
||||
139
Content.Server/Objectives/Commands.cs
Normal file
139
Content.Server/Objectives/Commands.cs
Normal file
@@ -0,0 +1,139 @@
|
||||
#nullable enable
|
||||
using System.Linq;
|
||||
using Content.Server.Administration;
|
||||
using Content.Server.Players;
|
||||
using Content.Shared.Administration;
|
||||
using Robust.Server.Interfaces.Console;
|
||||
using Robust.Server.Interfaces.Player;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.Objectives
|
||||
{
|
||||
[AdminCommand(AdminFlags.Admin)]
|
||||
public class AddObjectiveCommand : IClientCommand
|
||||
{
|
||||
public string Command => "addobjective";
|
||||
public string Description => "Adds an objective to the player's mind.";
|
||||
public string Help => "addobjective <username> <objectiveID>";
|
||||
public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args)
|
||||
{
|
||||
if (args.Length != 2)
|
||||
{
|
||||
shell.SendText(player, "Expected exactly 2 arguments.");
|
||||
return;
|
||||
}
|
||||
|
||||
var mgr = IoCManager.Resolve<IPlayerManager>();
|
||||
if (!mgr.TryGetPlayerDataByUsername(args[0], out var data))
|
||||
{
|
||||
shell.SendText(player, "Can't find the playerdata.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var mind = data.ContentData()?.Mind;
|
||||
if (mind == null)
|
||||
{
|
||||
shell.SendText(player, "Can't find the mind.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IoCManager.Resolve<IPrototypeManager>()
|
||||
.TryIndex<ObjectivePrototype>(args[1], out var objectivePrototype))
|
||||
{
|
||||
shell.SendText(player, $"Can't find matching ObjectivePrototype {objectivePrototype}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mind.TryAddObjective(objectivePrototype))
|
||||
{
|
||||
shell.SendText(player, "Objective requirements dont allow that objective to be added.");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[AdminCommand(AdminFlags.Admin)]
|
||||
public class ListObjectivesCommand : IClientCommand
|
||||
{
|
||||
public string Command => "lsobjectives";
|
||||
public string Description => "Lists all objectives in a players mind.";
|
||||
public string Help => "lsobjectives [<username>]";
|
||||
public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args)
|
||||
{
|
||||
IPlayerData? data;
|
||||
if (args.Length == 0 && player != null)
|
||||
{
|
||||
data = player.Data;
|
||||
}
|
||||
else if (player == null || !IoCManager.Resolve<IPlayerManager>().TryGetPlayerDataByUsername(args[0], out data))
|
||||
{
|
||||
shell.SendText(player, "Can't find the playerdata.");
|
||||
return;
|
||||
}
|
||||
|
||||
var mind = data.ContentData()?.Mind;
|
||||
if (mind == null)
|
||||
{
|
||||
shell.SendText(player, "Can't find the mind.");
|
||||
return;
|
||||
}
|
||||
|
||||
shell.SendText(player, $"Objectives for player {data.UserId}:");
|
||||
var objectives = mind.AllObjectives.ToList();
|
||||
if (objectives.Count == 0)
|
||||
{
|
||||
shell.SendText(player, "None.");
|
||||
}
|
||||
for (var i = 0; i < objectives.Count; i++)
|
||||
{
|
||||
shell.SendText(player, $"- [{i}] {objectives[i]}");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[AdminCommand(AdminFlags.Admin)]
|
||||
public class RemoveObjectiveCommand : IClientCommand
|
||||
{
|
||||
public string Command => "rmobjective";
|
||||
public string Description => "Removes an objective from the player's mind.";
|
||||
public string Help => "rmobjective <username> <index>";
|
||||
public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args)
|
||||
{
|
||||
if (args.Length != 2)
|
||||
{
|
||||
shell.SendText(player, "Expected exactly 2 arguments.");
|
||||
return;
|
||||
}
|
||||
|
||||
var mgr = IoCManager.Resolve<IPlayerManager>();
|
||||
if (mgr.TryGetPlayerDataByUsername(args[0], out var data))
|
||||
{
|
||||
var mind = data.ContentData()?.Mind;
|
||||
if (mind == null)
|
||||
{
|
||||
shell.SendText(player, "Can't find the mind.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (int.TryParse(args[1], out var i))
|
||||
{
|
||||
shell.SendText(player,
|
||||
mind.TryRemoveObjective(i)
|
||||
? "Objective successfully removed!"
|
||||
: "Objective removing failed. Maybe the index is out of bounds? Check lsobjectives!");
|
||||
}
|
||||
else
|
||||
{
|
||||
shell.SendText(player, $"Invalid index {args[1]}!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
shell.SendText(player, "Can't find the playerdata.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
57
Content.Server/Objectives/Conditions/StealCondition.cs
Normal file
57
Content.Server/Objectives/Conditions/StealCondition.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
#nullable enable
|
||||
using Content.Server.GameObjects.Components.ContainerExt;
|
||||
using Content.Server.Mobs;
|
||||
using Content.Server.Objectives.Interfaces;
|
||||
using Robust.Server.GameObjects.Components.Container;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.Objectives.Conditions
|
||||
{
|
||||
public class StealCondition : IObjectiveCondition
|
||||
{
|
||||
public string PrototypeId { get; private set; } = default!;
|
||||
public int Amount { get; private set; }
|
||||
|
||||
public void ExposeData(ObjectSerializer serializer)
|
||||
{
|
||||
serializer.DataField(this, x => x.PrototypeId, "prototype", "");
|
||||
serializer.DataField(this, x => x.Amount, "amount", 1);
|
||||
|
||||
if (Amount < 1)
|
||||
{
|
||||
Logger.Error("StealCondition has an amount less than 1 ({0})", Amount);
|
||||
}
|
||||
}
|
||||
|
||||
private string PrototypeName =>
|
||||
IoCManager.Resolve<IPrototypeManager>().TryIndex<EntityPrototype>(PrototypeId, out var prototype)
|
||||
? prototype.Name
|
||||
: "[CANNOT FIND NAME]";
|
||||
|
||||
public string GetTitle() => Loc.GetString("Steal {0} {1}", Amount > 1 ? $"{Amount}x" : "", Loc.GetString(PrototypeName));
|
||||
|
||||
public string GetDescription() => Loc.GetString("We need you to steal {0}. Don't get caught.", Loc.GetString(PrototypeName));
|
||||
|
||||
public SpriteSpecifier GetIcon()
|
||||
{
|
||||
return new SpriteSpecifier.EntityPrototype(PrototypeId);
|
||||
}
|
||||
|
||||
public float GetProgress(Mind? mind)
|
||||
{
|
||||
if (mind?.OwnedEntity == null) return 0f;
|
||||
if (!mind.OwnedEntity.TryGetComponent<ContainerManagerComponent>(out var containerManagerComponent)) return 0f;
|
||||
|
||||
float count = containerManagerComponent.CountPrototypeOccurencesRecursive(PrototypeId);
|
||||
return count/Amount;
|
||||
}
|
||||
|
||||
public float GetDifficulty() => 1f;
|
||||
}
|
||||
}
|
||||
35
Content.Server/Objectives/Interfaces/IObjectiveCondition.cs
Normal file
35
Content.Server/Objectives/Interfaces/IObjectiveCondition.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Content.Server.Mobs;
|
||||
using Robust.Shared.Interfaces.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.Objectives.Interfaces
|
||||
{
|
||||
public interface IObjectiveCondition : IExposeData
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the title of the condition.
|
||||
/// </summary>
|
||||
string GetTitle();
|
||||
|
||||
/// <summary>
|
||||
/// Returns the description of the condition.
|
||||
/// </summary>
|
||||
string GetDescription();
|
||||
|
||||
/// <summary>
|
||||
/// Returns a SpriteSpecifier to be used as an icon for the condition.
|
||||
/// </summary>
|
||||
SpriteSpecifier GetIcon();
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current progress of the condition in %.
|
||||
/// </summary>
|
||||
/// <returns>Current progress in %.</returns>
|
||||
float GetProgress(Mind mind);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a difficulty of the condition.
|
||||
/// </summary>
|
||||
float GetDifficulty();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using Content.Server.Mobs;
|
||||
using Robust.Shared.Interfaces.Serialization;
|
||||
|
||||
namespace Content.Server.Objectives.Interfaces
|
||||
{
|
||||
public interface IObjectiveRequirement : IExposeData
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether or not the entity & its surroundings are valid to be given the objective.
|
||||
/// </summary>
|
||||
/// <returns>Returns true if objective can be given.</returns>
|
||||
bool CanBeAssigned(Mind mind);
|
||||
}
|
||||
}
|
||||
17
Content.Server/Objectives/Interfaces/IObjectivesManager.cs
Normal file
17
Content.Server/Objectives/Interfaces/IObjectivesManager.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using Content.Server.Mobs;
|
||||
|
||||
namespace Content.Server.Objectives.Interfaces
|
||||
{
|
||||
public interface IObjectivesManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns all objectives the provided mind is valid for.
|
||||
/// </summary>
|
||||
ObjectivePrototype[] GetAllPossibleObjectives(Mind mind);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a randomly picked (no pop) collection of objectives the provided mind is valid for.
|
||||
/// </summary>
|
||||
ObjectivePrototype[] GetRandomObjectives(Mind mind, float maxDifficulty = 3f);
|
||||
}
|
||||
}
|
||||
60
Content.Server/Objectives/ObjectivePrototype.cs
Normal file
60
Content.Server/Objectives/ObjectivePrototype.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Server.Mobs;
|
||||
using Content.Server.Objectives.Interfaces;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.ViewVariables;
|
||||
using YamlDotNet.RepresentationModel;
|
||||
|
||||
namespace Content.Server.Objectives
|
||||
{
|
||||
[Prototype("objective")]
|
||||
public class ObjectivePrototype : IPrototype, IIndexedPrototype
|
||||
{
|
||||
[ViewVariables]
|
||||
public string ID { get; private set; }
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public string Issuer { get; private set; }
|
||||
|
||||
[ViewVariables]
|
||||
public float Probability { get; private set; }
|
||||
|
||||
[ViewVariables]
|
||||
public IReadOnlyList<IObjectiveCondition> Conditions => _conditions;
|
||||
[ViewVariables]
|
||||
public IReadOnlyList<IObjectiveRequirement> Requirements => _requirements;
|
||||
|
||||
[ViewVariables]
|
||||
public float Difficulty => _difficultyOverride ?? _conditions.Sum(c => c.GetDifficulty());
|
||||
|
||||
private List<IObjectiveCondition> _conditions = new List<IObjectiveCondition>();
|
||||
private List<IObjectiveRequirement> _requirements = new List<IObjectiveRequirement>();
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private float? _difficultyOverride = null;
|
||||
|
||||
public bool CanBeAssigned(Mind mind)
|
||||
{
|
||||
foreach (var requirement in _requirements)
|
||||
{
|
||||
if (!requirement.CanBeAssigned(mind)) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void LoadFrom(YamlMappingNode mapping)
|
||||
{
|
||||
var ser = YamlObjectSerializer.NewReader(mapping);
|
||||
|
||||
ser.DataField(this, x => x.ID, "id", string.Empty);
|
||||
ser.DataField(this, x => x.Issuer, "issuer", "Unknown");
|
||||
ser.DataField(this, x => x.Probability, "prob", 0.3f);
|
||||
ser.DataField(this, x => x._conditions, "conditions", new List<IObjectiveCondition>());
|
||||
ser.DataField(this, x => x._requirements, "requirements", new List<IObjectiveRequirement>());
|
||||
ser.DataField(this, x => x._difficultyOverride, "difficultyOverride", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
53
Content.Server/Objectives/ObjectivesManager.cs
Normal file
53
Content.Server/Objectives/ObjectivesManager.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Server.Mobs;
|
||||
using Content.Server.Objectives.Interfaces;
|
||||
using Robust.Shared.Interfaces.Random;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.Objectives
|
||||
{
|
||||
public class ObjectivesManager : IObjectivesManager
|
||||
{
|
||||
[Dependency] private IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private IRobustRandom _random = default!;
|
||||
|
||||
public ObjectivePrototype[] GetAllPossibleObjectives(Mind mind)
|
||||
{
|
||||
return _prototypeManager.EnumeratePrototypes<ObjectivePrototype>().Where(objectivePrototype => objectivePrototype.CanBeAssigned(mind)).ToArray();
|
||||
}
|
||||
|
||||
public ObjectivePrototype[] GetRandomObjectives(Mind mind, float maxDifficulty = 3)
|
||||
{
|
||||
var objectives = GetAllPossibleObjectives(mind);
|
||||
|
||||
//to prevent endless loops
|
||||
if(objectives.Length == 0 || objectives.Sum(o => o.Difficulty) == 0f) return objectives;
|
||||
|
||||
var result = new List<ObjectivePrototype>();
|
||||
var currentDifficulty = 0f;
|
||||
_random.Shuffle(objectives);
|
||||
while (currentDifficulty < maxDifficulty)
|
||||
{
|
||||
foreach (var objective in objectives)
|
||||
{
|
||||
if (!_random.Prob(objective.Probability)) continue;
|
||||
|
||||
result.Add(objective);
|
||||
currentDifficulty += objective.Difficulty;
|
||||
if (currentDifficulty >= maxDifficulty) break;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentDifficulty > maxDifficulty) //will almost always happen
|
||||
{
|
||||
result.Pop();
|
||||
}
|
||||
|
||||
return result.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using Content.Server.Mobs;
|
||||
using Content.Server.Mobs.Roles.Suspicion;
|
||||
using Content.Server.Objectives.Interfaces;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Server.Objectives.Requirements
|
||||
{
|
||||
public class SuspicionTraitorRequirement : IObjectiveRequirement
|
||||
{
|
||||
public void ExposeData(ObjectSerializer serializer){}
|
||||
|
||||
public bool CanBeAssigned(Mind mind)
|
||||
{
|
||||
return mind.HasRole<SuspicionTraitorRole>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,8 @@ using Content.Server.Interfaces;
|
||||
using Content.Server.Interfaces.Chat;
|
||||
using Content.Server.Interfaces.GameTicking;
|
||||
using Content.Server.Interfaces.PDA;
|
||||
using Content.Server.Objectives;
|
||||
using Content.Server.Objectives.Interfaces;
|
||||
using Content.Server.PDA;
|
||||
using Content.Server.Preferences;
|
||||
using Content.Server.Sandbox;
|
||||
@@ -49,6 +51,7 @@ namespace Content.Server
|
||||
IoCManager.Register<ConsiderationsManager, ConsiderationsManager>();
|
||||
IoCManager.Register<IAccentManager, AccentManager>();
|
||||
IoCManager.Register<IConnectionManager, ConnectionManager>();
|
||||
IoCManager.Register<IObjectivesManager, ObjectivesManager>();
|
||||
IoCManager.Register<IAdminManager, AdminManager>();
|
||||
IoCManager.Register<IDeviceNetwork, DeviceNetwork>();
|
||||
IoCManager.Register<EuiManager, EuiManager>();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<!-- Work around https://github.com/dotnet/project-system/issues/4314 -->
|
||||
<TargetFramework>$(TargetFramework)</TargetFramework>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<OutputPath>../bin/Content.Shared</OutputPath>
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Content.Shared.Objectives;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.GameObjects.Components.Actor
|
||||
{
|
||||
public class SharedCharacterInfoComponent : Component
|
||||
{
|
||||
public override string Name => "CharacterInfo";
|
||||
public override uint? NetID => ContentNetIDs.CHARACTERINFO;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
protected class RequestCharacterInfoMessage : ComponentMessage
|
||||
{
|
||||
public RequestCharacterInfoMessage()
|
||||
{
|
||||
Directed = true;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
protected class CharacterInfoMessage : ComponentMessage
|
||||
{
|
||||
public readonly Dictionary<string, List<ConditionInfo>> Objectives;
|
||||
public readonly string JobTitle;
|
||||
|
||||
public CharacterInfoMessage(string jobTitle, Dictionary<string, List<ConditionInfo>> objectives)
|
||||
{
|
||||
Directed = true;
|
||||
JobTitle = jobTitle;
|
||||
Objectives = objectives;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
@@ -59,7 +59,9 @@ namespace Content.Shared.GameObjects.Components
|
||||
|
||||
public bool BreakOnTargetMove { get; }
|
||||
|
||||
public ClientDoAfter(byte id, EntityCoordinates userGrid, EntityCoordinates targetGrid, TimeSpan startTime, float delay, bool breakOnUserMove, bool breakOnTargetMove, EntityUid targetUid = default)
|
||||
public float MovementThreshold { get; }
|
||||
|
||||
public ClientDoAfter(byte id, EntityCoordinates userGrid, EntityCoordinates targetGrid, TimeSpan startTime, float delay, bool breakOnUserMove, bool breakOnTargetMove, float movementThreshold, EntityUid targetUid = default)
|
||||
{
|
||||
ID = id;
|
||||
UserGrid = userGrid;
|
||||
@@ -68,6 +70,7 @@ namespace Content.Shared.GameObjects.Components
|
||||
Delay = delay;
|
||||
BreakOnUserMove = breakOnUserMove;
|
||||
BreakOnTargetMove = breakOnTargetMove;
|
||||
MovementThreshold = movementThreshold;
|
||||
TargetUid = targetUid;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
public const uint PULLABLE = 1078;
|
||||
public const uint GAS_TANK = 1079;
|
||||
public const uint SINGULARITY = 1080;
|
||||
public const uint CHARACTERINFO = 1081;
|
||||
|
||||
// Net IDs for integration tests.
|
||||
public const uint PREDICTION_TEST = 10001;
|
||||
|
||||
@@ -49,7 +49,8 @@ namespace Content.Shared.GameObjects.EntitySystems
|
||||
base.Shutdown();
|
||||
}
|
||||
|
||||
protected void UpdateKinematics(ITransformComponent transform, IMoverComponent mover, IPhysicsComponent physics)
|
||||
//TODO: reorganize this to make more logical sense
|
||||
protected void UpdateKinematics(ITransformComponent transform, IMoverComponent mover, IPhysicsComponent physics)
|
||||
{
|
||||
physics.EnsureController<MoverController>();
|
||||
|
||||
@@ -70,14 +71,14 @@ namespace Content.Shared.GameObjects.EntitySystems
|
||||
// TODO: movement check.
|
||||
var (walkDir, sprintDir) = mover.VelocityDir;
|
||||
var combined = walkDir + sprintDir;
|
||||
if (combined.LengthSquared < 0.001 || !ActionBlockerSystem.CanMove(mover.Owner) && !weightless)
|
||||
if (combined.LengthSquared < 0.001 || !ActionBlockerSystem.CanMove(mover.Owner) && !weightless)
|
||||
{
|
||||
if (physics.TryGetController(out MoverController controller))
|
||||
{
|
||||
controller.StopMoving();
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (ActionBlockerSystem.CanMove(mover.Owner))
|
||||
{
|
||||
if (weightless)
|
||||
{
|
||||
|
||||
23
Content.Shared/Objectives/ConditionInfo.cs
Normal file
23
Content.Shared/Objectives/ConditionInfo.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared.Objectives
|
||||
{
|
||||
[Serializable, NetSerializable]
|
||||
public class ConditionInfo
|
||||
{
|
||||
public string Title { get; }
|
||||
public string Description { get; }
|
||||
public SpriteSpecifier SpriteSpecifier { get; }
|
||||
public float Progress { get; }
|
||||
|
||||
public ConditionInfo(string title, string description, SpriteSpecifier spriteSpecifier, float progress)
|
||||
{
|
||||
Title = title;
|
||||
Description = description;
|
||||
SpriteSpecifier = spriteSpecifier;
|
||||
Progress = progress;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<!-- Work around https://github.com/dotnet/project-system/issues/4314 -->
|
||||
<TargetFramework>$(TargetFramework)</TargetFramework>
|
||||
<LangVersion>8</LangVersion>
|
||||
<LangVersion>9</LangVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<OutputPath>..\bin\Content.Tests\</OutputPath>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta:
|
||||
format: 2
|
||||
name: DemoStation
|
||||
author: Space-Wizards
|
||||
name: Saltern
|
||||
author: Buncha sickass mfers
|
||||
postmapinit: false
|
||||
tilemap:
|
||||
0: space
|
||||
@@ -474,7 +474,7 @@ entities:
|
||||
rot: -1.5707963267948966 rad
|
||||
type: Transform
|
||||
- uid: 52
|
||||
type: ShoesCoder
|
||||
type: ClothingUnderSocksCoder
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 47.437466,-6.6893435
|
||||
@@ -490,14 +490,14 @@ entities:
|
||||
- useSound: /Audio/Items/jaws_pry.ogg
|
||||
type: Tool
|
||||
- uid: 54
|
||||
type: GlovesLatex
|
||||
type: ClothingHandsGlovesLatex
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 22.086878,-4.4133806
|
||||
rot: -1.5707963267948966 rad
|
||||
type: Transform
|
||||
- uid: 55
|
||||
type: GlovesLatex
|
||||
type: ClothingHandsGlovesLatex
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 21.618128,-4.4133806
|
||||
@@ -712,14 +712,14 @@ entities:
|
||||
rot: -1.5707963267948966 rad
|
||||
type: Transform
|
||||
- uid: 82
|
||||
type: Bling
|
||||
type: ClothingNeckBling
|
||||
components:
|
||||
- parent: 855
|
||||
pos: -2.861164,18.612366
|
||||
rot: -1.5707963267948966 rad
|
||||
type: Transform
|
||||
- uid: 83
|
||||
type: Bling
|
||||
type: ClothingNeckBling
|
||||
components:
|
||||
- parent: 855
|
||||
pos: -2.564289,18.643616
|
||||
@@ -971,19 +971,19 @@ entities:
|
||||
type: Content.Server.GameObjects.ContainerSlot
|
||||
type: ContainerContainer
|
||||
- uid: 117
|
||||
type: HatHardhatYellow
|
||||
type: ClothingHeadHatHardhatYellow
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 31.357727,-4.36431
|
||||
type: Transform
|
||||
- uid: 118
|
||||
type: HatHardhatWhite
|
||||
type: ClothingHeadHatHardhatWhite
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 31.623352,-4.14556
|
||||
type: Transform
|
||||
- uid: 119
|
||||
type: HatHardhatRed
|
||||
type: ClothingHeadHatHardhatRed
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 31.201477,-4.05181
|
||||
@@ -47190,7 +47190,7 @@ entities:
|
||||
rot: -1.5707963267948966 rad
|
||||
type: Transform
|
||||
- uid: 4144
|
||||
type: MaskJoy
|
||||
type: ClothingMaskJoy
|
||||
components:
|
||||
- parent: 855
|
||||
pos: 13.418978,24.555822
|
||||
|
||||
@@ -1977,7 +1977,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 225
|
||||
type: OuterclothingVest
|
||||
type: ClothingOuterVest
|
||||
components:
|
||||
- parent: 216
|
||||
pos: 1.412994,7.507263
|
||||
@@ -2973,7 +2973,7 @@ entities:
|
||||
rot: -1.5707963267949 rad
|
||||
type: Transform
|
||||
- uid: 361
|
||||
type: OuterclothingVest
|
||||
type: ClothingOuterVest
|
||||
components:
|
||||
- parent: 216
|
||||
pos: 0.5223687,7.507263
|
||||
@@ -3874,7 +3874,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 473
|
||||
type: UniformEngineering
|
||||
type: ClothingUniformJumpsuitEngineering
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -0.6474335,-10.27245
|
||||
@@ -3883,7 +3883,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 474
|
||||
type: GasMaskClothing
|
||||
type: ClothingMaskGas
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -0.2880585,-10.69432
|
||||
@@ -3892,7 +3892,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 475
|
||||
type: OuterclothingVest
|
||||
type: ClothingOuterVest
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -0.9130585,-10.66307
|
||||
@@ -3901,7 +3901,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 476
|
||||
type: UtilityBeltClothingFilled
|
||||
type: ClothingBeltUtilityFilled
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -1.895102,-10.33495
|
||||
@@ -3914,7 +3914,7 @@ entities:
|
||||
type: Robust.Server.GameObjects.Components.Container.Container
|
||||
type: ContainerContainer
|
||||
- uid: 477
|
||||
type: UtilityBeltClothingFilled
|
||||
type: ClothingBeltUtilityFilled
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -1.770102,-10.63182
|
||||
@@ -3972,7 +3972,7 @@ entities:
|
||||
type: Robust.Server.GameObjects.Components.Container.Container
|
||||
type: ContainerContainer
|
||||
- uid: 481
|
||||
type: BackpackClothing
|
||||
type: ClothingBackpack
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -5.089887,7.591276
|
||||
@@ -3985,7 +3985,7 @@ entities:
|
||||
type: Robust.Server.GameObjects.Components.Container.Container
|
||||
type: ContainerContainer
|
||||
- uid: 482
|
||||
type: BackpackClothing
|
||||
type: ClothingBackpack
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -4.683637,7.606901
|
||||
@@ -3998,7 +3998,7 @@ entities:
|
||||
type: Robust.Server.GameObjects.Components.Container.Container
|
||||
type: ContainerContainer
|
||||
- uid: 483
|
||||
type: GlovesBlack
|
||||
type: ClothingHandsGlovesColorBlack
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -3.386762,7.466276
|
||||
@@ -4348,7 +4348,7 @@ entities:
|
||||
rot: -1.5707963267949 rad
|
||||
type: Transform
|
||||
- uid: 527
|
||||
type: GlovesLeather
|
||||
type: ClothingHandsGlovesLeather
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -4.332221,4.64238
|
||||
@@ -4357,7 +4357,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 528
|
||||
type: GlovesLeather
|
||||
type: ClothingHandsGlovesLeather
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -3.519721,4.64238
|
||||
@@ -4366,7 +4366,7 @@ entities:
|
||||
- anchored: False
|
||||
type: Physics
|
||||
- uid: 529
|
||||
type: GlovesLeather
|
||||
type: ClothingHandsGlovesLeather
|
||||
components:
|
||||
- parent: 216
|
||||
pos: -2.597846,4.61113
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BackpackClothing
|
||||
id: BackpackClothingFilled
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackFilled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
@@ -9,8 +9,8 @@
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: ClownPack
|
||||
id: ClownPackFilled
|
||||
parent: ClothingBackpackClown
|
||||
id: ClothingBackpackClownFilled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
@@ -18,8 +18,8 @@
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: SecPack
|
||||
id: SecPackFilled
|
||||
parent: ClothingBackpackSecurity
|
||||
id: ClothingBackpackSecurityFilled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BackpackMedical
|
||||
id: BackpackMedicalFilled
|
||||
parent: ClothingBackpackMedical
|
||||
id: ClothingBackpackMedicalFilled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
@@ -38,8 +38,8 @@
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BackpackCaptain
|
||||
id: BackpackCaptainFilled
|
||||
parent: ClothingBackpackCaptain
|
||||
id: ClothingBackpackCaptainFilled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
@@ -49,8 +49,8 @@
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BackpackEngineering
|
||||
id: BackpackEngineeringFilled
|
||||
parent: ClothingBackpackEngineering
|
||||
id: ClothingBackpackEngineeringFilled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
- type: entity
|
||||
id: UtilityBeltClothingFilled #Change to ClothingBeltUtilityFilled
|
||||
parent: UtilityBeltClothing #Change to ClothingBeltUtility
|
||||
id: ClothingBeltUtilityFilled
|
||||
parent: ClothingBeltUtility
|
||||
description: "Holds tools."
|
||||
suffix: Filled
|
||||
components:
|
||||
@@ -13,17 +13,6 @@
|
||||
- name: Welder
|
||||
- name: Multitool
|
||||
|
||||
- type: entity
|
||||
id: UtilityBeltClothingFilledEvent
|
||||
parent: UtilityBeltClothing
|
||||
suffix: Filled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: Crowbar
|
||||
- name: Screwdriver
|
||||
- name: Multitool
|
||||
|
||||
- type: entity
|
||||
id: ClothingBeltChiefEngineerFilled
|
||||
parent: ClothingBeltChiefEngineer
|
||||
@@ -44,7 +33,6 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: SecGlasses
|
||||
- name: GrenadeFlashBang
|
||||
- name: GrenadeFlashBang
|
||||
- name: Stunbaton
|
||||
@@ -60,6 +48,6 @@
|
||||
contents:
|
||||
- name: Soap #Make a soap group and pick between when i'm not lazy
|
||||
- name: SprayBottleSpaceCleaner
|
||||
- name: # GrenadeChem
|
||||
- name: # GrenadeChem
|
||||
#- name: GrenadeChem
|
||||
#- name: GrenadeChem
|
||||
- name: FlashlightLantern
|
||||
16
Resources/Prototypes/Catalog/Fills/duffel.yml
Normal file
16
Resources/Prototypes/Catalog/Fills/duffel.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
- type: entity
|
||||
parent: ClothingBackpackDuffelMedical
|
||||
id: ClothingBackpackDuffelSurgeryFilled
|
||||
name: surgical duffel bag
|
||||
description: "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools."
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: Hemostat
|
||||
- name: BoneSaw
|
||||
- name: Drill
|
||||
- name: Cautery
|
||||
- name: Retractor
|
||||
- name: Scalpel
|
||||
- type: Storage
|
||||
capacity: 30
|
||||
@@ -5,7 +5,7 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: OuterclothingHazard
|
||||
- name: ClothingOuterVestHazard
|
||||
prob: 0.4
|
||||
- name: FlashlightLantern
|
||||
prob: 0.7
|
||||
@@ -21,11 +21,11 @@
|
||||
prob: 0.7
|
||||
- name: Multitool
|
||||
prob: 0.2
|
||||
- name: UtilityBeltClothing
|
||||
- name: ClothingBeltUtility
|
||||
prob: 0.2
|
||||
- name: GlovesYellow
|
||||
- name: ClothingHandsGlovesColorYellow
|
||||
prob: 0.05
|
||||
- name: HatHardhatRed
|
||||
- name: ClothingHeadHatHardhatRed
|
||||
prob: 0.4
|
||||
- name: ApcExtensionCableStack
|
||||
prob: 0.3
|
||||
@@ -43,9 +43,9 @@
|
||||
contents:
|
||||
- name: ToolboxEmergencyFilled
|
||||
prob: 0.4
|
||||
- name: BreathMaskClothing
|
||||
- name: ClothingMaskBreath
|
||||
prob: 0.4
|
||||
- name: BreathMaskClothing
|
||||
- name: ClothingMaskBreath
|
||||
prob: 0.25
|
||||
- name: EmergencyOxygenTankFilled
|
||||
prob: 0.4
|
||||
@@ -79,9 +79,9 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: HelmetHardsuitCE
|
||||
- name: HardsuitCE
|
||||
- name: BreathMaskClothing
|
||||
- name: ClothingHeadHelmetHardsuitEngineeringWhite
|
||||
- name: ClothingOuterHardsuitEngineeringWhite
|
||||
- name: ClothingMaskBreath
|
||||
- name: OxygenTankFilled
|
||||
|
||||
- type: entity
|
||||
@@ -101,9 +101,9 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: HelmetHardsuitAtmos
|
||||
- name: HardsuitAtmos
|
||||
- name: BreathMaskClothing
|
||||
- name: ClothingHeadHelmetHardsuitAtmos
|
||||
- name: ClothingOuterHardsuitAtmos
|
||||
- name: ClothingMaskBreath
|
||||
- name: OxygenTankFilled
|
||||
|
||||
- type: entity
|
||||
@@ -113,9 +113,9 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: HelmetHardsuitEngineering
|
||||
- name: HardsuitEngineering
|
||||
- name: BreathMaskClothing
|
||||
- name: ClothingHeadHelmetHardsuitEngineering
|
||||
- name: ClothingOuterHardsuitEngineering
|
||||
- name: ClothingMaskBreath
|
||||
- name: OxygenTankFilled
|
||||
|
||||
- type: entity
|
||||
@@ -135,7 +135,7 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: GlovesLatex
|
||||
- name: ClothingHandsGlovesLatex
|
||||
prob: 0.4
|
||||
|
||||
- type: entity
|
||||
@@ -241,7 +241,7 @@
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: GlovesLatex
|
||||
- name: ClothingHandsGlovesLatex
|
||||
prob: 0.4
|
||||
|
||||
- type: entity
|
||||
@@ -328,7 +328,7 @@
|
||||
contents:
|
||||
- name: RedOxygenTankFilled
|
||||
prob: 0.6
|
||||
- name: OuterclothingFiresuit
|
||||
- name: ClothingOuterSuitFire
|
||||
prob: 0.75
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -4,13 +4,10 @@
|
||||
description: "A vending machine containing religious supplies and clothing. A label reads: \"A holy vendor for a pious man.\""
|
||||
spriteName: chapel
|
||||
startingInventory:
|
||||
OuterclothingChaplainhoodie: 1
|
||||
OuterclothingAcolyte: 4
|
||||
OuterclothingBedsheet: 4
|
||||
OuterclothingBlackhoodie: 1
|
||||
OuterclothingChurchcoat: 1
|
||||
OuterclothingCultrobes: 1
|
||||
OuterclothingCultarmour: 1
|
||||
HatChaplainHood: 1
|
||||
HatCulthood: 1
|
||||
HatCultHelmet: 1
|
||||
ClothingOuterHoodieChaplain: 1
|
||||
ClothingOuterHoodieBlack: 1
|
||||
ClothingOuterRobesCult: 1
|
||||
ClothingOuterArmorCult: 1
|
||||
ClothingHeadHatHoodChaplainHood: 1
|
||||
ClothingHeadHatHoodCulthood: 1
|
||||
ClothingHeadHelmetCult: 1
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
animationDuration: 2.1
|
||||
spriteName: engivend
|
||||
startingInventory:
|
||||
MesonGlasses: 4
|
||||
ClothingEyesGlassesMeson: 4
|
||||
Multitool: 4
|
||||
PowerCellSmallHigh: 5
|
||||
|
||||
@@ -4,22 +4,19 @@
|
||||
description: A vending machine containing hats.
|
||||
spriteName: hats
|
||||
startingInventory:
|
||||
HatBandana: 3
|
||||
HatBandblack: 3
|
||||
HatBandblue: 3
|
||||
HatBandbotany: 3
|
||||
HatBandcamo: 3
|
||||
HatBandgreen: 3
|
||||
HatBandred: 3
|
||||
HatBandskull: 3
|
||||
HatBearpelt: 3
|
||||
HatBeret: 3
|
||||
HatBluesoft: 3
|
||||
HatBluesoftFlipped: 3
|
||||
HatBowler: 3
|
||||
HatBunny: 3
|
||||
HatCake: 3
|
||||
HatCargosoft: 3
|
||||
HatCentcom: 3
|
||||
HatChefhat: 3
|
||||
HatCowboy: 3
|
||||
HatBandBlack: 3
|
||||
HatBandBlue: 3
|
||||
HatBandBotany: 3
|
||||
HatBandGreen: 3
|
||||
HatBandRed: 3
|
||||
HatBandSkull: 3
|
||||
ClothingHeadHatBearpelt: 3
|
||||
ClothingHeadHatBeret: 3
|
||||
ClothingHeadHatBluesoft: 3
|
||||
ClothingHeadHatBluesoftFlipped: 3
|
||||
ClothingHeadHatBowlerHat: 3
|
||||
ClothingHeadHatBunny: 3
|
||||
ClothingHeadHatCake: 3
|
||||
ClothingHeadHatCargosoft: 3
|
||||
ClothingHeadHatCentcom: 3
|
||||
ClothingHeadHatChef: 3
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
description: A vending machine containing footwear.
|
||||
spriteName: shoes
|
||||
startingInventory:
|
||||
ShoesWhite: 3
|
||||
ShoesClown: 3
|
||||
ShoesJackboots: 3
|
||||
ShoesBrown: 3
|
||||
ClothingShoesColorWhite: 3
|
||||
ClothingShoesClown: 3
|
||||
ClothingShoesBootsJack: 3
|
||||
ClothingShoesColorBrown: 3
|
||||
|
||||
@@ -4,12 +4,11 @@
|
||||
description: A vending machine containing jumpsuits and dress garments.
|
||||
spriteName: suits
|
||||
startingInventory:
|
||||
UniformJanitor: 3
|
||||
UniformColorGrey: 3
|
||||
UniformEngineering: 3
|
||||
UniformAssistant: 3
|
||||
UniformClown: 3
|
||||
UniformSec: 3
|
||||
UniformChef: 3
|
||||
UniformCaptain: 3
|
||||
ClothingUniformJumpsuitJanitor: 3
|
||||
ClothingUniformJumpsuitColorGrey: 3
|
||||
ClothingUniformJumpsuitEngineering: 3
|
||||
ClothingUniformJumpsuitClown: 3
|
||||
ClothingUniformJumpsuitSec: 3
|
||||
ClothingUniformJumpsuitChef: 3
|
||||
ClothingUniformJumpsuitCaptain: 3
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: BackpackClothing
|
||||
id: ClothingBackpack
|
||||
name: backpack
|
||||
description: You wear this on your back and put items into it.
|
||||
components:
|
||||
@@ -17,106 +17,96 @@
|
||||
capacity: 100
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: ClownPack
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackClown
|
||||
name: giggles von honkerton
|
||||
description: It's a backpack made by Honk! Co.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/clown.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/clown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: SecPack
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackSecurity
|
||||
name: security backpack
|
||||
description: It's a very robust backpack.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/security.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/security.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackEngineering
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackEngineering
|
||||
name: engineering backpack
|
||||
description: It's a tough backpack for the daily grind of station life.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/engineering.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/engineering.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackMedical
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackMedical
|
||||
name: medical backpack
|
||||
description: It's a backpack especially designed for use in a sterile environment.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/medical.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/medical.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackCaptain
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackCaptain
|
||||
name: captain's backpack
|
||||
description: It's a special backpack made exclusively for Nanotrasen officers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/captain.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/captain.rsi
|
||||
|
||||
# Inhands/On mob aren't working until I refactor this file -Swept
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackMime
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackMime
|
||||
name: mime backpack
|
||||
description: A silent backpack made for those silent workers. Silence Co.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/mime.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/mime.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackChemistry
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackChemistry
|
||||
name: chemistry backpack
|
||||
description: A backpack specially designed to repel stains and hazardous liquids.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/chemistry.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/chemistry.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackBotany
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackBotany
|
||||
name: botany backpack
|
||||
description: It's a backpack made of all-natural fibers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Backpacks/botany.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Backpacks/botany.rsi
|
||||
|
||||
- type: entity
|
||||
parent: BackpackClothing
|
||||
id: BackpackHolding
|
||||
parent: ClothingBackpack
|
||||
id: ClothingBackpackHolding
|
||||
name: bag of holding
|
||||
description: A backpack that opens into a localized pocket of bluespace.
|
||||
components:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: Duffelbag
|
||||
name: duffelbag
|
||||
id: ClothingBackpackDuffel
|
||||
name: duffel bag
|
||||
description: "A large duffel bag for holding extra things."
|
||||
components:
|
||||
- type: Sprite
|
||||
@@ -17,97 +17,67 @@
|
||||
capacity: 100
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagEngineering
|
||||
name: engineering duffelbag
|
||||
parent: ClothingBackpackDuffel
|
||||
id: ClothingBackpackDuffelEngineering
|
||||
name: engineering duffel bag
|
||||
description:
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_eng.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Duffels/engineering.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_eng.rsi
|
||||
sprite: Clothing/Back/Duffels/engineering.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagMedical
|
||||
name: medical duffelbag
|
||||
parent: ClothingBackpackDuffel
|
||||
id: ClothingBackpackDuffelMedical
|
||||
name: medical duffel bag
|
||||
description: "A large duffel bag for holding extra medical supplies."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_med.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Duffels/medical.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_med.rsi
|
||||
sprite: Clothing/Back/Duffels/medical.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagCaptain
|
||||
name: captain duffelbag
|
||||
parent: ClothingBackpackDuffel
|
||||
id: ClothingBackpackDuffelCaptain
|
||||
name: captain's duffel bag
|
||||
description: "A large duffel bag for holding extra captainly goods."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_cap.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Duffels/captain.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_cap.rsi
|
||||
sprite: Clothing/Back/Duffels/captain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagClown
|
||||
name: clown duffelbag
|
||||
parent: ClothingBackpackDuffel
|
||||
id: ClothingBackpackDuffelClown
|
||||
name: clown duffel bag
|
||||
description: "A large duffel bag for holding extra honk goods."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_clown.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Duffels/clown.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_clown.rsi
|
||||
sprite: Clothing/Back/Duffels/clown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagSecurity
|
||||
name: security duffelbag
|
||||
parent: ClothingBackpackDuffel
|
||||
id: ClothingBackpackDuffelSecurity
|
||||
name: security duffel bag
|
||||
description: "A large duffel bag for holding extra security related goods."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_sec.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Duffels/security.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_sec.rsi
|
||||
sprite: Clothing/Back/Duffels/security.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagSyndicate
|
||||
name: syndicate duffelbag
|
||||
parent: ClothingBackpackDuffel
|
||||
id: ClothingBackpackDuffelSyndicate
|
||||
name: syndicate duffel bag
|
||||
description: "A large duffel bag for holding various traitor goods."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_syn.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Duffels/syndicate.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_syn.rsi
|
||||
|
||||
# FILLED
|
||||
|
||||
- type: entity
|
||||
parent: Duffelbag
|
||||
id: DuffelbagSurgeryFilled
|
||||
name: surgical duffelbag
|
||||
description: "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Duffels/duffel_med.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Duffels/duffel_med.rsi
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- name: Hemostat
|
||||
- name: BoneSaw
|
||||
- name: Drill
|
||||
- name: Cautery
|
||||
- name: Retractor
|
||||
- name: Scalpel
|
||||
- type: Storage
|
||||
capacity: 30
|
||||
sprite: Clothing/Back/Duffels/syndicate.rsi
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/oxygen.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 21.27825
|
||||
air:
|
||||
@@ -65,7 +64,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/yellow.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Objects/Tanks/yellow.rsi
|
||||
Slots:
|
||||
@@ -81,7 +79,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/yellow.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Objects/Tanks/yellow.rsi
|
||||
Slots:
|
||||
@@ -97,7 +94,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/red.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Objects/Tanks/red.rsi
|
||||
Slots:
|
||||
@@ -113,7 +109,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/red.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
sprite: Objects/Tanks/red.rsi
|
||||
Slots:
|
||||
@@ -129,7 +124,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/emergency.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 21.27825
|
||||
air:
|
||||
@@ -166,7 +160,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/emergency_yellow.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 21.27825
|
||||
air:
|
||||
@@ -203,7 +196,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/emergency_double.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 21.27825
|
||||
air:
|
||||
@@ -240,7 +232,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/generic.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 101.325
|
||||
air:
|
||||
@@ -261,7 +252,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/generic.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 101.325
|
||||
air:
|
||||
@@ -285,7 +275,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Tanks/phoron.rsi
|
||||
state: icon
|
||||
- type: GasTank
|
||||
outputPressure: 101.325
|
||||
air:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: SatchelBase
|
||||
id: ClothingBackpackSatchel
|
||||
name: satchel
|
||||
description: A trendy looking satchel.
|
||||
components:
|
||||
@@ -17,85 +17,78 @@
|
||||
capacity: 100
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelEngineering
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelEngineering
|
||||
name: engineering satchel
|
||||
description: A tough satchel with extra pockets.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_engineering.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/engineering.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_engineering.rsi
|
||||
sprite: Clothing/Back/Satchels/engineering.rsi
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelMedical
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelMedical
|
||||
name: medical satchel
|
||||
description: A sterile satchel used in medical departments.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_medical.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/medical.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_medical.rsi
|
||||
sprite: Clothing/Back/Satchels/medical.rsi
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelChemistry
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelChemistry
|
||||
name: chemistry satchel
|
||||
description: A sterile satchel with chemist colours.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_chemistry.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/chemistry.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_chemistry.rsi
|
||||
sprite: Clothing/Back/Satchels/chemistry.rsi
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelScience
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelScience
|
||||
name: science satchel
|
||||
description: Useful for holding research materials.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_science.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/science.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_science.rsi
|
||||
sprite: Clothing/Back/Satchels/science.rsi
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelSecurity
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelSecurity
|
||||
name: security satchel
|
||||
description: A robust satchel for security related needs.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_security.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/security.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_security.rsi
|
||||
sprite: Clothing/Back/Satchels/security.rsi
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelCaptain
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelCaptain
|
||||
name: captain's satchel
|
||||
description: An exclusive satchel for Nanotrasen officers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_captain.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/captain.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_captain.rsi
|
||||
sprite: Clothing/Back/Satchels/captain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: SatchelBase
|
||||
id: SatchelHydroponics
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelHydroponics
|
||||
name: hydroponics satchel
|
||||
description: A satchel made of all natural fibers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Back/Satchels/satchel_hydroponics.rsi
|
||||
state: icon
|
||||
sprite: Clothing/Back/Satchels/hydroponics.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Back/Satchels/satchel_hydroponics.rsi
|
||||
sprite: Clothing/Back/Satchels/hydroponics.rsi
|
||||
|
||||
11
Resources/Prototypes/Entities/Clothing/Belt/base.yml
Normal file
11
Resources/Prototypes/Entities/Clothing/Belt/base.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingBeltBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
state: icon
|
||||
- type: Clothing
|
||||
Slots: [belt]
|
||||
size: 50
|
||||
QuickEquip: false
|
||||
@@ -1,17 +1,3 @@
|
||||
# BASE
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingBeltBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
state: icon
|
||||
- type: Clothing
|
||||
Slots: [belt]
|
||||
size: 50
|
||||
QuickEquip: false
|
||||
|
||||
# CONTENT
|
||||
- type: entity
|
||||
parent: ClothingBeltBase
|
||||
id: ClothingBeltAssault
|
||||
@@ -41,7 +27,7 @@
|
||||
- type: entity
|
||||
parent: ClothingBeltBase
|
||||
id: ClothingBeltChiefEngineer
|
||||
name: the Chief Engineer's toolbelt
|
||||
name: chief's toolbelt
|
||||
description: "Holds tools, looks snazzy."
|
||||
components:
|
||||
- type: Sprite
|
||||
@@ -168,7 +154,7 @@
|
||||
|
||||
- type: entity
|
||||
parent: ClothingBeltBase
|
||||
id: UtilityBeltClothing #Change to ClothingBeltUtility
|
||||
id: ClothingBeltUtility
|
||||
name: utility belt
|
||||
description: "Can hold various things."
|
||||
components:
|
||||
|
||||
@@ -1,123 +1,113 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: HeadsetBase
|
||||
id: ClothingHeadset
|
||||
name: headset
|
||||
abstract: true
|
||||
description: An updated, modular intercom that fits over the head. Takes encryption keys.
|
||||
components:
|
||||
- type: Headset
|
||||
- type: Sprite
|
||||
state: icon
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- ears
|
||||
sprite: Clothing/Ears/Headsets/base.rsi
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetCargo
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetCargo
|
||||
name: cargo headset
|
||||
description: A headset used by the quartermaster and his slaves.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/cargo.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetCentCom
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetCentCom
|
||||
name: centcomm headset
|
||||
description: A headset used by the upper echelons of Nanotrasen.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/centcom.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetCommand
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetCommand
|
||||
name: command headset
|
||||
description: A headset with a commanding channel.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/command.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetEngineering
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetEngineering
|
||||
name: engineering headset
|
||||
description: When the engineers wish to chat like girls.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/engineering.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetMedical
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetMedical
|
||||
name: medical headset
|
||||
description: A headset for the trained staff of the medbay.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/medical.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetMedicalScience
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetMedicalScience
|
||||
name: medical research headset
|
||||
description: A headset that is a result of the mating between medical and science.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/medicalscience.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetMining
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetMining
|
||||
name: mining headset
|
||||
description: Headset used by shaft miners.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/mining.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetRobotics
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetRobotics
|
||||
name: robotics headset
|
||||
description: Made specifically for the roboticists, who cannot decide between departments.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/robotics.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetScience
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetScience
|
||||
name: science headset
|
||||
description: A sciency headset. Like usual.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/science.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetSecurity
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetSecurity
|
||||
name: security headset
|
||||
description: This is used by your elite security force.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/security.rsi
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBase
|
||||
id: HeadsetService
|
||||
parent: ClothingHeadset
|
||||
id: ClothingHeadsetService
|
||||
name: service headset
|
||||
description: Headset used by the service staff, tasked with keeping the station full, happy and clean.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/service.rsi
|
||||
state: icon
|
||||
@@ -1,61 +1,54 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: HeadsetBaseAlt
|
||||
id: ClothingHeadsetAlt
|
||||
name: headset
|
||||
abstract: true
|
||||
description: An updated, modular intercom that fits over the head. Takes encryption keys.
|
||||
components:
|
||||
- type: Headset
|
||||
- type: Sprite
|
||||
state: icon_alt
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- ears
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBaseAlt
|
||||
id: HeadsetCommandAlt
|
||||
parent: ClothingHeadsetAlt
|
||||
id: ClothingHeadsetAltCommand
|
||||
name: command overear-headset
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/command.rsi
|
||||
state: icon_alt
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- ears
|
||||
sprite: Clothing/Ears/Headsets/command.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBaseAlt
|
||||
id: HeadsetMedicalAlt
|
||||
parent: ClothingHeadsetAlt
|
||||
id: ClothingHeadsetAltMedical
|
||||
name: medical overear-headset
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/medical.rsi
|
||||
state: icon_alt
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- ears
|
||||
sprite: Clothing/Ears/Headsets/medical.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBaseAlt
|
||||
id: HeadsetSecurityAlt
|
||||
parent: ClothingHeadsetAlt
|
||||
id: ClothingHeadsetAltSecurity
|
||||
name: security overear-headset
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/security.rsi
|
||||
state: icon_alt
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- ears
|
||||
sprite: Clothing/Ears/Headsets/security.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HeadsetBaseAlt
|
||||
id: HeadsetSyndicateAlt
|
||||
parent: ClothingHeadsetAlt
|
||||
id: ClothingHeadsetAltSyndicate
|
||||
name: syndicate overear-headset
|
||||
description: A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Ears/Headsets/syndicate.rsi
|
||||
state: icon_alt
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- ears
|
||||
sprite: Clothing/Ears/Headsets/syndicate.rsi
|
||||
9
Resources/Prototypes/Entities/Clothing/Eyes/base.yml
Normal file
9
Resources/Prototypes/Entities/Clothing/Eyes/base.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingEyesBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
state: icon
|
||||
- type: Clothing
|
||||
Slots: [eyes]
|
||||
103
Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Normal file
103
Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesBeer
|
||||
name: beer goggles
|
||||
description: A pair of sunglasses outfitted with apparatus to scan reagents, as well as providing an innate understanding of liquid viscosity while in motion.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/beergoggles.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/beergoggles.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesGar
|
||||
name: gar glasses
|
||||
description: Go beyond impossible and kick reason to the curb!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/gar.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/gar.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesGarOrange
|
||||
name: orange gar glasses
|
||||
description: Just who the hell do you think I am?!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/gar.rsi
|
||||
state: icon-alt
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/gar.rsi
|
||||
HeldPrefix: alt
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesGarGiga
|
||||
name: giga gar glasses
|
||||
description: We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/gar.rsi
|
||||
state: icon-super
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/gar.rsi
|
||||
HeldPrefix: super
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesMeson
|
||||
name: optical meson scanners
|
||||
description: The pinnacle of modern science, wallhacks in real life
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/meson.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/meson.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlasses
|
||||
name: glasses
|
||||
description: You want to wear glasses in a game? Imagine rping as physically disabled.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/glasses.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/glasses.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesSunglasses
|
||||
name: sun glasses
|
||||
description: Useful both for security and cargonia
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/sunglasses.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/sunglasses.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesSecurity
|
||||
name: security sunglasses
|
||||
description: Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes. Often worn by budget security officers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/secglasses.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/secglasses.rsi
|
||||
|
||||
#Make a scanner category when these actually function and we get the trayson
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesGlassesThermal
|
||||
name: optical thermal scanner
|
||||
description: Thermals in the shape of glasses.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Glasses/thermal.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Glasses/thermal.rsi
|
||||
32
Resources/Prototypes/Entities/Clothing/Eyes/hud.yml
Normal file
32
Resources/Prototypes/Entities/Clothing/Eyes/hud.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesHudDiagnostic
|
||||
name: diagnostic hud
|
||||
description: A heads-up display capable of analyzing the integrity and status of robotics and exosuits.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Hud/diag.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Hud/diag.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesHudMedical
|
||||
name: medical hud
|
||||
description: A heads-up display that scans the humanoids in view and provides accurate data about their health status.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Hud/med.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Hud/med.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesHudSecurity
|
||||
name: security hud
|
||||
description: A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Hud/sec.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Hud/sec.rsi
|
||||
10
Resources/Prototypes/Entities/Clothing/Eyes/misc.yml
Normal file
10
Resources/Prototypes/Entities/Clothing/Eyes/misc.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesEyepatch
|
||||
name: eyepatch
|
||||
description: Yarr.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Eyes/Misc/eyepatch.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Misc/eyepatch.rsi
|
||||
@@ -1,46 +0,0 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: GlassesBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Clothing
|
||||
Slots: [eyes]
|
||||
|
||||
- type: entity
|
||||
parent: GlassesBase
|
||||
id: MesonGlasses
|
||||
name: optical meson scanners
|
||||
description: The pinnacle of modern science, wallhacks in real life
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Glasses/meson_scanners.rsi
|
||||
state: meson
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Glasses/meson_scanners.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlassesBase
|
||||
id: SunGlasses
|
||||
name: sun glasses
|
||||
description: Useful both for security and cargonia
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Glasses/sunglasses.rsi
|
||||
state: icon
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Glasses/sunglasses.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlassesBase
|
||||
id: SecGlasses
|
||||
name: security sunglasses
|
||||
description: Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes. Often worn by budget security officers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Glasses/sunglasses_sec.rsi
|
||||
state: icon
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Glasses/sunglasses_sec.rsi
|
||||
@@ -1,312 +0,0 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: GlovesBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
state: icon
|
||||
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- gloves
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBlack
|
||||
name: black gloves
|
||||
description: Regular black gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/black.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/black.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBlue
|
||||
name: blue gloves
|
||||
description: Regular blue gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/blue.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBoxingRed
|
||||
name: boxing gloves (red)
|
||||
description: Red gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/boxing.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/boxing.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBoxingBlue
|
||||
name: boxing gloves (blue)
|
||||
description: Blue gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/boxingblue.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/boxingblue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBoxingGreen
|
||||
name: boxing gloves (green)
|
||||
description: Green gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/boxinggreen.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/boxinggreen.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBoxingYellow
|
||||
name: boxing gloves (yellow)
|
||||
description: Yellow gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/boxingyellow.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/boxingyellow.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesBrown
|
||||
name: brown gloves
|
||||
description: Regular brown gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/brown.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/brown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesCaptain
|
||||
name: captain gloves
|
||||
description: Regal blue gloves, with a nice gold trim. Swanky.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/captain.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/captain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesGray
|
||||
name: grey gloves
|
||||
description: Regular grey gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/gray.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/gray.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesGreen
|
||||
name: green gloves
|
||||
description: Regular green gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/green.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/green.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesIhscombat
|
||||
name: IHS combat gloves
|
||||
description: These tactical gloves are somewhat fire and impact resistant.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/ihscombat.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/ihscombat.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesLatex
|
||||
name: latex gloves
|
||||
description: Thin sterile latex gloves.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/latex.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/latex.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesLeather
|
||||
name: "botanist's leather gloves"
|
||||
description: "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/leather.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/leather.rsi
|
||||
HeatResistance: 1400
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesLightBrown
|
||||
name: light brown gloves
|
||||
description: Regular light brown gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/lightbrown.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/lightbrown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesOrange
|
||||
name: orange gloves
|
||||
description: Regular orange gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/orange.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/orange.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesPowerglove
|
||||
name: power gloves
|
||||
description: Now I'm playin' with power! Wait, they are turned off.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/powerglove.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/powerglove.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesPowergloveActive
|
||||
name: powergloves (active)
|
||||
description: Now I'm playin' with power! BAM!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/powerglove_active.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/powerglove_active.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesPurple
|
||||
name: purple gloves
|
||||
description: Regular purple gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/purple.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/purple.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesRed
|
||||
name: red gloves
|
||||
description: Regular red gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/red.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/red.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesRobohands
|
||||
name: robohands gloves
|
||||
description: Beep boop borp!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/robohands.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/robohands.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesSNinja
|
||||
name: S ninja gloves
|
||||
description: These black nano-enhanced gloves insulate from electricity and provide fire resistance.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/s_ninja.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/s_ninja.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesSNinjak
|
||||
name: S ninjak gloves
|
||||
description: These black and red nano-enhanced gloves insulate from electricity and provide fire resistance.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/s_ninjak.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/s_ninjak.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesSNinjan
|
||||
name: S ninjan gloves
|
||||
description: These black and green nano-enhanced gloves insulate from electricity and provide fire resistance.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/s_ninjan.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/s_ninjan.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesWhite
|
||||
name: white gloves
|
||||
description: Those gloves look fancy.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/white.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: GlovesBase
|
||||
id: GlovesYellow
|
||||
name: insulated gloves
|
||||
description: These gloves will protect the wearer from electric shocks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Gloves/yellow.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Gloves/yellow.rsi
|
||||
9
Resources/Prototypes/Entities/Clothing/Hands/base.yml
Normal file
9
Resources/Prototypes/Entities/Clothing/Hands/base.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingHandsBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
state: icon
|
||||
- type: Clothing
|
||||
Slots: [gloves]
|
||||
120
Resources/Prototypes/Entities/Clothing/Hands/colored.yml
Normal file
120
Resources/Prototypes/Entities/Clothing/Hands/colored.yml
Normal file
@@ -0,0 +1,120 @@
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorPurple
|
||||
name: purple gloves
|
||||
description: Regular purple gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/purple.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/purple.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorRed
|
||||
name: red gloves
|
||||
description: Regular red gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/red.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/red.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorBlack
|
||||
name: black gloves
|
||||
description: Regular black gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/black.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/black.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorBlue
|
||||
name: blue gloves
|
||||
description: Regular blue gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/blue.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorBrown
|
||||
name: brown gloves
|
||||
description: Regular brown gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/brown.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/brown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorGray
|
||||
name: grey gloves
|
||||
description: Regular grey gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/gray.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/gray.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorGreen
|
||||
name: green gloves
|
||||
description: Regular green gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/green.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/green.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorLightBrown
|
||||
name: light brown gloves
|
||||
description: Regular light brown gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/lightbrown.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/lightbrown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorOrange
|
||||
name: orange gloves
|
||||
description: Regular orange gloves that do not keep you from frying.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/orange.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/orange.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorWhite
|
||||
name: white gloves
|
||||
description: Those gloves look fancy.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/white.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesColorYellow
|
||||
name: insulated gloves
|
||||
description: These gloves will protect the wearer from electric shocks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/Color/yellow.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/Color/yellow.rsi
|
||||
127
Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
Normal file
127
Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
Normal file
@@ -0,0 +1,127 @@
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesBoxingRed
|
||||
name: boxing gloves
|
||||
description: Red gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesBoxingBlue
|
||||
name: blue boxing gloves
|
||||
description: Blue gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
state: icon-blue
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
HeldPrefix: blue
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesBoxingGreen
|
||||
name: green boxing gloves
|
||||
description: Green gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
state: icon-green
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
HeldPrefix: green
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesBoxingYellow
|
||||
name: yellow boxing gloves
|
||||
description: Yellow gloves for competitive boxing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
state: icon-yellow
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/boxing.rsi
|
||||
HeldPrefix: yellow
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesCaptain
|
||||
name: captain gloves
|
||||
description: Regal blue gloves, with a nice gold trim. Swanky.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/captain.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/captain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesIhscombat
|
||||
name: IHS combat gloves
|
||||
description: These tactical gloves are somewhat fire and impact resistant.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/ihscombat.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/ihscombat.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesLatex
|
||||
name: latex gloves
|
||||
description: Thin sterile latex gloves.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/latex.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/latex.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesLeather
|
||||
name: "botanist's leather gloves"
|
||||
description: "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/leather.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/leather.rsi
|
||||
HeatResistance: 1400
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesPowerglove
|
||||
name: power gloves
|
||||
description: Now I'm playin' with power! Wait, they are turned off. # Use "Now I'm playin' with power! BAM!" for when they're turned on
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/powerglove.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/powerglove.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesRobohands
|
||||
name: robohands gloves
|
||||
description: Beep boop borp!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/robohands.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/robohands.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHandsBase
|
||||
id: ClothingHandsGlovesSpaceNinja
|
||||
name: space ninja gloves
|
||||
description: These black nano-enhanced gloves insulate from electricity and provide fire resistance.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Hands/Gloves/spaceninja.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Hands/Gloves/spaceninja.rsi
|
||||
@@ -1,131 +1,87 @@
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatMonkey
|
||||
name: monkey
|
||||
description: That's a monkey head. It has a hole on a mouth to eat bananas.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/monkey.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/monkey.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatMouseBrown
|
||||
name: mouse brown
|
||||
description: This is a head of a brown mouse. Squeak!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/mouse_brown.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/mouse_brown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatMouseGray
|
||||
name: mouse gray
|
||||
description: This is a head of a grey mouse. Squeak!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/mouse_gray.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/mouse_gray.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatMouseWhite
|
||||
name: mouse white
|
||||
description: This is a head of a white mouse. Squeak!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/mouse_white.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/mouse_white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatNymph
|
||||
name: nymph
|
||||
description: It's a nymph. You can put it on your head.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/nymph.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/nymph.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatPai-cat
|
||||
name: pai-cat
|
||||
description: Personal AI in a cat form.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/pai-cat.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/pai-cat.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatPai-monkey
|
||||
name: pai-monkey
|
||||
description: Personal AI in a monkey form.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/pai-monkey.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/pai-monkey.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatPai-mouse
|
||||
name: pai-mouse
|
||||
description: Personal AI in a mouse form.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/pai-mouse.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/pai-mouse.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatCatGrey
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalCat
|
||||
name: grey cat
|
||||
description: A cute and fluffy head of a grey cat.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/cat.rsi
|
||||
|
||||
sprite: Clothing/Head/Animals/cat.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/cat.rsi
|
||||
sprite: Clothing/Head/Animals/cat.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatCatBrown
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalCatBrown
|
||||
name: brown cat
|
||||
description: A cute and fluffy head of a brown cat.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/cat2.rsi
|
||||
|
||||
sprite: Clothing/Head/Animals/cat2.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/cat2.rsi
|
||||
sprite: Clothing/Head/Animals/cat2.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatCatBlack
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalCatBlack
|
||||
name: black cat
|
||||
description: A cute and fluffy head of a black cat.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/cat3.rsi
|
||||
|
||||
sprite: Clothing/Head/Animals/cat3.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/cat3.rsi
|
||||
sprite: Clothing/Head/Animals/cat3.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalHeadslime
|
||||
name: headslime
|
||||
description: A green, sticky headslime, you put it on your head.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Animals/headslime.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Animals/headslime.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalMonkey
|
||||
name: monkey
|
||||
description: That's a monkey head. It has a hole on a mouth to eat bananas.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Animals/monkey.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Animals/monkey.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalMouseBrown
|
||||
name: mouse brown
|
||||
description: This is a head of a brown mouse. Squeak!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Animals/mouse_brown.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Animals/mouse_brown.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalMouseGray
|
||||
name: mouse gray
|
||||
description: This is a head of a grey mouse. Squeak!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Animals/mouse_gray.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Animals/mouse_gray.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatAnimalMouseWhite
|
||||
name: mouse white
|
||||
description: This is a head of a white mouse. Squeak!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Animals/mouse_white.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Animals/mouse_white.rsi
|
||||
|
||||
87
Resources/Prototypes/Entities/Clothing/Head/bandanas.yml
Normal file
87
Resources/Prototypes/Entities/Clothing/Head/bandanas.yml
Normal file
@@ -0,0 +1,87 @@
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandBlack
|
||||
name: black bandana
|
||||
description: A black bandana to make you look cool.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/black.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/black.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandBlue
|
||||
name: blue bandana
|
||||
description: A blue bandana to make you look cool.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/blue.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandBotany
|
||||
name: botany bandana
|
||||
description: A botany bandana to make you look cool, made from natural fibers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/botany.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/botany.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandGold
|
||||
name: gold bandana
|
||||
description: A gold bandana to make you look cool.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/gold.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/gold.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandGreen
|
||||
name: green bandana
|
||||
description: A green bandana to make you look cool.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/green.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/green.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandGrey
|
||||
name: grey bandana
|
||||
description: A grey bandana to make you look cool.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/grey.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/grey.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandRed
|
||||
name: red bandana
|
||||
description: A red bandana to make you look cool.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/red.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/red.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: HatBandSkull
|
||||
name: skull bandana
|
||||
description: A bandana with a skull to make you look even cooler.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Bandanas/skull.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Bandanas/skull.rsi
|
||||
31
Resources/Prototypes/Entities/Clothing/Head/base.yml
Normal file
31
Resources/Prototypes/Entities/Clothing/Head/base.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingHeadBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- Helmet
|
||||
- type: Sprite
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: HatBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- Helmet
|
||||
- type: Sprite
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHardsuitBase
|
||||
name: base hardsuit helmet
|
||||
abstract: true
|
||||
components:
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.5
|
||||
lowPressureMultiplier: 100
|
||||
78
Resources/Prototypes/Entities/Clothing/Head/hardhats.yml
Normal file
78
Resources/Prototypes/Entities/Clothing/Head/hardhats.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHardhatBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: icon
|
||||
- state: light-icon
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Clothing
|
||||
HeldPrefix: off
|
||||
ClothingPrefix: off
|
||||
- type: PointLight
|
||||
enabled: false
|
||||
radius: 3
|
||||
- type: LoopingSound
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: FlashLightVisualizer
|
||||
- type: HandheldLight
|
||||
- type: PowerCellSlot
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHatHardhatBase
|
||||
id: ClothingHeadHatHardhatBlue
|
||||
name: blue hard hat
|
||||
description: A hard hat, painted in blue, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardhats/blue.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardhats/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHatHardhatBase
|
||||
id: ClothingHeadHatHardhatOrange
|
||||
name: orange hard hat
|
||||
description: A hard hat, painted in orange, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardhats/orange.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardhats/orange.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHatHardhatBase
|
||||
id: ClothingHeadHatHardhatRed
|
||||
name: red hard hat
|
||||
description: A hard hat, painted in red, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardhats/red.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardhats/red.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHatHardhatBase
|
||||
id: ClothingHeadHatHardhatWhite
|
||||
name: white hard hat
|
||||
description: A hard hat, painted in white, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardhats/white.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardhats/white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHatHardhatBase
|
||||
id: ClothingHeadHatHardhatYellow
|
||||
name: yellow hard hat
|
||||
description: A hard hat, painted in yellow, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardhats/yellow.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardhats/yellow.rsi
|
||||
@@ -1,158 +1,163 @@
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HelmetHardsuitBase
|
||||
name: base hardsuit helmet
|
||||
abstract: true
|
||||
components:
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.75
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HatHardsuitOld
|
||||
name: old hardsuit helmet
|
||||
description: An old helmet from a hardsuit. Still functional, for now.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-old.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-old.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.85
|
||||
lowPressureMultiplier: 45
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitAtmos
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitAtmos
|
||||
name: atmos hardsuit helmet
|
||||
description: A special hardsuit helmet designed for working in low-pressure, high thermal environments.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-atmos.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/atmospherics.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-atmos.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.5
|
||||
lowPressureMultiplier: 100
|
||||
sprite: Clothing/Head/Hardsuits/atmospherics.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitEngineering
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitCap
|
||||
name: captain's hardsuit helmet
|
||||
description: Special hardsuit helmet, made for the captain of the station.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardsuits/capspace.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardsuits/capspace.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: ClothingHeadHelmetHardsuitDeathsquad
|
||||
name: deathsquad
|
||||
description: A robust helmet for special operations.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardsuits/deathsquad.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardsuits/deathsquad.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitEngineering
|
||||
name: engineering hardsuit helmet
|
||||
description: An engineering hardsuit helmet designed for working in low-pressure, high radioactive environments.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-engineering.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/engineering.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-engineering.rsi
|
||||
sprite: Clothing/Head/Hardsuits/engineering.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.65
|
||||
highPressureMultiplier: 0.40
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitHazard
|
||||
name: hazard hardsuit helmet
|
||||
description: Robust hardsuit helmet made for dangerous and hazardous situations.
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitEngineeringWhite
|
||||
name: CE hardsuit helmet
|
||||
description: Special hardsuit helmet, made for the chief engineer of the station.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-hazardhardsuit.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/engineering-white.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-hazardhardsuit.rsi
|
||||
sprite: Clothing/Head/Hardsuits/engineering-white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitMedical
|
||||
parent: HatBase
|
||||
id: ClothingHeadHelmetIHSVoidHelm
|
||||
name: IHS voidhelm
|
||||
description: A robust, tactical IHS helmet.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardsuits/ihsvoid.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardsuits/ihsvoid.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.60
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitMedical
|
||||
name: medical hardsuit helmet
|
||||
description: Lightweight medical hardsuit helmet that doesn't restrict your head movements.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-medical.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/medical.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-medical.rsi
|
||||
sprite: Clothing/Head/Hardsuits/medical.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.80
|
||||
lowPressureMultiplier: 55
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitMining
|
||||
name: mining hardsuit helmet
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitRd
|
||||
name: rd hardsuit helmet
|
||||
description: Lightweight hardsuit helmet that doesn't restrict your head movements.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardsuits/rd.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardsuits/rd.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.80
|
||||
lowPressureMultiplier: 55
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitSalvage
|
||||
name: salvage hardsuit helmet
|
||||
description: A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-mining.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/salvage.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-mining.rsi
|
||||
sprite: Clothing/Head/Hardsuits/salvage.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.70
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitSecurity
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitSecurity
|
||||
name: security hardsuit helmet
|
||||
description: Armored hardsuit helmet for security needs.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-sectg.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/security.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-sectg.rsi
|
||||
sprite: Clothing/Head/Hardsuits/security.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.70
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitSyndie
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitSecurityRed
|
||||
name: hos hardsuit helmet
|
||||
description: Red armored hardsuit helmet for security needs. Belongs to the HoS.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hardsuits/security-red.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hardsuits/security-red.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.60
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitSyndie
|
||||
name: blood red hardsuit helmet
|
||||
description: An advanced red hardsuit helmet designed for work in special operations.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-syndie.rsi
|
||||
state: icon
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/syndicate.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-syndie.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.45
|
||||
lowPressureMultiplier: 100
|
||||
sprite: Clothing/Head/Hardsuits/syndicate.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitCE
|
||||
name: CE hardsuit helmet
|
||||
description: Special hardsuit helmet, made for the chief engineer of the station.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-white.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-white.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.5
|
||||
lowPressureMultiplier: 100
|
||||
|
||||
- type: entity
|
||||
parent: HelmetHardsuitBase
|
||||
id: HelmetHardsuitWizard
|
||||
parent: ClothingHeadHardsuitBase
|
||||
id: ClothingHeadHelmetHardsuitWizard
|
||||
name: wizard hardsuit helmet
|
||||
description: A bizarre gem-encrusted helmet that radiates magical energies.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardsuit-wiz.rsi
|
||||
|
||||
sprite: Clothing/Head/Hardsuits/wizard.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardsuit-wiz.rsi
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.45
|
||||
lowPressureMultiplier: 100
|
||||
sprite: Clothing/Head/Hardsuits/wizard.rsi
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,119 +1,131 @@
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatAtmosHelm
|
||||
name: atmos helm
|
||||
description: A helmet, designed for work in low-pressure enviroments.
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetBombSuit
|
||||
name: bombsuit helmet
|
||||
description: A heavy helmet designed to withstand the pressure generated by a bomb and any fragments the bomb may produce.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/atmos_helm.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/bombsuit.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/atmos_helm.rsi
|
||||
sprite: Clothing/Head/Helmets/bombsuit.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatCultHelmet
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetCosmonaut
|
||||
name: cosmonaut
|
||||
description:
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Helmets/cosmonaut.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Helmets/cosmonaut.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetCult
|
||||
name: cult helmet
|
||||
description: A robust, evil-looking cult helmet.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/cult_helmet.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/cult.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/cult_helmet.rsi
|
||||
sprite: Clothing/Head/Helmets/cult.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatHardhatBlue
|
||||
name: blue hard hat
|
||||
description: A hard hat, painted in blue, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetHelmet
|
||||
name: helmet
|
||||
description: A usual helmet.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardhat_blue.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/security.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardhat_blue.rsi
|
||||
sprite: Clothing/Head/Helmets/security.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatHardhatOrange
|
||||
name: orange hard hat
|
||||
description: A hard hat, painted in orange, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetHelmetOld
|
||||
name: helmet
|
||||
description: An old usual helmet.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardhat_orange.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/securityold.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardhat_orange.rsi
|
||||
sprite: Clothing/Head/Helmets/securityold.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatHardhatRed
|
||||
name: red hard hat
|
||||
description: A hard hat, painted in red, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardhat_red.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardhat_red.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatHardhatWhite
|
||||
name: white hard hat
|
||||
description: A hard hat, painted in white, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardhat_white.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardhat_white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatHardhatYellow
|
||||
name: yellow hard hat
|
||||
description: A hard hat, painted in yellow, used in dangerous working conditions to protect the head. Comes with a built-in flashlight.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/hardhat_yellow.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/hardhat_yellow.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatLightRiot
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetRiot
|
||||
name: light riot helmet
|
||||
description: It's a helmet specifically designed to protect against close range attacks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/light_riot.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/light_riot.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/light_riot.rsi
|
||||
sprite: Clothing/Head/Helmets/light_riot.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatScaf
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetScaf
|
||||
name: scaf
|
||||
description: A robust, strong helmet.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/scaf.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/scaf.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/scaf.rsi
|
||||
sprite: Clothing/Head/Helmets/scaf.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatSecurity
|
||||
name: security
|
||||
description: Standard issue security helmet.
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetSpaceNinja
|
||||
name: space ninja helmet
|
||||
description:
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/security.rsi
|
||||
|
||||
sprite: Clothing/Head/Helmets/spaceninja.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/security.rsi
|
||||
sprite: Clothing/Head/Helmets/spaceninja.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetSyndicate
|
||||
name: syndicate
|
||||
description: A stylish, robust syndicate helmet
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Helmets/syndicate.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Helmets/syndicate.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetTemplar
|
||||
name: templar helmet
|
||||
description: DEUS VULT
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Helmets/templar.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Helmets/templar.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetThunderdome
|
||||
name: thunderdome
|
||||
description: Let the battle commence!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Helmets/thunderdome.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Helmets/thunderdome.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHelmetWizardHelm
|
||||
name: wizard helm
|
||||
description: Strange-looking helmet that most certainly belongs to a real magic user.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Helmets/wizardhelm.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Helmets/wizardhelm.rsi
|
||||
|
||||
@@ -1,155 +1,115 @@
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBioCmo
|
||||
name: bio - cmo
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodBioGeneral
|
||||
name: bio hood
|
||||
suffix: Generic
|
||||
description: A hood that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hoods/Bio/general.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Hoods/Bio/general.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodBioCmo
|
||||
name: bio hood
|
||||
suffix: CMO
|
||||
description: An advanced hood for chief medical officer that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bio_cmo.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/Bio/cmo.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bio_cmo.rsi
|
||||
sprite: Clothing/Head/Hoods/Bio/cmo.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBioGeneral
|
||||
name: bio - general
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodBioJanitor
|
||||
name: bio hood
|
||||
suffix: Janitor
|
||||
description: A hood that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bio_general.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/Bio/janitor.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bio_general.rsi
|
||||
sprite: Clothing/Head/Hoods/Bio/janitor.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBioJanitor
|
||||
name: bio - janitor
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodBioScientist
|
||||
name: bio hood
|
||||
suffix: Science
|
||||
description: A hood that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bio_janitor.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/Bio/scientist.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bio_janitor.rsi
|
||||
sprite: Clothing/Head/Hoods/Bio/scientist.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBioScientist
|
||||
name: bio - scientist
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodBioSecurity
|
||||
name: bio hood
|
||||
suffix: Security
|
||||
description: A hood that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bio_scientist.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/Bio/security.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bio_scientist.rsi
|
||||
sprite: Clothing/Head/Hoods/Bio/security.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBioSecurity
|
||||
name: bio - security
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodBioVirology
|
||||
name: bio hood
|
||||
suffix: Virology
|
||||
description: A hood that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bio_security.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/Bio/virology.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bio_security.rsi
|
||||
sprite: Clothing/Head/Hoods/Bio/virology.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBioVirology
|
||||
name: bio - virology
|
||||
description: A hood that protects the head and face from biological contaminants.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bio_virology.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bio_virology.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBombsuit
|
||||
name: bombsuit
|
||||
description: A heavy helmet designed to withstand the pressure generated by a bomb and any fragments the bomb may produce.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bombsuit.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bombsuit.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBombsuitsec
|
||||
name: bombsuit sec
|
||||
description: A heavy helmet designed to withstand the pressure generated by a bomb and any fragments the bomb may produce.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bombsuitsec.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bombsuitsec.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBombsuitWhite
|
||||
name: bombsuit white
|
||||
description: A heavy helmet designed to withstand the pressure generated by a bomb and any fragments the bomb may produce.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/bombsuit_white.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/bombsuit_white.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatChaplainHood
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodChaplainHood
|
||||
name: chaplain hood
|
||||
description: Maximum piety in this star system.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/chaplain_hood.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/chaplain.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/chaplain_hood.rsi
|
||||
sprite: Clothing/Head/Hoods/chaplain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatCulthood
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodCulthood
|
||||
name: cult hood
|
||||
description: There's no cult without cult hoods.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/culthood.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/cult.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/culthood.rsi
|
||||
sprite: Clothing/Head/Hoods/cult.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatNunHood
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodNunHood
|
||||
name: nun hood
|
||||
description: Maximum piety in this star system.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/nun_hood.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/nun.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/nun_hood.rsi
|
||||
sprite: Clothing/Head/Hoods/nun.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatRad
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHoodRad
|
||||
name: rad
|
||||
description: A hood of the hazmat suit, designed for protection from high radioactivity.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/rad.rsi
|
||||
|
||||
sprite: Clothing/Head/Hoods/rad.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/rad.rsi
|
||||
sprite: Clothing/Head/Hoods/rad.rsi
|
||||
|
||||
@@ -1,11 +1,120 @@
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatSkub
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatBearpelt
|
||||
name: bear pelt
|
||||
description: It's a cute bear pelt.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/bearpelt.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/bearpelt.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatBunny
|
||||
name: bunny
|
||||
description: Cute bunny ears.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/bunny.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/bunny.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatCake
|
||||
name: cake hat
|
||||
description: You put the cake on your head. Brilliant.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/cake.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/cake.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatChickenhead
|
||||
name: chicken head
|
||||
description: "It's a chicken head. Bok bok bok!"
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/chickenhead.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/chickenhead.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatHairflower
|
||||
name: hairflower
|
||||
description: A red rose for beautiful ladies.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/hairflower.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/hairflower.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatPumpkin
|
||||
name: pumpkin hat
|
||||
description: A jack o' lantern! Believed to ward off evil spirits.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/pumpkin.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/pumpkin.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatPwig
|
||||
name: pwig
|
||||
description: To be honest, those look ridiculous.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/pwig.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/pwig.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatRichard
|
||||
name: richard
|
||||
description: 'Do you like hurting people?'
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/richard.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/richard.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatSkub
|
||||
name: Skub Hat
|
||||
description: 'Best paired with the Skub Suit.'
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/skubhead.rsi
|
||||
|
||||
sprite: Clothing/Head/Misc/skubhead.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/skubhead.rsi
|
||||
sprite: Clothing/Head/Misc/skubhead.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatXenoMom
|
||||
name: xeno matriarch
|
||||
description: Hiss hiss hiss!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/xenom.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/xenom.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatXeno
|
||||
name: xenos
|
||||
description: Hiss hiss hiss!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Misc/xenos.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Misc/xenos.rsi
|
||||
|
||||
241
Resources/Prototypes/Entities/Clothing/Head/soft.yml
Normal file
241
Resources/Prototypes/Entities/Clothing/Head/soft.yml
Normal file
@@ -0,0 +1,241 @@
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatBluesoft
|
||||
name: bluesoft
|
||||
description: "It's a baseball hat in a tasteless blue colour."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/bluesoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/bluesoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatBluesoftFlipped
|
||||
name: bluesoft flipped
|
||||
description: "It's a baseball hat in a tasteless blue colour. Flipped."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/bluesoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/bluesoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatCargosoft
|
||||
name: cargosoft
|
||||
description: "It's a baseball hat painted in Cargo colours."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/cargosoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/cargosoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatCargosoftFlipped
|
||||
name: cargosoft flipped
|
||||
description: "It's a baseball hat painted in Cargo colours. Flipped."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/cargosoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/cargosoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatCorpsoft
|
||||
name: corpsoft
|
||||
description: A baseball bat in corporation colors.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/corpsoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/corpsoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatCorpsoftFlipped
|
||||
name: corpsoft flipped
|
||||
description: A baseball bat in corporation colors. Flipped.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/corpsoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/corpsoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatGreensoft
|
||||
name: greensoft
|
||||
description: "It's a baseball hat in a tasteless green colour."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/greensoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/greensoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatGreensoftFlipped
|
||||
name: greensoft flipped
|
||||
description: "It's a baseball hat in a tasteless green colour. Flipped."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/greensoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/greensoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatGreysoft
|
||||
name: greysoft
|
||||
description: "It's a baseball hat in a tasteless grey colour."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/greysoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/greysoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatGreysoftFlipped
|
||||
name: greysoft flipped
|
||||
description: "It's a baseball hat in a tasteless grey colour. Flipped."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/greysoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/greysoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatMimesoft
|
||||
name: mimesoft
|
||||
description: "It's a baseball hat in a tasteless white colour."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/mimesoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/mimesoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatMimesoftFlipped
|
||||
name: mimesoft flipped
|
||||
description: It's a baseball hat in a tasteless white colour. Flipped.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/mimesoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/mimesoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatOrangesoft
|
||||
name: orangesoft
|
||||
description: It's a baseball hat in a good-looking orange colour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/orangesoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/orangesoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatOrangesoftFlipped
|
||||
name: orangesoft flipped
|
||||
description: It's a baseball hat in a good-looking orange colour. Flipped.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/orangesoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/orangesoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatPurplesoft
|
||||
name: purple soft
|
||||
description: It's a baseball hat in a tasteless purple colour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/purplesoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/purplesoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatPurplesoftFlipped
|
||||
name: purplesoft flipped
|
||||
description: It's a baseball hat in a tasteless purple colour. Flipped.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/purplesoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/purplesoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatRedsoft
|
||||
name: redsoft
|
||||
description: It's a baseball hat in a tasteless red colour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/redsoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/redsoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatRedsoftFlipped
|
||||
name: redsoft flipped
|
||||
description: It's a baseball hat in a tasteless purple colour. Flipped.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/redsoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/redsoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatSecsoft
|
||||
name: secsoft
|
||||
description: It's a robust baseball hat in tasteful red colour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/secsoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/secsoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatSecsoftFlipped
|
||||
name: secsoft flipped
|
||||
description: It's a robust baseball hat in tasteful red colour. Flipped.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/secsoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/secsoft_flipped.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatYellowsoft
|
||||
name: yellowsoft
|
||||
description: A yellow baseball hat.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/yellowsoft.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/yellowsoft.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatYellowsoftFlipped
|
||||
name: yellowsoft flipped
|
||||
description: A yellow flipped baseball hat.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Soft/yellowsoft_flipped.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Soft/yellowsoft_flipped.rsi
|
||||
@@ -1,95 +0,0 @@
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatWelding
|
||||
name: welding mask
|
||||
description: A head-mounted face cover designed to protect the wearer completely from space-arc eye.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/welding.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/welding.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatWeldingup
|
||||
name: welding mask (up)
|
||||
description: A head-mounted face cover designed to protect the wearer completely from space-arc eye.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/weldingup.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/weldingup.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatFireWeldingMask
|
||||
name: fire welding mask
|
||||
description: A painted welding helmet, this one has flames on it.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/fire_welding_mask_1.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/fire_welding_mask_1.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatFireWeldingMaskup
|
||||
name: fire welding mask (up)
|
||||
description: A painted welding helmet, this one has flames on it.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/fire_welding_mask_1up.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/fire_welding_mask_1up.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBlueFlameWeldingMask
|
||||
name: blue flame welding mask
|
||||
description: A painted welding helmet, this one has blue flames on it.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/blue_flame_welding_mask_1.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/blue_flame_welding_mask_1.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatBlueFlameWeldingMaskup
|
||||
name: blue flame welding mask (up)
|
||||
description: A painted welding helmet, this one has blue flames on it.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/blue_flame_welding_mask_1up.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/blue_flame_welding_mask_1up.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatPaintedwelding
|
||||
name: painted welding mask
|
||||
description: A welding helmet, painted in crimson.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/paintedwelding.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/paintedwelding.rsi
|
||||
|
||||
- type: entity
|
||||
parent: HatBase
|
||||
id: HatPaintedweldingup
|
||||
name: painted welding mask (up)
|
||||
description: A welding helmet, painted in crimson.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/paintedweldingup.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/paintedweldingup.rsi
|
||||
43
Resources/Prototypes/Entities/Clothing/Head/welding.yml
Normal file
43
Resources/Prototypes/Entities/Clothing/Head/welding.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatWelding
|
||||
name: welding mask
|
||||
description: A head-mounted face cover designed to protect the wearer completely from space-arc eye.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Welding/welding.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Welding/welding.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatWeldingMaskFlame
|
||||
name: flame welding mask
|
||||
description: A painted welding helmet, this one has flames on it.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Welding/flame_welding_mask.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Welding/flame_welding_mask.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatWeldingMaskFlameBlue
|
||||
name: blue-flame welding mask
|
||||
description: A painted welding helmet, this one has blue flames on it.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Welding/blue_flame_welding_mask.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Welding/blue_flame_welding_mask.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatWeldingMaskPainted
|
||||
name: painted welding mask
|
||||
description: A welding helmet, painted in crimson.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Welding/paintedwelding.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Head/Welding/paintedwelding.rsi
|
||||
9
Resources/Prototypes/Entities/Clothing/Masks/base.yml
Normal file
9
Resources/Prototypes/Entities/Clothing/Masks/base.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingMaskBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
state: icon
|
||||
- type: Clothing
|
||||
Slots: [mask]
|
||||
@@ -1,98 +1,71 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: MasksBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Clothing
|
||||
Slots: [mask]
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: OldGasMaskClothing
|
||||
parent: ClothingMaskBase
|
||||
id: ClothingMaskGas
|
||||
name: old gas mask
|
||||
description: An old, dusty mask. Yet still dutifully functional.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_gasalt.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
sprite: Clothing/Mask/gas.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_gasalt.rsi
|
||||
sprite: Clothing/Mask/gas.rsi
|
||||
- type: BreathMask
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: GasMaskClothing
|
||||
name: gas mask
|
||||
description: Regulations require these to be stocked after the fourth coolant leak.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_gas.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_gas.rsi
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: BreathMaskClothing
|
||||
parent: ClothingMaskBase
|
||||
id: ClothingMaskBreath
|
||||
name: breath mask
|
||||
description: Might as well keep this on 24/7.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_breath.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
sprite: Clothing/Mask/breath.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_breath.rsi
|
||||
sprite: Clothing/Mask/breath.rsi
|
||||
- type: BreathMask
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: MaskClown
|
||||
parent: ClothingMaskBase
|
||||
id: ClothingMaskClown
|
||||
name: clown wig and mask
|
||||
description: A true prankster's facial attire. A clown is incomplete without his wig and mask.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_clown.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
sprite: Clothing/Mask/clown.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_clown.rsi
|
||||
sprite: Clothing/Mask/clown.rsi
|
||||
- type: BreathMask
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: MaskJoy
|
||||
parent: ClothingMaskBase
|
||||
id: ClothingMaskJoy
|
||||
name: joy mask
|
||||
description: Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_joy.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
sprite: Clothing/Mask/joy.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_joy.rsi
|
||||
sprite: Clothing/Mask/joy.rsi
|
||||
- type: BreathMask
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: MaskMime
|
||||
parent: ClothingMaskBase
|
||||
id: ClothingMaskMime
|
||||
name: mime mask
|
||||
description: The traditional mime's mask. It has an eerie facial posture.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_mime.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
sprite: Clothing/Mask/mime.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_mime.rsi
|
||||
sprite: Clothing/Mask/mime.rsi
|
||||
- type: BreathMask
|
||||
|
||||
- type: entity
|
||||
parent: MasksBase
|
||||
id: MaskSterile
|
||||
parent: ClothingMaskBase
|
||||
id: ClothingMaskSterile
|
||||
name: sterile mask
|
||||
description: A sterile mask designed to help prevent the spread of diseases.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Masks/mask_sterile.rsi
|
||||
state: icon
|
||||
- type: BreathMask
|
||||
sprite: Clothing/Mask/sterile.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Masks/mask_sterile.rsi
|
||||
sprite: Clothing/Mask/sterile.rsi
|
||||
- type: BreathMask
|
||||
|
||||
14
Resources/Prototypes/Entities/Clothing/Neck/base.yml
Normal file
14
Resources/Prototypes/Entities/Clothing/Neck/base.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingNeckBase
|
||||
abstract: true
|
||||
name: neck
|
||||
description:
|
||||
components:
|
||||
- type: Clothing
|
||||
size: 10
|
||||
QuickEquip: true
|
||||
Slots:
|
||||
- neck
|
||||
- type: Sprite
|
||||
state: icon
|
||||
@@ -1,124 +1,88 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: CloakClothing
|
||||
name: cloak
|
||||
abstract: true
|
||||
description:
|
||||
components:
|
||||
- type: Clothing
|
||||
size: 10
|
||||
QuickEquip: true
|
||||
Slots:
|
||||
- neck
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: CapCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakCap
|
||||
name: captain's cloak
|
||||
description: A pompous and comfy blue cloak with a nice gold trim.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/cap_cloak.rsi
|
||||
state: capcloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/cap.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/cap_cloak.rsi
|
||||
HeldPrefix: capcloak
|
||||
sprite: Clothing/Neck/Cloaks/cap.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: HosCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakHos
|
||||
name: HoS's cloak
|
||||
description: An exquisite dark and red cloak of a Head of Security.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/hos_cloak.rsi
|
||||
state: hoscloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/hos.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/hos_cloak.rsi
|
||||
HeldPrefix: hoscloak
|
||||
sprite: Clothing/Neck/Cloaks/hos.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: CeCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakCe
|
||||
name: CE's cloak
|
||||
description: A dark green cloak with light blue ornaments.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/ce_cloak.rsi
|
||||
state: cecloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/ce.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/ce_cloak.rsi
|
||||
HeldPrefix: cecloak
|
||||
sprite: Clothing/Neck/Cloaks/ce.rsi
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: CmoCloak
|
||||
parent: ClothingNeckBase
|
||||
id: CloathingCloakCmo
|
||||
name: CMO's cloak
|
||||
description: A sterile blue cloak with a green cross.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/cmo_cloak.rsi
|
||||
state: cmocloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/cmo.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/cmo_cloak.rsi
|
||||
HeldPrefix: cmocloak
|
||||
sprite: Clothing/Neck/Cloaks/cmo.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: RdCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakRd
|
||||
name: RD's cloak
|
||||
description: A white cloak with violet stripes.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/rd_cloak.rsi
|
||||
state: rdcloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/rd.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/rd_cloak.rsi
|
||||
HeldPrefix: rdcloak
|
||||
sprite: Clothing/Neck/Cloaks/rd.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: QmCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakQm
|
||||
name: QM's cloak
|
||||
description: A strong brown cloak with a reflective stripe.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/qm_cloak.rsi
|
||||
state: qmcloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/qm.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/qm_cloak.rsi
|
||||
HeldPrefix: qmcloak
|
||||
sprite: Clothing/Neck/Cloaks/qm.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: HopCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakHop
|
||||
name: HoP's cloak
|
||||
description: A blue cloak with red shoudlers and gold buttons.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/hop_cloak.rsi
|
||||
state: hopcloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/hop.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/hop_cloak.rsi
|
||||
HeldPrefix: hopcloak
|
||||
sprite: Clothing/Neck/Cloaks/hop.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CloakClothing
|
||||
id: HeraldCloak
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckCloakHerald
|
||||
name: Herald's cloak
|
||||
description: An evil-looking red cloak with spikes on its shoulders.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Cloaks/herald_cloak.rsi
|
||||
state: heraldcloak
|
||||
|
||||
sprite: Clothing/Neck/Cloaks/herald.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Cloaks/herald_cloak.rsi
|
||||
HeldPrefix: heraldcloak
|
||||
sprite: Clothing/Neck/Cloaks/herald.rsi
|
||||
|
||||
32
Resources/Prototypes/Entities/Clothing/Neck/misc.yml
Normal file
32
Resources/Prototypes/Entities/Clothing/Neck/misc.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckHeadphones
|
||||
name: headphones
|
||||
description: Quality headphones from Drunk Masters, with good sound insulation.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Misc/headphones.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Misc/headphones.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckStethoscope
|
||||
name: stethoscope
|
||||
description: An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Misc/stethoscope.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Misc/stethoscope.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckBling
|
||||
name: bling
|
||||
description: Damn, it feels good to be a gangster.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Misc/bling.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Misc/bling.rsi
|
||||
@@ -1,138 +0,0 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: NeckClothing
|
||||
abstract: true
|
||||
name: neck
|
||||
description:
|
||||
components:
|
||||
- type: Clothing
|
||||
size: 10
|
||||
QuickEquip: true
|
||||
Slots:
|
||||
- neck
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: HeadPhonesOn
|
||||
name: headphones
|
||||
description: Quality headphones from Drunk Masters, with good sound insulation.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/headphones.rsi
|
||||
state: headphones_on
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/headphones.rsi
|
||||
HeldPrefix: headphones_on
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: RedTie
|
||||
name: red-tie
|
||||
description: A neosilk clip-on red tie.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/redtie.rsi
|
||||
state: redtie
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/redtie.rsi
|
||||
HeldPrefix: redtie
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: DetTie
|
||||
name: detective's tie
|
||||
description: A loosely tied necktie, a perfect accessory for the over-worked detective.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/dettie.rsi
|
||||
state: dettie
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/dettie.rsi
|
||||
HeldPrefix: dettie
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: Stethoscope
|
||||
name: stethoscope
|
||||
description: An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/stethoscope.rsi
|
||||
state: stethoscope
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/stethoscope.rsi
|
||||
HeldPrefix: stethoscope
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: StripedRedScarf
|
||||
name: striped red scarf
|
||||
description: A stylish striped red scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/red_scarf.rsi
|
||||
state: stripedredscarf
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/red_scarf.rsi
|
||||
HeldPrefix: stripedredscarf
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: StripedBlueScarf
|
||||
name: striped blue scarf
|
||||
description: A stylish striped blue scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/blue_scarf.rsi
|
||||
state: stripedbluescarf
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/blue_scarf.rsi
|
||||
HeldPrefix: stripedbluescarf
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: StripedGreenScarf
|
||||
name: striped green scarf
|
||||
description: A stylish striped green scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/green_scarf.rsi
|
||||
state: stripedgreenscarf
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/green_scarf.rsi
|
||||
HeldPrefix: stripedgreenscarf
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: ZebraScarf
|
||||
name: zebra scarf
|
||||
description: A striped scarf, a mandatory accessory for artists.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/zebra_scarf.rsi
|
||||
state: zebrascarf
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/zebra_scarf.rsi
|
||||
HeldPrefix: zebrascarf
|
||||
|
||||
- type: entity
|
||||
parent: NeckClothing
|
||||
id: Bling
|
||||
name: bling
|
||||
description: Damn, it feels good to be a gangster.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/bling.rsi
|
||||
state: bling
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/bling.rsi
|
||||
HeldPrefix: bling
|
||||
43
Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml
Normal file
43
Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckScarfStripedRed
|
||||
name: striped red scarf
|
||||
description: A stylish striped red scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/red.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/red.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckScarfStripedBlue
|
||||
name: striped blue scarf
|
||||
description: A stylish striped blue scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/blue.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckScarfStripedGreen
|
||||
name: striped green scarf
|
||||
description: A stylish striped green scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/green.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/green.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckScarfStripedZebra
|
||||
name: zebra scarf
|
||||
description: A striped scarf, a mandatory accessory for artists.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Scarfs/zebra.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Scarfs/zebra.rsi
|
||||
21
Resources/Prototypes/Entities/Clothing/Neck/ties.yml
Normal file
21
Resources/Prototypes/Entities/Clothing/Neck/ties.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckTieRed
|
||||
name: red-tie
|
||||
description: A neosilk clip-on red tie.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Ties/redtie.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Ties/redtie.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckBase
|
||||
id: ClothingNeckTieDet
|
||||
name: detective's tie
|
||||
description: A loosely tied necktie, a perfect accessory for the over-worked detective.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/Ties/dettie.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Neck/Ties/dettie.rsi
|
||||
@@ -1,265 +1,109 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: OuterclothingBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- outerclothing
|
||||
- type: Sprite
|
||||
state: icon
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingArmorVest
|
||||
name: armor vest
|
||||
description: "A slim Type I armored vest that provides decent protection against most types of damage."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/armor.rsi
|
||||
state: armor
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/armor.rsi
|
||||
ClothingPrefix: armor
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingArmorreflec
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorReflective
|
||||
name: armor (reflective)
|
||||
description: An armored vest with advanced shielding to protect against energy weapons.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/armor_reflec.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/armor_reflec.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/armor_reflec.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/armor_reflec.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingBulletproof
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorBulletproof
|
||||
name: bulletproof
|
||||
description: An armored vest with heavy plates to protect against ballistic projectiles.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/bulletproof.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/bulletproof.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/bulletproof.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/bulletproof.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingCaparmor
|
||||
name: captain's armor
|
||||
description: A suit of protective formal armor made for the station's captain.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/caparmor.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/caparmor.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingAcolyte
|
||||
name: acolyte
|
||||
description: An armored suit for acolytes of the cult.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/acolyte.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/acolyte.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingCultarmour
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorCult
|
||||
name: cult armor
|
||||
description: An evil-looking cult armor, made of bones.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/cult_armour.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/cult_armour.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/cult_armour.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/cult_armour.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingCustodian
|
||||
name: custodian
|
||||
description: A special armormed custodian suit for cleaning trash in very dangerous places.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/custodian.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/custodian.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingHeavy
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorHeavy
|
||||
name: heavy
|
||||
description: A heavily armored suit that protects against excessive damage.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/heavy.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/heavy.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/heavy.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/heavy.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingHmarmorvest
|
||||
name: HM armor vest
|
||||
description: A handmade armor vest with a big and thick steel plate.
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorHeavyGreen
|
||||
name: heavy
|
||||
description: A heavily armored suit with green accents that protects against excessive damage.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/hm_armorvest.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/heavygreen.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/hm_armorvest.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/heavygreen.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingHos
|
||||
name: HoS armor vest
|
||||
description: A synthetic armor vest with COMMANDER printed in gold lettering on the chest. This one has added webbing and ballistic plates.
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorHeavyRed
|
||||
name: heavy
|
||||
description: A heavily armored suit with red accents that protects against excessive damage.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/hos.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/heavyred.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/hos.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/heavyred.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingKvest
|
||||
name: kvest
|
||||
description: An armor vest made of synthetic fibers.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/kvest.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/kvest.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingMagusblue
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorMagusblue
|
||||
name: magus blue
|
||||
description: An blue armored suit that provides good protection.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/magusblue.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/magusblue.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/magusblue.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/magusblue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingMagusred
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorMagusred
|
||||
name: magus red
|
||||
description: A red armored suit that provides good protection.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/magusred.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/magusred.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/magusred.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/magusred.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingMercwebvest
|
||||
name: merc web vest
|
||||
description: A high-quality armored vest made from a hard synthetic material. It is surprisingly flexible and light, despite formidable armor plating.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/mercwebvest.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/mercwebvest.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingReactive
|
||||
name: reactive
|
||||
description: An experimental suit with a reactive armor that stops very fast projectiles. Currently on.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/reactive.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/reactive.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingReactiveoff
|
||||
name: reactive (off)
|
||||
description: An experimental suit with a reactive armor that stops very fast projectiles. Currently off.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/reactiveoff.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/reactiveoff.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingRiot
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorRiot
|
||||
name: riot
|
||||
description: An armored vest with heavy padding to protect against melee attacks.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/riot.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/riot.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/riot.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/riot.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingScaf
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterArmorScaf
|
||||
name: scaf
|
||||
description: A green and brown tactical suit for combat situations.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/scaf.rsi
|
||||
|
||||
sprite: Clothing/OuterClothing/Armor/scaf.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/scaf.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingSwat
|
||||
name: swat
|
||||
description: Very durable vest that provides excellent protection from ranged and melee weapons.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/swat.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/swat.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingSninja
|
||||
name: S ninja
|
||||
description: This black technologically advanced, cybernetically-enhanced suit provides good protection and many abilities like invisibility or teleportation.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/s_ninja.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/s_ninja.rsi
|
||||
|
||||
- type: entity
|
||||
parent: OuterclothingBase
|
||||
id: OuterclothingWebvest
|
||||
name: web vest
|
||||
description: A synthetic armor vest. This one has added webbing and ballistic plates.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/OuterClothing/webvest.rsi
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/OuterClothing/webvest.rsi
|
||||
sprite: Clothing/OuterClothing/Armor/scaf.rsi
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
- type: entity
|
||||
parent: Clothing
|
||||
id: ClothingOuterBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Clothing
|
||||
Slots:
|
||||
- outerclothing
|
||||
- type: Sprite
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterHardsuitBase
|
||||
name: base hardsuit
|
||||
abstract: true
|
||||
components:
|
||||
- type: PressureProtection
|
||||
highPressureMultiplier: 0.75
|
||||
lowPressureMultiplier: 100
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user