Merge branch 'master' into offmed-staging
This commit is contained in:
@@ -14,6 +14,9 @@ namespace Content.Client.Administration.UI.Notes;
|
|||||||
[GenerateTypedNameReferences]
|
[GenerateTypedNameReferences]
|
||||||
public sealed partial class AdminNotesLine : BoxContainer
|
public sealed partial class AdminNotesLine : BoxContainer
|
||||||
{
|
{
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private readonly ISawmill _sawmill = default!;
|
||||||
private readonly SpriteSystem _sprites;
|
private readonly SpriteSystem _sprites;
|
||||||
|
|
||||||
private const string AdminNotesTextureBase = "/Textures/Interface/AdminNotes/";
|
private const string AdminNotesTextureBase = "/Textures/Interface/AdminNotes/";
|
||||||
@@ -33,6 +36,8 @@ public sealed partial class AdminNotesLine : BoxContainer
|
|||||||
public AdminNotesLine(SpriteSystem sprites, SharedAdminNote note)
|
public AdminNotesLine(SpriteSystem sprites, SharedAdminNote note)
|
||||||
{
|
{
|
||||||
RobustXamlLoader.Load(this);
|
RobustXamlLoader.Load(this);
|
||||||
|
|
||||||
|
_sawmill = _logManager.GetSawmill("admin.notes");
|
||||||
_sprites = sprites;
|
_sprites = sprites;
|
||||||
|
|
||||||
Note = note;
|
Note = note;
|
||||||
@@ -61,7 +66,7 @@ public sealed partial class AdminNotesLine : BoxContainer
|
|||||||
if (iconPath is null)
|
if (iconPath is null)
|
||||||
{
|
{
|
||||||
SeverityRect.Visible = false;
|
SeverityRect.Visible = false;
|
||||||
Logger.WarningS("admin.notes", $"Could not find an icon for note ID {Note.Id}");
|
_sawmill.Warning($"Could not find an icon for note ID {Note.Id}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -37,8 +37,7 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
|
|||||||
if (!layerExists)
|
if (!layerExists)
|
||||||
layer = SpriteSystem.LayerMapReserve((uid, args.Sprite), TypingIndicatorLayers.Base);
|
layer = SpriteSystem.LayerMapReserve((uid, args.Sprite), TypingIndicatorLayers.Base);
|
||||||
|
|
||||||
SpriteSystem.LayerSetRsi((uid, args.Sprite), layer, proto.SpritePath);
|
SpriteSystem.LayerSetRsi((uid, args.Sprite), layer, proto.SpritePath, proto.TypingState);
|
||||||
SpriteSystem.LayerSetRsiState((uid, args.Sprite), layer, proto.TypingState);
|
|
||||||
args.Sprite.LayerSetShader(layer, proto.Shader);
|
args.Sprite.LayerSetShader(layer, proto.Shader);
|
||||||
SpriteSystem.LayerSetOffset((uid, args.Sprite), layer, proto.Offset);
|
SpriteSystem.LayerSetOffset((uid, args.Sprite), layer, proto.Offset);
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,10 @@ namespace Content.Client.Construction.UI
|
|||||||
[Dependency] private readonly IUserInterfaceManager _uiManager = default!;
|
[Dependency] private readonly IUserInterfaceManager _uiManager = default!;
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
[Dependency] private readonly IClientPreferencesManager _preferencesManager = default!;
|
[Dependency] private readonly IClientPreferencesManager _preferencesManager = default!;
|
||||||
private readonly SpriteSystem _spriteSystem;
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private readonly ISawmill _sawmill = default!;
|
||||||
|
private readonly SpriteSystem _spriteSystem;
|
||||||
private readonly IConstructionMenuView _constructionView;
|
private readonly IConstructionMenuView _constructionView;
|
||||||
private readonly EntityWhitelistSystem _whitelistSystem;
|
private readonly EntityWhitelistSystem _whitelistSystem;
|
||||||
|
|
||||||
@@ -87,6 +89,8 @@ namespace Content.Client.Construction.UI
|
|||||||
{
|
{
|
||||||
// This is a lot easier than a factory
|
// This is a lot easier than a factory
|
||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
|
_sawmill = _logManager.GetSawmill("construction.menu");
|
||||||
|
|
||||||
_constructionView = new ConstructionMenu();
|
_constructionView = new ConstructionMenu();
|
||||||
_whitelistSystem = _entManager.System<EntityWhitelistSystem>();
|
_whitelistSystem = _entManager.System<EntityWhitelistSystem>();
|
||||||
_spriteSystem = _entManager.System<SpriteSystem>();
|
_spriteSystem = _entManager.System<SpriteSystem>();
|
||||||
@@ -284,7 +288,7 @@ namespace Content.Client.Construction.UI
|
|||||||
|
|
||||||
if (!_constructionSystem!.TryGetRecipePrototype(recipe.ID, out var targetProtoId))
|
if (!_constructionSystem!.TryGetRecipePrototype(recipe.ID, out var targetProtoId))
|
||||||
{
|
{
|
||||||
Logger.Error("Cannot find the target prototype in the recipe cache with the id \"{0}\" of {1}.",
|
_sawmill.Error("Cannot find the target prototype in the recipe cache with the id \"{0}\" of {1}.",
|
||||||
recipe.ID,
|
recipe.ID,
|
||||||
nameof(ConstructionPrototype));
|
nameof(ConstructionPrototype));
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ using Robust.Client.UserInterface;
|
|||||||
using Robust.Shared.ContentPack;
|
using Robust.Shared.ContentPack;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Reflection;
|
using Robust.Shared.Reflection;
|
||||||
using Robust.Shared.Sandboxing;
|
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
using static Pidgin.Parser;
|
using static Pidgin.Parser;
|
||||||
|
|
||||||
@@ -21,7 +20,7 @@ public sealed partial class DocumentParsingManager
|
|||||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||||
[Dependency] private readonly IReflectionManager _reflectionManager = default!;
|
[Dependency] private readonly IReflectionManager _reflectionManager = default!;
|
||||||
[Dependency] private readonly IResourceManager _resourceManager = default!;
|
[Dependency] private readonly IResourceManager _resourceManager = default!;
|
||||||
[Dependency] private readonly ISandboxHelper _sandboxHelper = default!;
|
[Dependency] private readonly IDynamicTypeFactory _dynamicTypeFactory = default!;
|
||||||
|
|
||||||
private readonly Dictionary<string, Parser<char, Control>> _tagControlParsers = new();
|
private readonly Dictionary<string, Parser<char, Control>> _tagControlParsers = new();
|
||||||
private Parser<char, Control> _controlParser = default!;
|
private Parser<char, Control> _controlParser = default!;
|
||||||
@@ -43,7 +42,7 @@ public sealed partial class DocumentParsingManager
|
|||||||
|
|
||||||
foreach (var typ in _reflectionManager.GetAllChildren<IDocumentTag>())
|
foreach (var typ in _reflectionManager.GetAllChildren<IDocumentTag>())
|
||||||
{
|
{
|
||||||
_tagControlParsers.Add(typ.Name, CreateTagControlParser(typ.Name, typ, _sandboxHelper));
|
_tagControlParsers.Add(typ.Name, CreateTagControlParser(typ.Name, typ, _dynamicTypeFactory));
|
||||||
}
|
}
|
||||||
|
|
||||||
ControlParser = whitespaceAndCommentParser.Then(_controlParser.Many());
|
ControlParser = whitespaceAndCommentParser.Then(_controlParser.Many());
|
||||||
@@ -51,22 +50,22 @@ public sealed partial class DocumentParsingManager
|
|||||||
_sawmill = Logger.GetSawmill("Guidebook");
|
_sawmill = Logger.GetSawmill("Guidebook");
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TryAddMarkup(Control control, ProtoId<GuideEntryPrototype> entryId, bool log = true)
|
public bool TryAddMarkup(Control control, ProtoId<GuideEntryPrototype> entryId)
|
||||||
{
|
{
|
||||||
if (!_prototype.Resolve(entryId, out var entry))
|
if (!_prototype.Resolve(entryId, out var entry))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
using var file = _resourceManager.ContentFileReadText(entry.Text);
|
using var file = _resourceManager.ContentFileReadText(entry.Text);
|
||||||
return TryAddMarkup(control, file.ReadToEnd(), log);
|
return TryAddMarkup(control, file.ReadToEnd());
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TryAddMarkup(Control control, GuideEntry entry, bool log = true)
|
public bool TryAddMarkup(Control control, GuideEntry entry)
|
||||||
{
|
{
|
||||||
using var file = _resourceManager.ContentFileReadText(entry.Text);
|
using var file = _resourceManager.ContentFileReadText(entry.Text);
|
||||||
return TryAddMarkup(control, file.ReadToEnd(), log);
|
return TryAddMarkup(control, file.ReadToEnd());
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TryAddMarkup(Control control, string text, bool log = true)
|
public bool TryAddMarkup(Control control, string text)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -87,14 +86,14 @@ public sealed partial class DocumentParsingManager
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Parser<char, Control> CreateTagControlParser(string tagId, Type tagType, ISandboxHelper sandbox)
|
private Parser<char, Control> CreateTagControlParser(string tagId, Type tagType, IDynamicTypeFactory typeFactory)
|
||||||
{
|
{
|
||||||
return Map(
|
return Map(
|
||||||
(args, controls) =>
|
(args, controls) =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var tag = (IDocumentTag) sandbox.CreateInstance(tagType);
|
var tag = (IDocumentTag) typeFactory.CreateInstance(tagType);
|
||||||
if (!tag.TryParseTag(args, out var control))
|
if (!tag.TryParseTag(args, out var control))
|
||||||
{
|
{
|
||||||
_sawmill.Error($"Failed to parse {tagId} args");
|
_sawmill.Error($"Failed to parse {tagId} args");
|
||||||
|
|||||||
@@ -8,6 +8,11 @@ namespace Content.Client.Guidebook.Richtext;
|
|||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public sealed class Table : TableContainer, IDocumentTag
|
public sealed class Table : TableContainer, IDocumentTag
|
||||||
{
|
{
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private ISawmill Sawmill => _sawmill ??= _logManager.GetSawmill("table");
|
||||||
|
private ISawmill? _sawmill;
|
||||||
|
|
||||||
public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
|
public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
|
||||||
{
|
{
|
||||||
HorizontalExpand = true;
|
HorizontalExpand = true;
|
||||||
@@ -15,7 +20,7 @@ public sealed class Table : TableContainer, IDocumentTag
|
|||||||
|
|
||||||
if (!args.TryGetValue("Columns", out var columns) || !int.TryParse(columns, out var columnsCount))
|
if (!args.TryGetValue("Columns", out var columns) || !int.TryParse(columns, out var columnsCount))
|
||||||
{
|
{
|
||||||
Logger.Error("Guidebook tag \"Table\" does not specify required property \"Columns.\"");
|
Sawmill.Error("Guidebook tag \"Table\" does not specify required property \"Columns.\"");
|
||||||
control = null;
|
control = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
@@ -12,6 +12,11 @@ namespace Content.Client.Guidebook.RichText;
|
|||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public sealed class TextLinkTag : IMarkupTagHandler
|
public sealed class TextLinkTag : IMarkupTagHandler
|
||||||
{
|
{
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private ISawmill Sawmill => _sawmill ??= _logManager.GetSawmill(Name);
|
||||||
|
private ISawmill? _sawmill;
|
||||||
|
|
||||||
public static Color LinkColor => Color.CornflowerBlue;
|
public static Color LinkColor => Color.CornflowerBlue;
|
||||||
|
|
||||||
public string Name => "textlink";
|
public string Name => "textlink";
|
||||||
@@ -53,7 +58,7 @@ public sealed class TextLinkTag : IMarkupTagHandler
|
|||||||
if (control.TryGetParentHandler<ILinkClickHandler>(out var handler))
|
if (control.TryGetParentHandler<ILinkClickHandler>(out var handler))
|
||||||
handler.HandleClick(link);
|
handler.HandleClick(link);
|
||||||
else
|
else
|
||||||
Logger.Warning("Warning! No valid ILinkClickHandler found.");
|
Sawmill.Warning("Warning! No valid ILinkClickHandler found.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ namespace Content.Client.Launcher
|
|||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||||
[Dependency] private readonly IClipboardManager _clipboard = default!;
|
[Dependency] private readonly IClipboardManager _clipboard = default!;
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private ISawmill _sawmill = default!;
|
||||||
private LauncherConnectingGui? _control;
|
private LauncherConnectingGui? _control;
|
||||||
|
|
||||||
private Page _currentPage;
|
private Page _currentPage;
|
||||||
@@ -59,6 +61,8 @@ namespace Content.Client.Launcher
|
|||||||
|
|
||||||
protected override void Startup()
|
protected override void Startup()
|
||||||
{
|
{
|
||||||
|
_sawmill = _logManager.GetSawmill("launcher-ui");
|
||||||
|
|
||||||
_control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg, _clipboard);
|
_control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg, _clipboard);
|
||||||
|
|
||||||
_userInterfaceManager.StateRoot.AddChild(_control);
|
_userInterfaceManager.StateRoot.AddChild(_control);
|
||||||
@@ -115,12 +119,12 @@ namespace Content.Client.Launcher
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.InfoS("launcher-ui", $"Redial not possible, no Ss14Address");
|
_sawmill.Info($"Redial not possible, no Ss14Address");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.ErrorS("launcher-ui", $"Redial exception: {ex}");
|
_sawmill.Error($"Redial exception: {ex}");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,18 @@ namespace Content.Client.UserInterface.Systems.Alerts.Widgets;
|
|||||||
[GenerateTypedNameReferences]
|
[GenerateTypedNameReferences]
|
||||||
public sealed partial class AlertsUI : UIWidget
|
public sealed partial class AlertsUI : UIWidget
|
||||||
{
|
{
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private readonly ISawmill _sawmill = default!;
|
||||||
|
|
||||||
// also known as Control.Children?
|
// also known as Control.Children?
|
||||||
private readonly Dictionary<AlertKey, AlertControl> _alertControls = new();
|
private readonly Dictionary<AlertKey, AlertControl> _alertControls = new();
|
||||||
|
|
||||||
public AlertsUI()
|
public AlertsUI()
|
||||||
{
|
{
|
||||||
RobustXamlLoader.Load(this);
|
RobustXamlLoader.Load(this);
|
||||||
|
|
||||||
|
_sawmill = _logManager.GetSawmill("alertsui");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SyncControls(AlertsSystem alertsSystem,
|
public void SyncControls(AlertsSystem alertsSystem,
|
||||||
@@ -78,15 +84,15 @@ public sealed partial class AlertsUI : UIWidget
|
|||||||
{
|
{
|
||||||
if (!alertKey.AlertType.HasValue)
|
if (!alertKey.AlertType.HasValue)
|
||||||
{
|
{
|
||||||
Logger.WarningS("alert", "found alertkey without alerttype," +
|
_sawmill.Warning("found alertkey without alerttype," +
|
||||||
" alert keys should never be stored without an alerttype set: {0}", alertKey);
|
" alert keys should never be stored without an alerttype set: {0}", alertKey);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var alertType = alertKey.AlertType.Value;
|
var alertType = alertKey.AlertType.Value;
|
||||||
if (!alertsSystem.TryGet(alertType, out var newAlert))
|
if (!alertsSystem.TryGet(alertType, out var newAlert))
|
||||||
{
|
{
|
||||||
Logger.ErrorS("alert", "Unrecognized alertType {0}", alertType);
|
_sawmill.Error("Unrecognized alertType {0}", alertType);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,9 @@ public sealed class ReplayMainScreen : State
|
|||||||
[Dependency] private readonly IClientRobustSerializer _serializer = default!;
|
[Dependency] private readonly IClientRobustSerializer _serializer = default!;
|
||||||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
||||||
[Dependency] private readonly ContentReplayPlaybackManager _replayMan = default!;
|
[Dependency] private readonly ContentReplayPlaybackManager _replayMan = default!;
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
|
private ISawmill _sawmill = default!;
|
||||||
private ReplayMainMenuControl _mainMenuControl = default!;
|
private ReplayMainMenuControl _mainMenuControl = default!;
|
||||||
private SelectReplayWindow? _selectWindow;
|
private SelectReplayWindow? _selectWindow;
|
||||||
private ResPath _directory;
|
private ResPath _directory;
|
||||||
@@ -42,6 +44,8 @@ public sealed class ReplayMainScreen : State
|
|||||||
|
|
||||||
protected override void Startup()
|
protected override void Startup()
|
||||||
{
|
{
|
||||||
|
_sawmill = _logManager.GetSawmill("replay.screen");
|
||||||
|
|
||||||
_mainMenuControl = new(_resourceCache);
|
_mainMenuControl = new(_resourceCache);
|
||||||
_userInterfaceManager.StateRoot.AddChild(_mainMenuControl);
|
_userInterfaceManager.StateRoot.AddChild(_mainMenuControl);
|
||||||
|
|
||||||
@@ -263,7 +267,7 @@ public sealed class ReplayMainScreen : State
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.Error($"Failed to load replay info. Exception: {ex}");
|
_sawmill.Error($"Failed to load replay info. Exception: {ex}");
|
||||||
SelectReplay(null);
|
SelectReplay(null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,7 +112,9 @@ public sealed class SpaceHeaterSystem : EntitySystem
|
|||||||
if (!TryComp<GasThermoMachineComponent>(uid, out var thermoMachine))
|
if (!TryComp<GasThermoMachineComponent>(uid, out var thermoMachine))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
thermoMachine.TargetTemperature = float.Clamp(thermoMachine.TargetTemperature + args.Temperature, thermoMachine.MinTemperature, thermoMachine.MaxTemperature);
|
thermoMachine.TargetTemperature = float.Clamp(thermoMachine.TargetTemperature + args.Temperature,
|
||||||
|
spaceHeater.MinTemperature,
|
||||||
|
spaceHeater.MaxTemperature);
|
||||||
|
|
||||||
UpdateAppearance(uid);
|
UpdateAppearance(uid);
|
||||||
DirtyUI(uid, spaceHeater);
|
DirtyUI(uid, spaceHeater);
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
using Content.Server.Body.Systems;
|
|
||||||
|
|
||||||
namespace Content.Server.Body.Components
|
|
||||||
{
|
|
||||||
[RegisterComponent, Access(typeof(BrainSystem))]
|
|
||||||
public sealed partial class BrainComponent : Component
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,3 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using Content.Server.Administration.Logs;
|
using Content.Server.Administration.Logs;
|
||||||
using Content.Server.Administration.Managers;
|
using Content.Server.Administration.Managers;
|
||||||
using Content.Server.Administration.Systems;
|
using Content.Server.Administration.Systems;
|
||||||
@@ -18,6 +15,9 @@ using Robust.Shared.Network;
|
|||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
using Robust.Shared.Replays;
|
using Robust.Shared.Replays;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace Content.Server.Chat.Managers;
|
namespace Content.Server.Chat.Managers;
|
||||||
|
|
||||||
@@ -45,6 +45,7 @@ internal sealed partial class ChatManager : IChatManager
|
|||||||
[Dependency] private readonly PlayerRateLimitManager _rateLimitManager = default!;
|
[Dependency] private readonly PlayerRateLimitManager _rateLimitManager = default!;
|
||||||
[Dependency] private readonly ISharedPlayerManager _player = default!;
|
[Dependency] private readonly ISharedPlayerManager _player = default!;
|
||||||
[Dependency] private readonly DiscordChatLink _discordLink = default!;
|
[Dependency] private readonly DiscordChatLink _discordLink = default!;
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The maximum length a player-sent message can be sent
|
/// The maximum length a player-sent message can be sent
|
||||||
@@ -54,6 +55,7 @@ internal sealed partial class ChatManager : IChatManager
|
|||||||
private bool _oocEnabled = true;
|
private bool _oocEnabled = true;
|
||||||
private bool _adminOocEnabled = true;
|
private bool _adminOocEnabled = true;
|
||||||
|
|
||||||
|
private ISawmill _sawmill = default!;
|
||||||
private readonly Dictionary<NetUserId, ChatUser> _players = new();
|
private readonly Dictionary<NetUserId, ChatUser> _players = new();
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
@@ -64,6 +66,8 @@ internal sealed partial class ChatManager : IChatManager
|
|||||||
_configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
|
_configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
|
||||||
_configurationManager.OnValueChanged(CCVars.AdminOocEnabled, OnAdminOocEnabledChanged, true);
|
_configurationManager.OnValueChanged(CCVars.AdminOocEnabled, OnAdminOocEnabledChanged, true);
|
||||||
|
|
||||||
|
_sawmill = _logManager.GetSawmill("SERVER");
|
||||||
|
|
||||||
RegisterRateLimits();
|
RegisterRateLimits();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,7 +115,7 @@ internal sealed partial class ChatManager : IChatManager
|
|||||||
{
|
{
|
||||||
var wrappedMessage = Loc.GetString("chat-manager-server-wrap-message", ("message", FormattedMessage.EscapeText(message)));
|
var wrappedMessage = Loc.GetString("chat-manager-server-wrap-message", ("message", FormattedMessage.EscapeText(message)));
|
||||||
ChatMessageToAll(ChatChannel.Server, message, wrappedMessage, EntityUid.Invalid, hideChat: false, recordReplay: true, colorOverride: colorOverride);
|
ChatMessageToAll(ChatChannel.Server, message, wrappedMessage, EntityUid.Invalid, hideChat: false, recordReplay: true, colorOverride: colorOverride);
|
||||||
Logger.InfoS("SERVER", message);
|
_sawmill.Info(message);
|
||||||
|
|
||||||
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
|
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public sealed partial class ReactionMixerSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
SubscribeLocalEvent<ReactionMixerComponent, AfterInteractEvent>(OnAfterInteract);
|
SubscribeLocalEvent<ReactionMixerComponent, AfterInteractEvent>(OnAfterInteract, before: [typeof(IngestionSystem)]);
|
||||||
SubscribeLocalEvent<ReactionMixerComponent, ShakeEvent>(OnShake);
|
SubscribeLocalEvent<ReactionMixerComponent, ShakeEvent>(OnShake);
|
||||||
SubscribeLocalEvent<ReactionMixerComponent, ReactionMixDoAfterEvent>(OnDoAfter);
|
SubscribeLocalEvent<ReactionMixerComponent, ReactionMixDoAfterEvent>(OnDoAfter);
|
||||||
}
|
}
|
||||||
@@ -29,12 +29,13 @@ public sealed partial class ReactionMixerSystem : EntitySystem
|
|||||||
if (!args.Target.HasValue || !args.CanReach || !entity.Comp.MixOnInteract)
|
if (!args.Target.HasValue || !args.CanReach || !entity.Comp.MixOnInteract)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!MixAttempt(entity, args.Target.Value, out var solution))
|
if (!MixAttempt(entity, args.Target.Value, out _))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var doAfterArgs = new DoAfterArgs(EntityManager, args.User, entity.Comp.TimeToMix, new ReactionMixDoAfterEvent(), entity, args.Target.Value, entity);
|
var doAfterArgs = new DoAfterArgs(EntityManager, args.User, entity.Comp.TimeToMix, new ReactionMixDoAfterEvent(), entity, args.Target.Value, entity);
|
||||||
|
|
||||||
_doAfterSystem.TryStartDoAfter(doAfterArgs);
|
_doAfterSystem.TryStartDoAfter(doAfterArgs);
|
||||||
|
args.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDoAfter(Entity<ReactionMixerComponent> entity, ref ReactionMixDoAfterEvent args)
|
private void OnDoAfter(Entity<ReactionMixerComponent> entity, ref ReactionMixDoAfterEvent args)
|
||||||
|
|||||||
@@ -13,11 +13,14 @@ namespace Content.Server.GameTicking.Commands
|
|||||||
[AnyCommand]
|
[AnyCommand]
|
||||||
sealed class JoinGameCommand : IConsoleCommand
|
sealed class JoinGameCommand : IConsoleCommand
|
||||||
{
|
{
|
||||||
|
[Dependency] private readonly ILogManager _logManager = default!;
|
||||||
[Dependency] private readonly IEntityManager _entManager = default!;
|
[Dependency] private readonly IEntityManager _entManager = default!;
|
||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
[Dependency] private readonly IAdminManager _adminManager = default!;
|
[Dependency] private readonly IAdminManager _adminManager = default!;
|
||||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||||
|
|
||||||
|
private readonly ISawmill _sawmill = default!;
|
||||||
|
|
||||||
public string Command => "joingame";
|
public string Command => "joingame";
|
||||||
public string Description => "";
|
public string Description => "";
|
||||||
public string Help => "";
|
public string Help => "";
|
||||||
@@ -25,6 +28,8 @@ namespace Content.Server.GameTicking.Commands
|
|||||||
public JoinGameCommand()
|
public JoinGameCommand()
|
||||||
{
|
{
|
||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
_sawmill = _logManager.GetSawmill("security");
|
||||||
}
|
}
|
||||||
public void Execute(IConsoleShell shell, string argStr, string[] args)
|
public void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||||
{
|
{
|
||||||
@@ -46,7 +51,7 @@ namespace Content.Server.GameTicking.Commands
|
|||||||
|
|
||||||
if (ticker.PlayerGameStatuses.TryGetValue(player.UserId, out var status) && status == PlayerGameStatus.JoinedGame)
|
if (ticker.PlayerGameStatuses.TryGetValue(player.UserId, out var status) && status == PlayerGameStatus.JoinedGame)
|
||||||
{
|
{
|
||||||
Logger.InfoS("security", $"{player.Name} ({player.UserId}) attempted to latejoin while in-game.");
|
_sawmill.Info($"{player.Name} ({player.UserId}) attempted to latejoin while in-game.");
|
||||||
shell.WriteError($"{player.Name} is not in the lobby. This incident will be reported.");
|
shell.WriteError($"{player.Name} is not in the lobby. This incident will be reported.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
namespace Content.Server.Ghost.Components
|
|
||||||
{
|
|
||||||
[RegisterComponent]
|
|
||||||
public sealed partial class GhostOnMoveComponent : Component
|
|
||||||
{
|
|
||||||
[DataField("canReturn")] public bool CanReturn { get; set; } = true;
|
|
||||||
|
|
||||||
[DataField("mustBeDead")]
|
|
||||||
public bool MustBeDead = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -9,4 +9,5 @@ public abstract partial class NPCComponent : SharedNPCComponent
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[DataField("blackboard", customTypeSerializer: typeof(NPCBlackboardSerializer))]
|
[DataField("blackboard", customTypeSerializer: typeof(NPCBlackboardSerializer))]
|
||||||
public NPCBlackboard Blackboard = new();
|
public NPCBlackboard Blackboard = new();
|
||||||
|
// TODO FULL GAME SAVE Serialize this
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ public sealed partial class HTNComponent : NPCComponent
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ViewVariables]
|
[ViewVariables]
|
||||||
public HTNPlan? Plan;
|
public HTNPlan? Plan;
|
||||||
|
// TODO FULL GAME SAVE serialize this?
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// How long to wait after having planned to try planning again.
|
/// How long to wait after having planned to try planning again.
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ public sealed class HTNSystem : EntitySystem
|
|||||||
base.Initialize();
|
base.Initialize();
|
||||||
SubscribeLocalEvent<HTNComponent, MobStateChangedEvent>(_npc.OnMobStateChange);
|
SubscribeLocalEvent<HTNComponent, MobStateChangedEvent>(_npc.OnMobStateChange);
|
||||||
SubscribeLocalEvent<HTNComponent, MapInitEvent>(_npc.OnNPCMapInit);
|
SubscribeLocalEvent<HTNComponent, MapInitEvent>(_npc.OnNPCMapInit);
|
||||||
|
SubscribeLocalEvent<HTNComponent, ComponentStartup>(_npc.OnNPCStartup);
|
||||||
SubscribeLocalEvent<HTNComponent, PlayerAttachedEvent>(_npc.OnPlayerNPCAttach);
|
SubscribeLocalEvent<HTNComponent, PlayerAttachedEvent>(_npc.OnPlayerNPCAttach);
|
||||||
SubscribeLocalEvent<HTNComponent, PlayerDetachedEvent>(_npc.OnPlayerNPCDetach);
|
SubscribeLocalEvent<HTNComponent, PlayerDetachedEvent>(_npc.OnPlayerNPCDetach);
|
||||||
SubscribeLocalEvent<HTNComponent, ComponentShutdown>(OnHTNShutdown);
|
SubscribeLocalEvent<HTNComponent, ComponentShutdown>(OnHTNShutdown);
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using Content.Shared.StatusEffectNew;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Server.NPC.HTN.Preconditions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns true if entity have specified status effect
|
||||||
|
/// </summary>
|
||||||
|
public sealed partial class HasStatusEffectPrecondition : HTNPrecondition
|
||||||
|
{
|
||||||
|
private StatusEffectsSystem _statusEffects = default!;
|
||||||
|
|
||||||
|
[DataField(required: true)]
|
||||||
|
public EntProtoId StatusEffect;
|
||||||
|
|
||||||
|
public override void Initialize(IEntitySystemManager sysManager)
|
||||||
|
{
|
||||||
|
base.Initialize(sysManager);
|
||||||
|
_statusEffects = sysManager.GetEntitySystem<StatusEffectsSystem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsMet(NPCBlackboard blackboard)
|
||||||
|
{
|
||||||
|
var owner = blackboard.GetValue<EntityUid>(NPCBlackboard.Owner);
|
||||||
|
|
||||||
|
return _statusEffects.HasStatusEffect(owner, StatusEffect);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -63,9 +63,13 @@ namespace Content.Server.NPC.Systems
|
|||||||
WakeNPC(uid, component);
|
WakeNPC(uid, component);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnNPCMapInit(EntityUid uid, HTNComponent component, MapInitEvent args)
|
public void OnNPCStartup(EntityUid uid, HTNComponent component, ComponentStartup args)
|
||||||
{
|
{
|
||||||
component.Blackboard.SetValue(NPCBlackboard.Owner, uid);
|
component.Blackboard.SetValue(NPCBlackboard.Owner, uid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnNPCMapInit(EntityUid uid, HTNComponent component, MapInitEvent args)
|
||||||
|
{
|
||||||
WakeNPC(uid, component);
|
WakeNPC(uid, component);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
6
Content.Shared/Body/Components/BrainComponent.cs
Normal file
6
Content.Shared/Body/Components/BrainComponent.cs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
using Content.Shared.Body.Systems;
|
||||||
|
|
||||||
|
namespace Content.Shared.Body.Components;
|
||||||
|
|
||||||
|
[RegisterComponent, Access(typeof(BrainSystem))]
|
||||||
|
public sealed partial class BrainComponent : Component;
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
using Content.Server.Body.Components;
|
using Content.Shared.Body.Components;
|
||||||
using Content.Server.Ghost.Components;
|
|
||||||
using Content.Shared.Body.Events;
|
using Content.Shared.Body.Events;
|
||||||
|
using Content.Shared.Ghost;
|
||||||
using Content.Shared.Mind;
|
using Content.Shared.Mind;
|
||||||
using Content.Shared.Mind.Components;
|
using Content.Shared.Mind.Components;
|
||||||
using Content.Shared.Mobs.Components;
|
using Content.Shared.Mobs.Components;
|
||||||
using Content.Shared.Pointing;
|
using Content.Shared.Pointing;
|
||||||
|
|
||||||
namespace Content.Server.Body.Systems;
|
namespace Content.Shared.Body.Systems;
|
||||||
|
|
||||||
public sealed class BrainSystem : EntitySystem
|
public sealed class BrainSystem : EntitySystem
|
||||||
{
|
{
|
||||||
@@ -43,4 +43,3 @@ public sealed class BrainSystem : EntitySystem
|
|||||||
args.Cancel();
|
args.Cancel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
13
Content.Shared/Ghost/GhostOnMoveComponent.cs
Normal file
13
Content.Shared/Ghost/GhostOnMoveComponent.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.Ghost;
|
||||||
|
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
public sealed partial class GhostOnMoveComponent : Component
|
||||||
|
{
|
||||||
|
[DataField]
|
||||||
|
public bool CanReturn = true;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public bool MustBeDead;
|
||||||
|
}
|
||||||
@@ -205,6 +205,7 @@ namespace Content.Shared.Preferences
|
|||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Species = species,
|
Species = species,
|
||||||
|
Appearance = HumanoidCharacterAppearance.DefaultWithSpecies(species),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
using Content.Shared.Inventory;
|
using Content.Shared.Inventory;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
namespace Content.Shared.Storage.Components;
|
namespace Content.Shared.Storage.Components;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Applies an ongoing pickup area around the attached entity.
|
/// Applies an ongoing pickup area around the attached entity.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RegisterComponent, AutoGenerateComponentPause]
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
[AutoGenerateComponentState]
|
||||||
|
[AutoGenerateComponentPause]
|
||||||
public sealed partial class MagnetPickupComponent : Component
|
public sealed partial class MagnetPickupComponent : Component
|
||||||
{
|
{
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField("nextScan")]
|
[ViewVariables(VVAccess.ReadWrite), DataField("nextScan")]
|
||||||
[AutoPausedField]
|
[AutoPausedField]
|
||||||
|
[AutoNetworkedField]
|
||||||
public TimeSpan NextScan = TimeSpan.Zero;
|
public TimeSpan NextScan = TimeSpan.Zero;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ public sealed class MagnetPickupSystem : EntitySystem
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
comp.NextScan += ScanDelay;
|
comp.NextScan += ScanDelay;
|
||||||
|
Dirty(uid, comp);
|
||||||
|
|
||||||
if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef))
|
if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef))
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -1447,5 +1447,19 @@ Entries:
|
|||||||
id: 175
|
id: 175
|
||||||
time: '2025-09-25T21:43:53.0000000+00:00'
|
time: '2025-09-25T21:43:53.0000000+00:00'
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/40246
|
url: https://github.com/space-wizards/space-station-14/pull/40246
|
||||||
|
- author: Kowlin
|
||||||
|
changes:
|
||||||
|
- message: Adjusted meatspike admin log severities.
|
||||||
|
type: Tweak
|
||||||
|
id: 176
|
||||||
|
time: '2025-10-03T11:31:37.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40604
|
||||||
|
- author: Kowlin
|
||||||
|
changes:
|
||||||
|
- message: Stun prods are now high severity when crafted.
|
||||||
|
type: Tweak
|
||||||
|
id: 177
|
||||||
|
time: '2025-10-05T07:40:15.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40709
|
||||||
Name: Admin
|
Name: Admin
|
||||||
Order: 2
|
Order: 2
|
||||||
|
|||||||
@@ -1,312 +1,4 @@
|
|||||||
Entries:
|
Entries:
|
||||||
- author: EmoGarbage404
|
|
||||||
changes:
|
|
||||||
- message: You can now patch holes in the floors of the evac shuttle and ATS.
|
|
||||||
type: Fix
|
|
||||||
id: 8501
|
|
||||||
time: '2025-05-17T01:54:27.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36989
|
|
||||||
- author: Lanedon
|
|
||||||
changes:
|
|
||||||
- message: Multiple head gear now hides the hair !
|
|
||||||
type: Fix
|
|
||||||
id: 8502
|
|
||||||
time: '2025-05-17T05:05:43.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36818
|
|
||||||
- author: ArtisticRoomba
|
|
||||||
changes:
|
|
||||||
- message: Metal foam grenades have been added to station engineer lockers.
|
|
||||||
type: Add
|
|
||||||
- message: Metal foam grenades have been tweaked to cover more area over a longer
|
|
||||||
period of time.
|
|
||||||
type: Tweak
|
|
||||||
- message: Metal foam grenades now have a 5 second timer.
|
|
||||||
type: Tweak
|
|
||||||
- message: Aluminum foam walls now take one hit to destroy.
|
|
||||||
type: Tweak
|
|
||||||
id: 8503
|
|
||||||
time: '2025-05-17T05:21:24.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37476
|
|
||||||
- author: EmoGarbage404
|
|
||||||
changes:
|
|
||||||
- message: Fixed tetherguns not having a beam when dragging.
|
|
||||||
type: Fix
|
|
||||||
id: 8504
|
|
||||||
time: '2025-05-17T05:22:40.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37510
|
|
||||||
- author: aada
|
|
||||||
changes:
|
|
||||||
- message: Id cards now have the same max length as character names.
|
|
||||||
type: Fix
|
|
||||||
id: 8505
|
|
||||||
time: '2025-05-17T05:27:39.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/35407
|
|
||||||
- author: ArtisticRoomba
|
|
||||||
changes:
|
|
||||||
- message: Radiation collector power output has been buffed. Remember engineers,
|
|
||||||
the third level on the PA is safe for long term use!
|
|
||||||
type: Tweak
|
|
||||||
id: 8506
|
|
||||||
time: '2025-05-17T07:45:44.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37475
|
|
||||||
- author: Ilya246
|
|
||||||
changes:
|
|
||||||
- message: Shuttles can now deal (weak) collision damage.
|
|
||||||
type: Add
|
|
||||||
id: 8507
|
|
||||||
time: '2025-05-17T17:11:08.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37422
|
|
||||||
- author: VlaDOS1408
|
|
||||||
changes:
|
|
||||||
- message: Fax UI Menu has been reworked and now behaves better on resizing
|
|
||||||
type: Tweak
|
|
||||||
id: 8508
|
|
||||||
time: '2025-05-17T17:20:11.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/33825
|
|
||||||
- author: YotaXP
|
|
||||||
changes:
|
|
||||||
- message: Favorites selected in the construction menu will now persist between
|
|
||||||
rounds.
|
|
||||||
type: Tweak
|
|
||||||
id: 8509
|
|
||||||
time: '2025-05-17T17:37:19.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/35867
|
|
||||||
- author: perryprog
|
|
||||||
changes:
|
|
||||||
- message: You can now link cutter machines to material silos.
|
|
||||||
type: Tweak
|
|
||||||
id: 8510
|
|
||||||
time: '2025-05-18T01:51:58.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37554
|
|
||||||
- author: Spangs04
|
|
||||||
changes:
|
|
||||||
- message: Resprited Telecomms
|
|
||||||
type: Tweak
|
|
||||||
id: 8511
|
|
||||||
time: '2025-05-18T02:10:56.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/35811
|
|
||||||
- author: EmoGarbage404
|
|
||||||
changes:
|
|
||||||
- message: Added the salvage job board! This board allows salvagers to access and
|
|
||||||
complete a variety of jobs in order to rank up, earn spesos, and unlock new
|
|
||||||
cargo orders. Work hard and you too may become a Supreme Salvager.
|
|
||||||
type: Add
|
|
||||||
id: 8512
|
|
||||||
time: '2025-05-18T04:02:52.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37549
|
|
||||||
- author: EmoGarbage404
|
|
||||||
changes:
|
|
||||||
- message: Lathes can no longer connect to research servers on separate grids
|
|
||||||
type: Tweak
|
|
||||||
id: 8513
|
|
||||||
time: '2025-05-18T04:04:28.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36821
|
|
||||||
- author: 0leshe
|
|
||||||
changes:
|
|
||||||
- message: Changed max and minimum amount of jigger transfer amount
|
|
||||||
type: Tweak
|
|
||||||
id: 8514
|
|
||||||
time: '2025-05-18T04:14:23.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/35962
|
|
||||||
- author: ArtisticRoomba
|
|
||||||
changes:
|
|
||||||
- message: Air grenades have been added! These can fill up a spaced room of ~30
|
|
||||||
tiles with fresh air. They can be found in Atmospheric Technician's lockers.
|
|
||||||
Use them wisely!
|
|
||||||
type: Add
|
|
||||||
id: 8515
|
|
||||||
time: '2025-05-18T04:32:52.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37531
|
|
||||||
- author: EmoGarbage404
|
|
||||||
changes:
|
|
||||||
- message: Various salvage equipment can now be unlocked through the job board and
|
|
||||||
purchased through cargo.
|
|
||||||
type: Add
|
|
||||||
- message: Space debris and the mining asteroid no longer generate salvage equipment
|
|
||||||
type: Tweak
|
|
||||||
id: 8516
|
|
||||||
time: '2025-05-18T06:40:59.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37561
|
|
||||||
- author: mrjajkes
|
|
||||||
changes:
|
|
||||||
- message: Add Blatantly Nuclear as a Nuke Song.
|
|
||||||
type: Add
|
|
||||||
id: 8517
|
|
||||||
time: '2025-05-18T07:30:20.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/35927
|
|
||||||
- author: metalgearsloth
|
|
||||||
changes:
|
|
||||||
- message: Shuttles now are treated as rooved for daylight.
|
|
||||||
type: Tweak
|
|
||||||
id: 8518
|
|
||||||
time: '2025-05-18T07:47:35.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36112
|
|
||||||
- author: ScarKy0
|
|
||||||
changes:
|
|
||||||
- message: Deliveries can now very rarely spawn as bomb-type! They grant A LOT of
|
|
||||||
spesos... at a price.
|
|
||||||
type: Add
|
|
||||||
id: 8519
|
|
||||||
time: '2025-05-18T08:57:23.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37069
|
|
||||||
- author: ScarKy0
|
|
||||||
changes:
|
|
||||||
- message: Aloxadone has been tweaked. The recipe has been altered to be simplier
|
|
||||||
to make and the healing values have been increased.
|
|
||||||
type: Tweak
|
|
||||||
id: 8523
|
|
||||||
time: '2025-05-18T09:16:14.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37239
|
|
||||||
- author: Simyon
|
|
||||||
changes:
|
|
||||||
- message: The Syndicate and Wizard Communications Console now no longer show who
|
|
||||||
the message was sent by.
|
|
||||||
type: Tweak
|
|
||||||
id: 8524
|
|
||||||
time: '2025-05-18T09:18:18.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37567
|
|
||||||
- author: SuperGDPWYL
|
|
||||||
changes:
|
|
||||||
- message: A Lone Operative detonating the nuke on-station will now end the round.
|
|
||||||
type: Add
|
|
||||||
- message: The endscreen will now properly show how successful Lone Operatives were.
|
|
||||||
type: Fix
|
|
||||||
id: 8525
|
|
||||||
time: '2025-05-18T11:34:33.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36498
|
|
||||||
- author: metalgearsloth
|
|
||||||
changes:
|
|
||||||
- message: Fixes being able to grab items through walls.
|
|
||||||
type: Fix
|
|
||||||
id: 8526
|
|
||||||
time: '2025-05-18T14:38:32.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37570
|
|
||||||
- author: qwerltaz
|
|
||||||
changes:
|
|
||||||
- message: Water vapor is now dangerous to slime life-forms.
|
|
||||||
type: Add
|
|
||||||
id: 8527
|
|
||||||
time: '2025-05-18T22:55:40.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/32751
|
|
||||||
- author: slarticodefast
|
|
||||||
changes:
|
|
||||||
- message: Added a new keybind for swapping hands in the other direction (if you
|
|
||||||
got more than two). Defaults to Shift+X. Useful for cycling through borg modules.
|
|
||||||
type: Add
|
|
||||||
id: 8528
|
|
||||||
time: '2025-05-19T01:17:35.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37588
|
|
||||||
- author: keronshb
|
|
||||||
changes:
|
|
||||||
- message: Force Wall timers changed so it despawns faster than it can be cast.
|
|
||||||
type: Tweak
|
|
||||||
- message: Force Wall users can now interact while inside of the wall, but also
|
|
||||||
can be attacked while inside of the wall.
|
|
||||||
type: Tweak
|
|
||||||
id: 8529
|
|
||||||
time: '2025-05-19T01:30:46.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37525
|
|
||||||
- author: Samuka
|
|
||||||
changes:
|
|
||||||
- message: Holy water now evaporates.
|
|
||||||
type: Fix
|
|
||||||
id: 8530
|
|
||||||
time: '2025-05-19T16:14:40.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37611
|
|
||||||
- author: aada
|
|
||||||
changes:
|
|
||||||
- message: Pepper makes you cough.
|
|
||||||
type: Add
|
|
||||||
id: 8531
|
|
||||||
time: '2025-05-19T18:23:38.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36358
|
|
||||||
- author: Entvari
|
|
||||||
changes:
|
|
||||||
- message: Hyper Capacity Powercells are now available as Tier 3 Industrial Research.
|
|
||||||
type: Add
|
|
||||||
- message: The Tier 3 Industrial Research 'Portable Fission' has been renamed to
|
|
||||||
Optimized Microgalvanism to better reflect this.
|
|
||||||
type: Tweak
|
|
||||||
id: 8532
|
|
||||||
time: '2025-05-19T22:35:08.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37619
|
|
||||||
- author: RedBookcase
|
|
||||||
changes:
|
|
||||||
- message: The Salvage section of the guidebook has been updated.
|
|
||||||
type: Fix
|
|
||||||
id: 8533
|
|
||||||
time: '2025-05-19T22:39:23.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37593
|
|
||||||
- author: SpeltIncorrectyl
|
|
||||||
changes:
|
|
||||||
- message: Kammerer now has a tighter spread to compensate for its lower rate of
|
|
||||||
fire.
|
|
||||||
type: Tweak
|
|
||||||
id: 8534
|
|
||||||
time: '2025-05-19T22:45:18.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37616
|
|
||||||
- author: Pronana
|
|
||||||
changes:
|
|
||||||
- message: Galoshes now slow on puddles again
|
|
||||||
type: Fix
|
|
||||||
id: 8535
|
|
||||||
time: '2025-05-20T02:47:03.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37628
|
|
||||||
- author: slarticodefast
|
|
||||||
changes:
|
|
||||||
- message: Added a reduced motion version of the seeing rainbows overlay.
|
|
||||||
type: Add
|
|
||||||
id: 8536
|
|
||||||
time: '2025-05-20T12:36:08.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37584
|
|
||||||
- author: B-Kirill
|
|
||||||
changes:
|
|
||||||
- message: Added new fun meteors variations (Cosmic cow, Honksteroid, Space potato)
|
|
||||||
that drop unique loot upon destruction. Urist McMeteor now shatters into meat
|
|
||||||
when explodes.
|
|
||||||
type: Add
|
|
||||||
id: 8537
|
|
||||||
time: '2025-05-20T13:04:27.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37327
|
|
||||||
- author: Kittygyat
|
|
||||||
changes:
|
|
||||||
- message: Added a new, faster way for slimepeople to access their own special inventory,
|
|
||||||
with LMB.
|
|
||||||
type: Add
|
|
||||||
id: 8538
|
|
||||||
time: '2025-05-20T16:55:21.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37592
|
|
||||||
- author: FrostWinters
|
|
||||||
changes:
|
|
||||||
- message: Histamines no longer cause radiation.
|
|
||||||
type: Tweak
|
|
||||||
- message: Epinephrine treats Histamines above OD threshold.
|
|
||||||
type: Tweak
|
|
||||||
id: 8544
|
|
||||||
time: '2025-05-21T01:12:54.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37460
|
|
||||||
- author: Minty642
|
|
||||||
changes:
|
|
||||||
- message: Added fungal soil, maintenance version of hydroponics.
|
|
||||||
type: Add
|
|
||||||
id: 8545
|
|
||||||
time: '2025-05-21T04:59:51.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/36245
|
|
||||||
- author: metalgearsloth
|
|
||||||
changes:
|
|
||||||
- message: Picking up items with area pickups (e.g. trash bags) no longer lags the
|
|
||||||
game.
|
|
||||||
type: Fix
|
|
||||||
id: 8546
|
|
||||||
time: '2025-05-21T06:16:27.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37638
|
|
||||||
- author: Errant
|
|
||||||
changes:
|
|
||||||
- message: High-energy shuttle impacts now deal much less damage.
|
|
||||||
type: Tweak
|
|
||||||
id: 8547
|
|
||||||
time: '2025-05-21T10:37:36.0000000+00:00'
|
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/37578
|
|
||||||
- author: metalgearsloth
|
- author: metalgearsloth
|
||||||
changes:
|
changes:
|
||||||
- message: Shuttle impact force is now proportional to direction of impact.
|
- message: Shuttle impact force is now proportional to direction of impact.
|
||||||
@@ -3963,3 +3655,307 @@
|
|||||||
id: 9011
|
id: 9011
|
||||||
time: '2025-09-27T17:01:14.0000000+00:00'
|
time: '2025-09-27T17:01:14.0000000+00:00'
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/39914
|
url: https://github.com/space-wizards/space-station-14/pull/39914
|
||||||
|
- author: SignalSender
|
||||||
|
changes:
|
||||||
|
- message: reworked salv instrument spawns to include more instruments
|
||||||
|
type: Tweak
|
||||||
|
id: 9012
|
||||||
|
time: '2025-09-27T20:51:52.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40572
|
||||||
|
- author: keronshb
|
||||||
|
changes:
|
||||||
|
- message: 'EXPERIMENTAL: Tasers, a short-ranged gun capable of causing targets
|
||||||
|
to become prone, are now added into Warden, HoS, and Security locker fills.'
|
||||||
|
type: Add
|
||||||
|
id: 9013
|
||||||
|
time: '2025-09-27T21:21:05.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39087
|
||||||
|
- author: SurrealShibe
|
||||||
|
changes:
|
||||||
|
- message: Vulpkanin now audibly gasp.
|
||||||
|
type: Fix
|
||||||
|
id: 9014
|
||||||
|
time: '2025-09-28T03:25:39.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40579
|
||||||
|
- author: keronshb
|
||||||
|
changes:
|
||||||
|
- message: Tasers can now be used by Pacifists.
|
||||||
|
type: Tweak
|
||||||
|
id: 9015
|
||||||
|
time: '2025-09-28T03:43:02.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40588
|
||||||
|
- author: beck-thompson
|
||||||
|
changes:
|
||||||
|
- message: Labelers can no longer add markup tags to items
|
||||||
|
type: Fix
|
||||||
|
id: 9016
|
||||||
|
time: '2025-09-28T18:33:27.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40600
|
||||||
|
- author: SirWarock
|
||||||
|
changes:
|
||||||
|
- message: Fixed Shotgun Ammo Count not properly updating when reloading!
|
||||||
|
type: Fix
|
||||||
|
id: 9017
|
||||||
|
time: '2025-09-29T10:28:45.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40568
|
||||||
|
- author: BoskiYourk, spanky_spanky
|
||||||
|
changes:
|
||||||
|
- message: Microwaves can now be picked up when unwrenched, and optionally, used
|
||||||
|
as a weapon.
|
||||||
|
type: Tweak
|
||||||
|
id: 9018
|
||||||
|
time: '2025-09-30T21:55:10.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40618
|
||||||
|
- author: leahcat
|
||||||
|
changes:
|
||||||
|
- message: moved desoxyephedrine from ambrosia plants to glasstle.
|
||||||
|
type: Tweak
|
||||||
|
id: 9019
|
||||||
|
time: '2025-10-01T04:05:41.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40638
|
||||||
|
- author: SignalSender
|
||||||
|
changes:
|
||||||
|
- message: Musicians now have a Stage Name
|
||||||
|
type: Tweak
|
||||||
|
id: 9020
|
||||||
|
time: '2025-10-01T11:46:34.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40640
|
||||||
|
- author: Velcroboy
|
||||||
|
changes:
|
||||||
|
- message: Shutters, blast doors, and lights can now be linked using the "Link Defaults"
|
||||||
|
button.
|
||||||
|
type: Tweak
|
||||||
|
id: 9021
|
||||||
|
time: '2025-10-01T20:22:50.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/37690
|
||||||
|
- author: YoungThugSS14
|
||||||
|
changes:
|
||||||
|
- message: The Prisoner Eva Suit now has the same stats as an emergency eva suit.
|
||||||
|
type: Tweak
|
||||||
|
id: 9022
|
||||||
|
time: '2025-10-01T20:23:37.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/36696
|
||||||
|
- author: K-Dynamic
|
||||||
|
changes:
|
||||||
|
- message: Puddles now spill over at 50u instead of 20u.
|
||||||
|
type: Add
|
||||||
|
id: 9023
|
||||||
|
time: '2025-10-01T20:28:13.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/38044
|
||||||
|
- author: Mixelz
|
||||||
|
changes:
|
||||||
|
- message: Circuit Totes, a new type of box to compactly carry conspicous chunks
|
||||||
|
of Circuits!
|
||||||
|
type: Add
|
||||||
|
- message: Head Lockers now compact all circuit boards & stamps into boxes for convenience.
|
||||||
|
type: Tweak
|
||||||
|
- message: The Surplus Circuit Crate is now a Tote!
|
||||||
|
type: Tweak
|
||||||
|
id: 9024
|
||||||
|
time: '2025-10-01T23:22:33.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39868
|
||||||
|
- author: sudobeans
|
||||||
|
changes:
|
||||||
|
- message: utility knife, which can be made in the autolathe.
|
||||||
|
type: Add
|
||||||
|
id: 9025
|
||||||
|
time: '2025-10-02T09:02:36.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39567
|
||||||
|
- author: kosticia
|
||||||
|
changes:
|
||||||
|
- message: Anomalies with inconsistent particles no longer shuffle right before
|
||||||
|
collision with particle.
|
||||||
|
type: Fix
|
||||||
|
id: 9026
|
||||||
|
time: '2025-10-02T20:11:25.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40624
|
||||||
|
- author: archee1
|
||||||
|
changes:
|
||||||
|
- message: Material doors now have destruction sounds and will drop a portion of
|
||||||
|
their construction materials when destroyed.
|
||||||
|
type: Add
|
||||||
|
- message: Material doors now have reduced health, resistances, construction time,
|
||||||
|
and construction costs
|
||||||
|
type: Tweak
|
||||||
|
id: 9027
|
||||||
|
time: '2025-10-02T22:47:11.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/36597
|
||||||
|
- author: PJB3005
|
||||||
|
changes:
|
||||||
|
- message: You can stuff the nuke disk in plushies now.
|
||||||
|
type: Tweak
|
||||||
|
id: 9028
|
||||||
|
time: '2025-10-03T09:53:41.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40674
|
||||||
|
- author: Crude Oil
|
||||||
|
changes:
|
||||||
|
- message: Returned PDA lights to original brightness
|
||||||
|
type: Fix
|
||||||
|
id: 9029
|
||||||
|
time: '2025-10-03T20:33:25.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40687
|
||||||
|
- author: NoreUhh
|
||||||
|
changes:
|
||||||
|
- message: The Syndicate Cyborg Martyr Module can now be used multiple times.
|
||||||
|
type: Tweak
|
||||||
|
id: 9030
|
||||||
|
time: '2025-10-03T23:35:01.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40224
|
||||||
|
- author: K-Dynamic
|
||||||
|
changes:
|
||||||
|
- message: Adds smart equip function to pocket 1, pocket 2, and suit storage slots.
|
||||||
|
Default binds are Shift+F and Shift+G for first and second pocket, Shift+H for
|
||||||
|
suit storage.
|
||||||
|
type: Add
|
||||||
|
id: 9031
|
||||||
|
time: '2025-10-04T01:44:30.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/37975
|
||||||
|
- author: AwareFoxy
|
||||||
|
changes:
|
||||||
|
- message: Added Pride-O-Mat to marathon!
|
||||||
|
type: Add
|
||||||
|
id: 9032
|
||||||
|
time: '2025-10-04T16:50:52.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40696
|
||||||
|
- author: Moomoobeef
|
||||||
|
changes:
|
||||||
|
- message: Evac directional signs now glow in the dark!
|
||||||
|
type: Tweak
|
||||||
|
id: 9033
|
||||||
|
time: '2025-10-04T20:27:15.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/38545
|
||||||
|
- author: NoreUhh
|
||||||
|
changes:
|
||||||
|
- message: The Ian suit makes you bark now. Woof!
|
||||||
|
type: Tweak
|
||||||
|
id: 9034
|
||||||
|
time: '2025-10-05T08:06:06.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40694
|
||||||
|
- author: Princess-Cheeseballs
|
||||||
|
changes:
|
||||||
|
- message: Incendiary rounds now deal a mix of pierce damage and heat damage instead
|
||||||
|
of primarily heat damage.
|
||||||
|
type: Tweak
|
||||||
|
id: 9035
|
||||||
|
time: '2025-10-05T08:38:36.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39204
|
||||||
|
- author: Centronias
|
||||||
|
changes:
|
||||||
|
- message: Stirring is once again prioritized over drinking. No longer will your
|
||||||
|
bartender be very tempted to taste test your drink as they stir it.
|
||||||
|
type: Fix
|
||||||
|
id: 9036
|
||||||
|
time: '2025-10-05T22:12:24.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40704
|
||||||
|
- author: jessicamaybe
|
||||||
|
changes:
|
||||||
|
- message: Skeletons are now playable instruments!
|
||||||
|
type: Add
|
||||||
|
id: 9037
|
||||||
|
time: '2025-10-07T00:59:20.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40009
|
||||||
|
- author: Huaqas, Davyei
|
||||||
|
changes:
|
||||||
|
- message: 3 new Holy Books have been added to the Chaplain's loadout.
|
||||||
|
type: Add
|
||||||
|
id: 9038
|
||||||
|
time: '2025-10-07T07:39:37.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39181
|
||||||
|
- author: Huaqas
|
||||||
|
changes:
|
||||||
|
- message: The Tanakh and Satanic bibles have been removed.
|
||||||
|
type: Remove
|
||||||
|
id: 9039
|
||||||
|
time: '2025-10-07T09:14:49.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39698
|
||||||
|
- author: jessicamaybe
|
||||||
|
changes:
|
||||||
|
- message: Gorillas can now pull objects.
|
||||||
|
type: Tweak
|
||||||
|
id: 9040
|
||||||
|
time: '2025-10-07T09:31:46.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40700
|
||||||
|
- author: SurrealShibe
|
||||||
|
changes:
|
||||||
|
- message: Added the nutri-batard to mime survival boxes in place of the nutri-brick.
|
||||||
|
type: Add
|
||||||
|
id: 9041
|
||||||
|
time: '2025-10-07T10:18:50.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40601
|
||||||
|
- author: Lordbrandon12
|
||||||
|
changes:
|
||||||
|
- message: Fixed issue allowing space heater temperature to be set above the allowed
|
||||||
|
limit.
|
||||||
|
type: Fix
|
||||||
|
id: 9042
|
||||||
|
time: '2025-10-07T12:53:59.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40453
|
||||||
|
- author: IProduceWidgets
|
||||||
|
changes:
|
||||||
|
- message: Vox that take excessive amounts of fire damage will now burn into fried
|
||||||
|
chicken.
|
||||||
|
type: Tweak
|
||||||
|
id: 9043
|
||||||
|
time: '2025-10-07T14:12:25.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40115
|
||||||
|
- author: BoskiYourk, spanky_spanky
|
||||||
|
changes:
|
||||||
|
- message: The Head of Security now has an energy magnum, a self-charging multi-mode
|
||||||
|
laser revolver, in their locker instead of the energy shotgun.
|
||||||
|
type: Add
|
||||||
|
- message: The Warden now has the energy shotgun in their locker round-start.
|
||||||
|
type: Tweak
|
||||||
|
id: 9044
|
||||||
|
time: '2025-10-07T16:05:07.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40615
|
||||||
|
- author: FungiFellow
|
||||||
|
changes:
|
||||||
|
- message: Cancer Mice now have unique ghost role entries.
|
||||||
|
type: Tweak
|
||||||
|
id: 9045
|
||||||
|
time: '2025-10-07T16:33:42.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40102
|
||||||
|
- author: FungiFellow
|
||||||
|
changes:
|
||||||
|
- message: Biosuits can now fit Gastanks in Suit Storage, the Security Biosuit can
|
||||||
|
fit both Gastanks and Weapons
|
||||||
|
type: Add
|
||||||
|
- message: Security Biosuits Cost has been increased 800->1600
|
||||||
|
type: Tweak
|
||||||
|
id: 9046
|
||||||
|
time: '2025-10-07T18:22:07.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/39888
|
||||||
|
- author: Hitlinemoss
|
||||||
|
changes:
|
||||||
|
- message: MRE wrappers are no longer twice as nutritious as the actual food within.
|
||||||
|
type: Fix
|
||||||
|
id: 9047
|
||||||
|
time: '2025-10-07T19:36:32.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40761
|
||||||
|
- author: TrixxedHeart
|
||||||
|
changes:
|
||||||
|
- message: 'Added new markings for Vox: 3 new beak types, 2 beak markings, 1 overlay
|
||||||
|
6 head, and 3 chest markings.'
|
||||||
|
type: Add
|
||||||
|
- message: Fixed sprite layering issue where a Vox's back leg would appear on top
|
||||||
|
of their front leg in side sprites.
|
||||||
|
type: Fix
|
||||||
|
id: 9048
|
||||||
|
time: '2025-10-07T23:14:11.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40569
|
||||||
|
- author: Hitlinemoss
|
||||||
|
changes:
|
||||||
|
- message: Bartenders with a significant amount of playtime can now select a golden
|
||||||
|
shaker in the loadout menu.
|
||||||
|
type: Add
|
||||||
|
id: 9049
|
||||||
|
time: '2025-10-07T23:37:43.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40762
|
||||||
|
- author: SlamBamActionman
|
||||||
|
changes:
|
||||||
|
- message: The Energy Shotgun no longer has a self-recharge or wide fire mode, but
|
||||||
|
charges faster in rechargers.
|
||||||
|
type: Tweak
|
||||||
|
id: 9050
|
||||||
|
time: '2025-10-08T02:51:21.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40757
|
||||||
|
|||||||
@@ -731,4 +731,22 @@
|
|||||||
id: 88
|
id: 88
|
||||||
time: '2025-09-25T21:36:16.0000000+00:00'
|
time: '2025-09-25T21:36:16.0000000+00:00'
|
||||||
url: https://github.com/space-wizards/space-station-14/pull/40546
|
url: https://github.com/space-wizards/space-station-14/pull/40546
|
||||||
|
- author: Absotively
|
||||||
|
changes:
|
||||||
|
- message: Updated Elkridge's burn chambers for safer delta pressure handling
|
||||||
|
type: Tweak
|
||||||
|
id: 89
|
||||||
|
time: '2025-09-30T03:45:17.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40590
|
||||||
|
- author: ToastEnjoyer
|
||||||
|
changes:
|
||||||
|
- message: On Marathon, added various improvements to engineering, parts of maints,
|
||||||
|
and some service improvements.
|
||||||
|
type: Tweak
|
||||||
|
- message: On Marathon, the security front has been fixed so that power is there
|
||||||
|
roundstart.
|
||||||
|
type: Fix
|
||||||
|
id: 90
|
||||||
|
time: '2025-10-07T02:21:21.0000000+00:00'
|
||||||
|
url: https://github.com/space-wizards/space-station-14/pull/40725
|
||||||
Order: 1
|
Order: 1
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
discord-round-notifications-new = A new round is starting!
|
discord-round-notifications-new = A new round is starting!
|
||||||
discord-round-notifications-started = Round #{$id} on map "{$map}" started.
|
discord-round-notifications-started = Round #{$id} on map "{$map}" started.
|
||||||
discord-round-notifications-end = Round #{$id} has ended. It lasted for {$hours} hours, {$minutes} minutes, and {$seconds} seconds.
|
discord-round-notifications-end = Round #{$id} has ended. It lasted for {$hours} hours, {$minutes} minutes, and {$seconds} seconds.
|
||||||
discord-round-notifications-end-ping = <@&{$roleId}>, the server will reboot shortly!
|
discord-round-notifications-end-ping = <@&{$roleId}>, a new round will start soon!
|
||||||
discord-round-notifications-unknown-map = Unknown
|
discord-round-notifications-unknown-map = Unknown
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ ghost-role-information-silicon-rules = You are a [color={role-type-silicon-color
|
|||||||
ghost-role-information-mouse-name = Mouse
|
ghost-role-information-mouse-name = Mouse
|
||||||
ghost-role-information-mouse-description = A hungry and mischievous mouse.
|
ghost-role-information-mouse-description = A hungry and mischievous mouse.
|
||||||
|
|
||||||
|
ghost-role-information-cancer-mouse-name = Cancer Mouse
|
||||||
|
ghost-role-information-cancer-mouse-description = An irradiated mouse, spread your affliction and seek food.
|
||||||
|
|
||||||
ghost-role-information-mothroach-name = Mothroach
|
ghost-role-information-mothroach-name = Mothroach
|
||||||
ghost-role-information-mothroach-description = A cute but mischievous mothroach.
|
ghost-role-information-mothroach-description = A cute but mischievous mothroach.
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,62 @@
|
|||||||
|
marking-TattooVoxNightlingHead-tattoo_nightling_head = Vox Head Tattoo (Nightling)
|
||||||
|
marking-TattooVoxNightlingHead = Vox Head Tattoo (Nightling)
|
||||||
|
|
||||||
|
marking-TattooVoxArrowHead-tattoo_arrow_head = Vox Head Tattoo (Arrow)
|
||||||
|
marking-TattooVoxArrowHead = Vox Head Tattoo (Arrow)
|
||||||
|
|
||||||
|
marking-VoxTattooEyeliner-eyeliner = Eyeliner
|
||||||
|
marking-VoxTattooEyeliner = Eyeliner
|
||||||
|
|
||||||
|
marking-VoxVisage-visage = Visage (Full)
|
||||||
|
marking-VoxVisage = Visage (Full)
|
||||||
|
|
||||||
|
marking-VoxVisageL-visage_l = Visage (Left)
|
||||||
|
marking-VoxVisageL = Visage (Left)
|
||||||
|
|
||||||
|
marking-VoxVisageR-visage_r = Visage (Right)
|
||||||
|
marking-VoxVisageR = Visage (Right)
|
||||||
|
|
||||||
|
marking-VoxCheek-cheekblush = Cheeks
|
||||||
|
marking-VoxCheek = Cheeks
|
||||||
|
|
||||||
|
marking-VoxBeak-beak = Beak (Pointed)
|
||||||
|
marking-VoxBeak = Beak (Pointed)
|
||||||
|
|
||||||
|
marking-VoxBeakSquareCere-beak_squarecere = Beak (Square Cere)
|
||||||
|
marking-VoxBeakSquareCere = Beak (Square Cere)
|
||||||
|
|
||||||
|
marking-VoxBeakHooked-beak_hooked = Beak (Hooked)
|
||||||
|
marking-VoxBeakHooked = Beak (Hooked)
|
||||||
|
|
||||||
|
marking-VoxBeakShaved-beak_shaved = Beak (Shaved)
|
||||||
|
marking-VoxBeakShaved = Beak (Shaved)
|
||||||
|
|
||||||
|
marking-VoxBeakCoverTip-beakcover_tip = Beak Tip
|
||||||
|
marking-VoxBeakCoverTip = Beak Tip
|
||||||
|
|
||||||
|
marking-VoxBeakCoverStripe-beakcover_stripe = Beak Stripe
|
||||||
|
marking-VoxBeakCoverStripe = Beak Stripe
|
||||||
|
|
||||||
marking-TattooVoxHeartLeftArm-heart_l_arm = Vox Left Arm Tattoo (Heart)
|
marking-TattooVoxHeartLeftArm-heart_l_arm = Vox Left Arm Tattoo (Heart)
|
||||||
marking-TattooVoxHeartLeftArm = Vox Left Arm Tattoo (Heart)
|
marking-TattooVoxHeartLeftArm = Vox Left Arm Tattoo (Heart)
|
||||||
|
|
||||||
marking-TattooVoxHeartRightArm-heart_r_arm = Vox Right Arm Tattoo (Heart)
|
marking-TattooVoxHeartRightArm-heart_r_arm = Vox Right Arm Tattoo (Heart)
|
||||||
marking-TattooVoxHeartRightArm = Vox Right Arm Tattoo (Heart)
|
marking-TattooVoxHeartRightArm = Vox Right Arm Tattoo (Heart)
|
||||||
|
|
||||||
marking-TattooVoxHiveChest-hive_s = Vox Chest Tattoo (hive)
|
marking-TattooVoxHiveChest-hive_s = Vox Chest Tattoo (Hive)
|
||||||
marking-TattooVoxHiveChest = Vox Chest Tattoo (hive)
|
marking-TattooVoxHiveChest = Vox Chest Tattoo (Hive)
|
||||||
|
|
||||||
marking-TattooVoxNightlingChest-nightling_s = Vox Chest Tattoo (nightling)
|
marking-TattooVoxNightlingChest-nightling_s = Vox Chest Tattoo (Nightling)
|
||||||
marking-TattooVoxNightlingChest = Vox Chest Tattoo (nightling)
|
marking-TattooVoxNightlingChest = Vox Chest Tattoo (Nightling)
|
||||||
|
|
||||||
|
marking-TattooVoxNightbelt-nightbelt = Vox Stomach Tattoo (Nightling)
|
||||||
|
marking-TattooVoxNightbelt = Vox Stomach Tattoo (Nightling)
|
||||||
|
|
||||||
|
marking-TattooVoxChestV-night_v = Vox Chest Tattoo (V Shape)
|
||||||
|
marking-TattooVoxChestV = Vox Chest Tattoo (V Shape)
|
||||||
|
|
||||||
|
marking-TattooVoxUnderbelly-underbelly = Underbelly
|
||||||
|
marking-TattooVoxUnderbelly = Underbelly
|
||||||
|
|
||||||
marking-VoxScarEyeRight-vox_scar_eye_right = Right Eye Scar
|
marking-VoxScarEyeRight-vox_scar_eye_right = Right Eye Scar
|
||||||
marking-VoxScarEyeRight = Eye Scar (Right)
|
marking-VoxScarEyeRight = Eye Scar (Right)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ steal-target-groups-captain-id-card = captain ID card
|
|||||||
steal-target-groups-jetpack-captain-filled = captain's jetpack
|
steal-target-groups-jetpack-captain-filled = captain's jetpack
|
||||||
steal-target-groups-weapon-antique-laser = antique laser pistol
|
steal-target-groups-weapon-antique-laser = antique laser pistol
|
||||||
steal-target-groups-nuke-disk = nuclear authentication disk
|
steal-target-groups-nuke-disk = nuclear authentication disk
|
||||||
steal-target-groups-weapon-energy-shot-gun = energy shotgun
|
steal-target-groups-weapon-energy-magnum = energy magnum
|
||||||
|
|
||||||
# Thief Collection
|
# Thief Collection
|
||||||
steal-target-groups-figurines = figurine
|
steal-target-groups-figurines = figurine
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ loadout-group-passenger-neck = Passenger neck
|
|||||||
loadout-group-bartender-head = Bartender head
|
loadout-group-bartender-head = Bartender head
|
||||||
loadout-group-bartender-jumpsuit = Bartender jumpsuit
|
loadout-group-bartender-jumpsuit = Bartender jumpsuit
|
||||||
loadout-group-bartender-outerclothing = Bartender outer clothing
|
loadout-group-bartender-outerclothing = Bartender outer clothing
|
||||||
|
loadout-group-bartender-shaker = Bartender shaker
|
||||||
|
|
||||||
loadout-group-chef-head = Chef head
|
loadout-group-chef-head = Chef head
|
||||||
loadout-group-chef-mask = Chef mask
|
loadout-group-chef-mask = Chef mask
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -54,7 +54,7 @@
|
|||||||
sprite: Clothing/Head/Hoods/Bio/security.rsi
|
sprite: Clothing/Head/Hoods/Bio/security.rsi
|
||||||
state: icon
|
state: icon
|
||||||
product: CrateSecurityBiosuit
|
product: CrateSecurityBiosuit
|
||||||
cost: 800
|
cost: 1600
|
||||||
category: cargoproduct-category-name-security
|
category: cargoproduct-category-name-security
|
||||||
group: market
|
group: market
|
||||||
|
|
||||||
|
|||||||
@@ -183,6 +183,7 @@
|
|||||||
- id: DrinkWaterBottleFull
|
- id: DrinkWaterBottleFull
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
|
- BoxCardboard
|
||||||
- BoxHug
|
- BoxHug
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -212,7 +213,7 @@
|
|||||||
- id: EmergencyOxygenTankFilled
|
- id: EmergencyOxygenTankFilled
|
||||||
- id: EmergencyMedipen
|
- id: EmergencyMedipen
|
||||||
- id: Flare
|
- id: Flare
|
||||||
- id: FoodSnackNutribrick
|
- id: FoodBreadNutriBatard
|
||||||
- id: DrinkWaterBottleFull
|
- id: DrinkWaterBottleFull
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -226,7 +227,7 @@
|
|||||||
- id: EmergencyNitrogenTankFilled
|
- id: EmergencyNitrogenTankFilled
|
||||||
- id: EmergencyMedipen
|
- id: EmergencyMedipen
|
||||||
- id: Flare
|
- id: Flare
|
||||||
- id: FoodSnackNutribrick
|
- id: FoodBreadNutriBatard
|
||||||
- id: DrinkWaterBottleFull
|
- id: DrinkWaterBottleFull
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
@@ -246,7 +247,7 @@
|
|||||||
- id: EmergencyOxygenTankFilled
|
- id: EmergencyOxygenTankFilled
|
||||||
- id: EmergencyMedipen
|
- id: EmergencyMedipen
|
||||||
- id: Flare
|
- id: Flare
|
||||||
- id: FoodSnackNutribrick
|
- id: FoodBreadCottonNutriBatard
|
||||||
- id: DrinkWaterBottleFull
|
- id: DrinkWaterBottleFull
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -408,7 +408,7 @@
|
|||||||
- type: Storage
|
- type: Storage
|
||||||
grid:
|
grid:
|
||||||
- 0,0,5,3
|
- 0,0,5,3
|
||||||
whitelist:
|
whitelist: # TODO cardboard boxes shouldn't have whitelisting
|
||||||
tags:
|
tags:
|
||||||
- Candle
|
- Candle
|
||||||
- type: StorageFill
|
- type: StorageFill
|
||||||
|
|||||||
@@ -102,7 +102,7 @@
|
|||||||
layers:
|
layers:
|
||||||
- state: box
|
- state: box
|
||||||
- state: bodybags
|
- state: bodybags
|
||||||
- type: Storage
|
- type: Storage # TODO cardboard boxes shouldn't have whitelisting
|
||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
- BodyBag
|
- BodyBag
|
||||||
|
|||||||
@@ -308,7 +308,7 @@
|
|||||||
id: LockerFillHeadOfSecurityNoHardsuit
|
id: LockerFillHeadOfSecurityNoHardsuit
|
||||||
table: !type:AllSelector
|
table: !type:AllSelector
|
||||||
children:
|
children:
|
||||||
- id: WeaponEnergyShotgun
|
- id: WeaponEnergyMagnum
|
||||||
- id: BookSpaceLaw
|
- id: BookSpaceLaw
|
||||||
- id: BoxEncryptionKeySecurity
|
- id: BoxEncryptionKeySecurity
|
||||||
- id: CigarGoldCase
|
- id: CigarGoldCase
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
amount: 2
|
amount: 2
|
||||||
- id: NetworkConfigurator
|
- id: NetworkConfigurator
|
||||||
- id: Binoculars
|
- id: Binoculars
|
||||||
|
- id: WeaponEnergyShotgun
|
||||||
|
|
||||||
- type: entityTable
|
- type: entityTable
|
||||||
id: FillLockerWardenHarduit
|
id: FillLockerWardenHarduit
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingOuterBaseLarge
|
parent: [ClothingOuterBaseLarge, AllowSuitStorageClothingGasTanks]
|
||||||
id: ClothingOuterBioGeneral
|
id: ClothingOuterBioGeneral
|
||||||
name: bio suit
|
name: bio suit
|
||||||
suffix: Generic
|
suffix: Generic
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
sprite: Clothing/OuterClothing/Bio/scientist.rsi
|
sprite: Clothing/OuterClothing/Bio/scientist.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingOuterBioGeneral, BaseSecurityContraband]
|
parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseSecurityContraband]
|
||||||
id: ClothingOuterBioSecurity
|
id: ClothingOuterBioSecurity
|
||||||
name: bio suit
|
name: bio suit
|
||||||
suffix: Security
|
suffix: Security
|
||||||
@@ -82,6 +82,10 @@
|
|||||||
Piercing: 0.8
|
Piercing: 0.8
|
||||||
- type: ZombificationResistance
|
- type: ZombificationResistance
|
||||||
zombificationResistanceCoefficient: 0.4
|
zombificationResistanceCoefficient: 0.4
|
||||||
|
- type: GroupExamine
|
||||||
|
- type: ClothingSpeedModifier
|
||||||
|
walkModifier: 0.95
|
||||||
|
sprintModifier: 0.95
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingOuterBioGeneral
|
parent: ClothingOuterBioGeneral
|
||||||
|
|||||||
@@ -13,6 +13,52 @@
|
|||||||
!type:SimpleColoring
|
!type:SimpleColoring
|
||||||
color: "#937e3d"
|
color: "#937e3d"
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
# The cere is the base of the top part of the beak, the cere on this beak, is a square.
|
||||||
|
id: VoxBeakSquareCere
|
||||||
|
bodyPart: Snout
|
||||||
|
markingCategory: Snout
|
||||||
|
forcedColoring: true
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_parts.rsi
|
||||||
|
state: beak_squarecere
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:SimpleColoring
|
||||||
|
color: "#937e3d"
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxBeakShaved
|
||||||
|
bodyPart: Snout
|
||||||
|
markingCategory: Snout
|
||||||
|
forcedColoring: true
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_parts.rsi
|
||||||
|
state: beak_shaved
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:SimpleColoring
|
||||||
|
color: "#937e3d"
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxBeakHooked
|
||||||
|
bodyPart: Snout
|
||||||
|
markingCategory: Snout
|
||||||
|
forcedColoring: true
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_parts.rsi
|
||||||
|
state: beak_hooked
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:SimpleColoring
|
||||||
|
color: "#937e3d"
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: VoxLArmScales
|
id: VoxLArmScales
|
||||||
bodyPart: LArm
|
bodyPart: LArm
|
||||||
|
|||||||
@@ -54,6 +54,50 @@
|
|||||||
- sprite: Mobs/Customization/vox_tattoos.rsi
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
state: nightling_s
|
state: nightling_s
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: TattooVoxNightbelt
|
||||||
|
bodyPart: Chest
|
||||||
|
markingCategory: Chest
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: nightbelt
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: TattooVoxChestV
|
||||||
|
bodyPart: Chest
|
||||||
|
markingCategory: Chest
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: chest_v_1
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: chest_v_2
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: TattooVoxUnderbelly
|
||||||
|
bodyPart: Chest
|
||||||
|
markingCategory: Chest
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: underbelly
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: TattooVoxTailRing
|
id: TattooVoxTailRing
|
||||||
# TODO // Looks off on some tails (i.e docked/amputated), if conditionals for markings ever get implemented this needs to be updated to account for those.
|
# TODO // Looks off on some tails (i.e docked/amputated), if conditionals for markings ever get implemented this needs to be updated to account for those.
|
||||||
@@ -131,3 +175,125 @@
|
|||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/vox_tattoos.rsi
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
state: eyeshadow_large
|
state: eyeshadow_large
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxTattooEyeliner
|
||||||
|
bodyPart: Eyes
|
||||||
|
markingCategory: Overlay
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: eyeliner
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxBeakCoverStripe
|
||||||
|
bodyPart: Snout
|
||||||
|
markingCategory: SnoutCover
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: beakcover_stripe
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxBeakCoverTip
|
||||||
|
bodyPart: Snout
|
||||||
|
markingCategory: SnoutCover
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: beakcover_tip
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: TattooVoxArrowHead
|
||||||
|
bodyPart: Head
|
||||||
|
markingCategory: Head
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: tattoo_arrow_head
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: TattooVoxNightlingHead
|
||||||
|
bodyPart: Head
|
||||||
|
markingCategory: Head
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: tattoo_nightling_head
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxVisage
|
||||||
|
bodyPart: Head
|
||||||
|
markingCategory: Head
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: visage
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxVisageL
|
||||||
|
bodyPart: Head
|
||||||
|
markingCategory: Head
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: visage_l
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxVisageR
|
||||||
|
bodyPart: Head
|
||||||
|
markingCategory: Head
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: visage_r
|
||||||
|
|
||||||
|
- type: marking
|
||||||
|
id: VoxCheek
|
||||||
|
bodyPart: Head
|
||||||
|
markingCategory: Head
|
||||||
|
speciesRestriction: [Vox]
|
||||||
|
coloring:
|
||||||
|
default:
|
||||||
|
type:
|
||||||
|
!type:TattooColoring
|
||||||
|
fallbackColor: "#666666"
|
||||||
|
sprites:
|
||||||
|
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||||
|
state: cheekblush
|
||||||
|
|
||||||
|
|||||||
@@ -1215,6 +1215,8 @@
|
|||||||
true
|
true
|
||||||
NavSmash: !type:Bool
|
NavSmash: !type:Bool
|
||||||
true
|
true
|
||||||
|
- type: Puller
|
||||||
|
needsHands: false
|
||||||
- type: Prying
|
- type: Prying
|
||||||
pryPowered: true
|
pryPowered: true
|
||||||
force: true
|
force: true
|
||||||
@@ -1978,6 +1980,12 @@
|
|||||||
parent: MobMouse
|
parent: MobMouse
|
||||||
id: MobMouseCancer
|
id: MobMouseCancer
|
||||||
components:
|
components:
|
||||||
|
- type: GhostRole
|
||||||
|
name: ghost-role-information-cancer-mouse-name
|
||||||
|
description: ghost-role-information-cancer-mouse-description
|
||||||
|
rules: ghost-role-information-freeagent-rules
|
||||||
|
mindRoles:
|
||||||
|
- MindRoleGhostRoleFreeAgent
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
color: LightGreen
|
color: LightGreen
|
||||||
- type: PointLight
|
- type: PointLight
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
components:
|
components:
|
||||||
- type: Spectral
|
- type: Spectral
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags: # BAD: Intentional removal of inherited tag
|
||||||
- AllowGhostShownByEvent
|
- AllowGhostShownByEvent
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -109,6 +109,24 @@
|
|||||||
32:
|
32:
|
||||||
sprite: Mobs/Species/Human/displacement.rsi
|
sprite: Mobs/Species/Human/displacement.rsi
|
||||||
state: jumpsuit-female
|
state: jumpsuit-female
|
||||||
|
- type: Instrument
|
||||||
|
program: 13 # Xylophone. Woodblock is 115 (another good option)
|
||||||
|
- type: ActivatableUI
|
||||||
|
blockSpectators: true # otherwise they can play client-side music
|
||||||
|
inHandsOnly: false
|
||||||
|
singleUser: true
|
||||||
|
requiresComplex: true
|
||||||
|
verbOnly: true
|
||||||
|
verbText: verb-instrument-openui
|
||||||
|
key: enum.InstrumentUiKey.Key
|
||||||
|
- type: UserInterface
|
||||||
|
interfaces:
|
||||||
|
enum.InstrumentUiKey.Key:
|
||||||
|
type: InstrumentBoundUserInterface
|
||||||
|
enum.HumanoidMarkingModifierKey.Key:
|
||||||
|
type: HumanoidMarkingModifierBoundUserInterface
|
||||||
|
enum.StrippingUiKey.Key:
|
||||||
|
type: StrippableBoundUserInterface
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseSpeciesDummy
|
parent: BaseSpeciesDummy
|
||||||
|
|||||||
@@ -30,6 +30,44 @@
|
|||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Biological
|
damageContainer: Biological
|
||||||
damageModifierSet: Vox
|
damageModifierSet: Vox
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTypeTrigger
|
||||||
|
damageType: Blunt
|
||||||
|
damage: 400
|
||||||
|
behaviors:
|
||||||
|
- !type:GibBehavior { }
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTypeTrigger
|
||||||
|
damageType: Heat
|
||||||
|
damage: 1500
|
||||||
|
behaviors:
|
||||||
|
- !type:SpawnEntitiesBehavior
|
||||||
|
spawnInContainer: true
|
||||||
|
spawn:
|
||||||
|
FoodMeatChickenFriedVox:
|
||||||
|
min: 3
|
||||||
|
max: 5
|
||||||
|
- !type:BurnBodyBehavior { }
|
||||||
|
- !type:PlaySoundBehavior
|
||||||
|
sound:
|
||||||
|
collection: MeatLaserImpact
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTypeTrigger
|
||||||
|
damageType: Radiation
|
||||||
|
damage: 15
|
||||||
|
behaviors:
|
||||||
|
- !type:PopupBehavior
|
||||||
|
popup: mouth-taste-metal
|
||||||
|
popupType: LargeCaution
|
||||||
|
targetOnly: true
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTypeTrigger
|
||||||
|
damageType: Radiation
|
||||||
|
damage: 40
|
||||||
|
behaviors:
|
||||||
|
- !type:VomitBehavior
|
||||||
- type: PassiveDamage
|
- type: PassiveDamage
|
||||||
# Augment normal health regen to be able to tank some Poison damage
|
# Augment normal health regen to be able to tank some Poison damage
|
||||||
# This allows Vox to take their mask off temporarily to eat something without needing a trip to medbay afterwards.
|
# This allows Vox to take their mask off temporarily to eat something without needing a trip to medbay afterwards.
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
# map: ["enum.OpenableVisuals.Layer"]
|
# map: ["enum.OpenableVisuals.Layer"]
|
||||||
|
|
||||||
## Bases for visuals
|
## Bases for visuals
|
||||||
# TODO standardize state names for fill levels and openable visuals
|
# New drinks should mirror these state names to reduce clutter when creating new prototypes
|
||||||
|
|
||||||
# Basic visualizer for an openable entity. Requires DrinkBaseOpenable
|
# Basic visualizer for an openable entity. Requires DrinkBaseOpenable
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -103,13 +103,14 @@
|
|||||||
visuals:
|
visuals:
|
||||||
enum.OpenableVisuals.Opened:
|
enum.OpenableVisuals.Opened:
|
||||||
enum.OpenableVisuals.Layer:
|
enum.OpenableVisuals.Layer:
|
||||||
True: {state: "icon_open"}
|
True: {state: "icon_open"} # lid off
|
||||||
False: {state: "icon"}
|
False: {state: "icon"} # lid on
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: icon
|
- state: icon
|
||||||
map: ["enum.OpenableVisuals.Layer"]
|
map: ["enum.OpenableVisuals.Layer"]
|
||||||
- type: ExaminableSolution
|
- type: ExaminableSolution
|
||||||
|
solution: *sol
|
||||||
examinableWhileClosed: false # If you can't see the fill levels on the sprite, we can assume it's opaque
|
examinableWhileClosed: false # If you can't see the fill levels on the sprite, we can assume it's opaque
|
||||||
heldOnly: true # If it's opaque, you probably can't see through the open lid from a distance
|
heldOnly: true # If it's opaque, you probably can't see through the open lid from a distance
|
||||||
|
|
||||||
@@ -121,11 +122,12 @@
|
|||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: icon_empty
|
- state: icon
|
||||||
- state: fill-1
|
- state: fill-1
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
map: ["enum.SolutionContainerLayers.Fill"]
|
||||||
visible: false
|
visible: false
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
|
solutionName: *sol
|
||||||
maxFillLevels: 5
|
maxFillLevels: 5
|
||||||
fillBaseName: fill-
|
fillBaseName: fill-
|
||||||
inHandsMaxFillLevels: 3
|
inHandsMaxFillLevels: 3
|
||||||
@@ -139,7 +141,7 @@
|
|||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: icon_empty
|
- state: icon
|
||||||
map: [ "enum.SolutionContainerLayers.Base" ]
|
map: [ "enum.SolutionContainerLayers.Base" ]
|
||||||
- state: fill-1
|
- state: fill-1
|
||||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
map: [ "enum.SolutionContainerLayers.Fill" ]
|
||||||
@@ -169,8 +171,8 @@
|
|||||||
visuals:
|
visuals:
|
||||||
enum.OpenableVisuals.Opened:
|
enum.OpenableVisuals.Opened:
|
||||||
enum.OpenableVisuals.Layer:
|
enum.OpenableVisuals.Layer:
|
||||||
True: {state: "icon_open"}
|
True: {state: "icon_open"} # lid off
|
||||||
False: {state: "icon_empty"}
|
False: {state: "icon_empty"} # lid on
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: icon_empty
|
- state: icon_empty
|
||||||
|
|||||||
@@ -106,7 +106,7 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/alco-bottle.rsi
|
sprite: Objects/Consumable/Drinks/alco-bottle.rsi
|
||||||
layers:
|
layers:
|
||||||
- state: icon_blue # todo add "icon_empty" state
|
- state: icon_empty
|
||||||
map: ["enum.OpenableVisuals.Layer"]
|
map: ["enum.OpenableVisuals.Layer"]
|
||||||
- state: fill-6
|
- state: fill-6
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
map: ["enum.SolutionContainerLayers.Fill"]
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/alco-bottle.rsi
|
sprite: Objects/Consumable/Drinks/alco-bottle.rsi
|
||||||
layers:
|
layers:
|
||||||
- state: icon_green # todo icon_empty
|
- state: icon_empty
|
||||||
map: ["enum.OpenableVisuals.Layer"]
|
map: ["enum.OpenableVisuals.Layer"]
|
||||||
- state: fill-6
|
- state: fill-6
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
map: ["enum.SolutionContainerLayers.Fill"]
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
solutions:
|
solutions:
|
||||||
drink:
|
drink:
|
||||||
maxVol: 30
|
maxVol: 30
|
||||||
grindable:
|
grindable: &grindable
|
||||||
reagents: # 5u -> 1/2 steel sheet (10u)
|
reagents: # 5u -> 1/2 steel sheet (10u)
|
||||||
- ReagentId: Aluminium # Fun fact: soda can makeup is approx. 75% aluminium and 25% tin/iron.
|
- ReagentId: Aluminium # Fun fact: soda can makeup is approx. 75% aluminium and 25% tin/iron.
|
||||||
Quantity: 4
|
Quantity: 4
|
||||||
@@ -51,12 +51,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: Cola
|
- ReagentId: Cola
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cola
|
- Cola
|
||||||
@@ -76,12 +71,7 @@
|
|||||||
solutions:
|
solutions:
|
||||||
drink:
|
drink:
|
||||||
maxVol: 30
|
maxVol: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cola
|
- Cola
|
||||||
@@ -101,12 +91,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: IcedTea
|
- ReagentId: IcedTea
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/ice_tea_can.rsi
|
sprite: Objects/Consumable/Drinks/ice_tea_can.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -125,12 +110,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: LemonLime
|
- ReagentId: LemonLime
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/lemon-lime.rsi
|
sprite: Objects/Consumable/Drinks/lemon-lime.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -149,12 +129,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: LemonLimeCranberry
|
- ReagentId: LemonLimeCranberry
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/lemon-lime-cranberry.rsi
|
sprite: Objects/Consumable/Drinks/lemon-lime-cranberry.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -206,12 +181,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: GrapeSoda
|
- ReagentId: GrapeSoda
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/purple_can.rsi
|
sprite: Objects/Consumable/Drinks/purple_can.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -230,12 +200,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: RootBeer
|
- ReagentId: RootBeer
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/rootbeer.rsi
|
sprite: Objects/Consumable/Drinks/rootbeer.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -258,12 +223,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: SodaWater
|
- ReagentId: SodaWater
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/sodawater.rsi
|
sprite: Objects/Consumable/Drinks/sodawater.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -282,12 +242,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: SpaceMountainWind
|
- ReagentId: SpaceMountainWind
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/space_mountain_wind.rsi
|
sprite: Objects/Consumable/Drinks/space_mountain_wind.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -306,12 +261,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: SpaceUp
|
- ReagentId: SpaceUp
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/space-up.rsi
|
sprite: Objects/Consumable/Drinks/space-up.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -330,12 +280,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: SolDry
|
- ReagentId: SolDry
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/sol_dry.rsi
|
sprite: Objects/Consumable/Drinks/sol_dry.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -354,12 +299,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: Starkist
|
- ReagentId: Starkist
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/starkist.rsi
|
sprite: Objects/Consumable/Drinks/starkist.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -378,12 +318,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: TonicWater
|
- ReagentId: TonicWater
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/tonic.rsi
|
sprite: Objects/Consumable/Drinks/tonic.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -402,12 +337,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: FourteenLoko
|
- ReagentId: FourteenLoko
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/fourteen_loko.rsi
|
sprite: Objects/Consumable/Drinks/fourteen_loko.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -426,12 +356,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: ChangelingSting
|
- ReagentId: ChangelingSting
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/changelingsting.rsi
|
sprite: Objects/Consumable/Drinks/changelingsting.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -450,12 +375,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: DrGibb
|
- ReagentId: DrGibb
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/dr_gibb.rsi
|
sprite: Objects/Consumable/Drinks/dr_gibb.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -478,12 +398,7 @@
|
|||||||
Quantity: 20
|
Quantity: 20
|
||||||
- ReagentId: Ice
|
- ReagentId: Ice
|
||||||
Quantity: 5
|
Quantity: 5
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/robustnukie.rsi
|
sprite: Objects/Consumable/Drinks/robustnukie.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -502,12 +417,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: EnergyDrink
|
- ReagentId: EnergyDrink
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/energy_drink.rsi
|
sprite: Objects/Consumable/Drinks/energy_drink.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -526,12 +436,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: ShamblersJuice
|
- ReagentId: ShamblersJuice
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/shamblersjuice.rsi
|
sprite: Objects/Consumable/Drinks/shamblersjuice.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -550,12 +455,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: PwrGame
|
- ReagentId: PwrGame
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/pwrgame.rsi
|
sprite: Objects/Consumable/Drinks/pwrgame.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -574,12 +474,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: Beer
|
- ReagentId: Beer
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/beer_can.rsi
|
sprite: Objects/Consumable/Drinks/beer_can.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
@@ -602,12 +497,7 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: Wine
|
- ReagentId: Wine
|
||||||
Quantity: 30
|
Quantity: 30
|
||||||
grindable:
|
grindable: *grindable
|
||||||
reagents:
|
|
||||||
- ReagentId: Aluminium
|
|
||||||
Quantity: 4
|
|
||||||
- ReagentId: Iron
|
|
||||||
Quantity: 1
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/wine_can.rsi
|
sprite: Objects/Consumable/Drinks/wine_can.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
|
|||||||
@@ -22,22 +22,16 @@
|
|||||||
# A mug is a type of cup.[2]
|
# A mug is a type of cup.[2]
|
||||||
- type: entity
|
- type: entity
|
||||||
abstract: true
|
abstract: true
|
||||||
parent: [ DrinkBaseMaterialPorcelain, DrinkBaseCup ] # todo Should use DrinkVisualsFill, but inheritors have no in-hand and state names are wrong
|
parent: [ DrinkBaseMaterialPorcelain, DrinkBaseCup, DrinkVisualsFill ]
|
||||||
id: DrinkBaseMug
|
id: DrinkBaseMug
|
||||||
name: mug
|
name: mug
|
||||||
description: A mug.
|
description: A mug.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/mug.rsi
|
sprite: Objects/Consumable/Drinks/mug.rsi
|
||||||
layers:
|
|
||||||
- state: icon-0
|
|
||||||
- state: icon-3
|
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
|
||||||
visible: false
|
|
||||||
- type: Appearance
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 3
|
maxFillLevels: 3
|
||||||
fillBaseName: icon-
|
inHandsFillBaseName: null
|
||||||
|
|
||||||
## Misc Cups
|
## Misc Cups
|
||||||
|
|
||||||
@@ -53,18 +47,13 @@
|
|||||||
price: 125
|
price: 125
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DrinkBaseMug
|
parent: DrinkBaseMug # a teacup is basically a mug
|
||||||
id: DrinkTeacupEmpty
|
id: DrinkTeacupEmpty
|
||||||
name: teacup
|
name: teacup
|
||||||
description: A plain white porcelain teacup.
|
description: A plain white porcelain teacup.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/teacup.rsi
|
sprite: Objects/Consumable/Drinks/teacup.rsi
|
||||||
layers:
|
|
||||||
- state: icon-0
|
|
||||||
- state: icon-4
|
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
|
||||||
visible: false
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 4
|
maxFillLevels: 4
|
||||||
|
|
||||||
@@ -76,20 +65,11 @@
|
|||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
|
sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
|
||||||
layers:
|
|
||||||
- state: icon # todo add "icon_empty" state to match DrinkVisualsFillOverlay
|
|
||||||
map: [ "enum.SolutionContainerLayers.Base" ]
|
|
||||||
- state: fill1
|
|
||||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
|
||||||
visible: false
|
|
||||||
- state: icon-front
|
|
||||||
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
fillBaseName: fill # todo rename to "fill-" to match DrinkVisualsFillOverlay
|
|
||||||
inHandsMaxFillLevels: 1
|
inHandsMaxFillLevels: 1
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [DrinkBaseMaterialCardboard, DrinkBaseCup] # TODO should use DrinkVisualsFill but state names are wrong and no inhand
|
parent: [DrinkBaseMaterialCardboard, DrinkBaseCup, DrinkBaseEmptyTrash, DrinkVisualsFill]
|
||||||
id: DrinkWaterCup
|
id: DrinkWaterCup
|
||||||
name: water cup
|
name: water cup
|
||||||
description: A paper water cup.
|
description: A paper water cup.
|
||||||
@@ -102,22 +82,14 @@
|
|||||||
size: Tiny
|
size: Tiny
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/water_cup.rsi
|
sprite: Objects/Consumable/Drinks/water_cup.rsi
|
||||||
layers:
|
|
||||||
- state: icon-0
|
|
||||||
- state: icon-1
|
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
|
||||||
visible: false
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 1
|
maxFillLevels: 1
|
||||||
fillBaseName: icon-
|
inHandsFillBaseName: null
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Trash
|
- Trash
|
||||||
- DrinkCup
|
- DrinkCup
|
||||||
- WhitelistChameleon
|
- WhitelistChameleon
|
||||||
- type: Appearance
|
|
||||||
- type: TrashOnSolutionEmpty
|
|
||||||
solution: drink
|
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
slots:
|
slots:
|
||||||
- HEAD
|
- HEAD
|
||||||
@@ -240,16 +212,13 @@
|
|||||||
- ReagentId: HotCocoa
|
- ReagentId: HotCocoa
|
||||||
Quantity: 20
|
Quantity: 20
|
||||||
- type: Icon
|
- type: Icon
|
||||||
sprite: Objects/Consumable/Drinks/hot_coco.rsi
|
sprite: Objects/Consumable/Drinks/mug.rsi
|
||||||
state: icon-vend
|
state: icon-vend-brown
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/hot_coco.rsi
|
|
||||||
layers:
|
layers:
|
||||||
- state: icon-0
|
- state: icon
|
||||||
- map: ["enum.SolutionContainerLayers.Fill"]
|
- state: fill-3
|
||||||
state: icon-4
|
map: ["enum.SolutionContainerLayers.Fill"]
|
||||||
- type: SolutionContainerVisuals
|
|
||||||
maxFillLevels: 4
|
|
||||||
- type: TrashOnSolutionEmpty
|
- type: TrashOnSolutionEmpty
|
||||||
solution: drink
|
solution: drink
|
||||||
|
|
||||||
@@ -267,16 +236,13 @@
|
|||||||
- ReagentId: Coffee
|
- ReagentId: Coffee
|
||||||
Quantity: 20
|
Quantity: 20
|
||||||
- type: Icon
|
- type: Icon
|
||||||
sprite: Objects/Consumable/Drinks/hot_coffee.rsi
|
sprite: Objects/Consumable/Drinks/mug.rsi
|
||||||
state: icon-vend
|
state: icon-vend-brown
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/hot_coffee.rsi
|
|
||||||
layers:
|
layers:
|
||||||
- state: icon-0
|
- state: icon
|
||||||
- map: ["enum.SolutionContainerLayers.Fill"]
|
- state: fill-3
|
||||||
state: icon-4
|
map: ["enum.SolutionContainerLayers.Fill"]
|
||||||
- type: SolutionContainerVisuals
|
|
||||||
maxFillLevels: 4
|
|
||||||
- type: TrashOnSolutionEmpty
|
- type: TrashOnSolutionEmpty
|
||||||
solution: drink
|
solution: drink
|
||||||
|
|
||||||
@@ -293,16 +259,17 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: CafeLatte
|
- ReagentId: CafeLatte
|
||||||
Quantity: 20
|
Quantity: 20
|
||||||
|
- type: Icon
|
||||||
|
sprite: Objects/Consumable/Drinks/cafe_latte.rsi
|
||||||
|
state: icon-vend
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/cafe_latte.rsi
|
sprite: Objects/Consumable/Drinks/cafe_latte.rsi
|
||||||
layers:
|
layers:
|
||||||
- state: icon_empty
|
- state: icon
|
||||||
- state: fill-1
|
- state: fill-1
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
map: ["enum.SolutionContainerLayers.Fill"]
|
||||||
- type: Appearance
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 1
|
maxFillLevels: 1
|
||||||
fillBaseName: fill-
|
|
||||||
changeColor: false
|
changeColor: false
|
||||||
- type: TrashOnSolutionEmpty
|
- type: TrashOnSolutionEmpty
|
||||||
solution: drink
|
solution: drink
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
collection: packetOpenSounds
|
collection: packetOpenSounds
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: icon
|
- state: icon_empty
|
||||||
map: ["enum.OpenableVisuals.Layer"]
|
map: ["enum.OpenableVisuals.Layer"]
|
||||||
- state: fill6
|
- state: fill-6
|
||||||
map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false
|
map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false
|
||||||
- state: icon-front
|
- state: icon-front
|
||||||
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
||||||
@@ -20,13 +20,6 @@
|
|||||||
maxVol: 30
|
maxVol: 30
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 6
|
maxFillLevels: 6
|
||||||
fillBaseName: fill # TODO rename to "fill-"
|
|
||||||
- type: GenericVisualizer
|
|
||||||
visuals:
|
|
||||||
enum.OpenableVisuals.Opened:
|
|
||||||
enum.OpenableVisuals.Layer:
|
|
||||||
True: {state: "icon_open"}
|
|
||||||
False: {state: "icon"}
|
|
||||||
- type: TrashOnSolutionEmpty
|
- type: TrashOnSolutionEmpty
|
||||||
solution: drink
|
solution: drink
|
||||||
|
|
||||||
@@ -97,8 +90,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/jar_what.rsi
|
sprite: Objects/Consumable/Drinks/jar_what.rsi
|
||||||
- type: ExaminableSolution
|
|
||||||
solution: drink
|
|
||||||
- type: FitsInDispenser
|
- type: FitsInDispenser
|
||||||
solution: drink
|
solution: drink
|
||||||
- type: Tag
|
- type: Tag
|
||||||
|
|||||||
@@ -4,35 +4,23 @@
|
|||||||
|
|
||||||
# Transformable container - normal glass
|
# Transformable container - normal glass
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [DrinkBaseMaterialGlass, DrinkBaseCup] # todo parent to DrinkVisualsFillOverlay after in-hands are added
|
parent: [DrinkBaseMaterialGlass, DrinkBaseCup, DrinkVisualsFillOverlay]
|
||||||
id: DrinkGlass
|
id: DrinkGlass
|
||||||
name: metamorphic glass
|
name: metamorphic glass
|
||||||
description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom.
|
description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/glass_clear.rsi
|
sprite: Objects/Consumable/Drinks/glass_clear.rsi
|
||||||
layers:
|
|
||||||
- state: icon # TODO add "icon_empty" state to match "DrinkVisualsFillOverlay"
|
|
||||||
map: [ "enum.SolutionContainerLayers.Base" ]
|
|
||||||
- state: fill1
|
|
||||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
|
||||||
visible: false
|
|
||||||
- state: icon-front
|
|
||||||
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
|
||||||
- type: Appearance
|
|
||||||
- type: SolutionContainerManager
|
- type: SolutionContainerManager
|
||||||
solutions:
|
solutions:
|
||||||
drink:
|
drink:
|
||||||
maxVol: 30
|
maxVol: 30
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 9
|
maxFillLevels: 9
|
||||||
fillBaseName: fill # todo rename to "fill-", add in-hands, then add parent "DrinkVisualsFillOverlay"
|
|
||||||
metamorphic: true
|
metamorphic: true
|
||||||
metamorphicDefaultSprite:
|
metamorphicDefaultSprite:
|
||||||
sprite: Objects/Consumable/Drinks/glass_clear.rsi
|
sprite: Objects/Consumable/Drinks/glass_clear.rsi
|
||||||
state: icon
|
state: icon
|
||||||
inHandsMaxFillLevels: 3
|
|
||||||
inHandsFillBaseName: -fill-
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DrinkCup # Do these tags
|
- DrinkCup # Do these tags
|
||||||
@@ -47,14 +35,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/jar.rsi
|
sprite: Objects/Consumable/Drinks/jar.rsi
|
||||||
layers:
|
|
||||||
- state: icon
|
|
||||||
map: [ "enum.SolutionContainerLayers.Base" ]
|
|
||||||
- state: fill1
|
|
||||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
|
||||||
visible: false
|
|
||||||
- state: icon-front
|
|
||||||
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
|
||||||
- type: SolutionContainerManager
|
- type: SolutionContainerManager
|
||||||
solutions:
|
solutions:
|
||||||
drink:
|
drink:
|
||||||
|
|||||||
@@ -12,17 +12,8 @@
|
|||||||
size: Tiny
|
size: Tiny
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/shotglass.rsi
|
sprite: Objects/Consumable/Drinks/shotglass.rsi
|
||||||
layers:
|
|
||||||
- state: icon # TODO add "icon_empty" state to match "DrinkVisualsFillOverlay"
|
|
||||||
map: [ "enum.SolutionContainerLayers.Base" ]
|
|
||||||
- state: fill1
|
|
||||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
|
||||||
visible: false
|
|
||||||
- state: icon-front
|
|
||||||
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 2
|
maxFillLevels: 2
|
||||||
fillBaseName: fill # TODO rename to "fill-" to match "DrinkVisualsFillOverlay"
|
|
||||||
inHandsMaxFillLevels: 1
|
inHandsMaxFillLevels: 1
|
||||||
- type: FitsInDispenser
|
- type: FitsInDispenser
|
||||||
solution: drink
|
solution: drink
|
||||||
@@ -146,6 +137,21 @@
|
|||||||
reactionTypes:
|
reactionTypes:
|
||||||
- Shake
|
- Shake
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DrinkShaker
|
||||||
|
id: DrinkShakerGold
|
||||||
|
name: golden shaker
|
||||||
|
description: A gold-plated shaker given as a token of appreciation for years of service. It doesn't make the drinks taste any different.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Consumable/Drinks/shaker_gold.rsi
|
||||||
|
- type: Item
|
||||||
|
sprite: Objects/Consumable/Drinks/shaker_gold.rsi
|
||||||
|
- type: PhysicalComposition
|
||||||
|
materialComposition:
|
||||||
|
Gold: 10 # Gold plated, not solid gold
|
||||||
|
Steel: 40
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [DrinkBaseMaterialMetal, DrinkBase]
|
parent: [DrinkBaseMaterialMetal, DrinkBase]
|
||||||
id: DrinkJigger
|
id: DrinkJigger
|
||||||
@@ -184,11 +190,6 @@
|
|||||||
maxVol: 60
|
maxVol: 60
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Consumable/Drinks/pitcher.rsi
|
sprite: Objects/Consumable/Drinks/pitcher.rsi
|
||||||
layers:
|
|
||||||
- state: icon # TODO add "icon_empty" state to match "DrinkVisualsFill"
|
|
||||||
- state: fill-1
|
|
||||||
map: ["enum.SolutionContainerLayers.Fill"]
|
|
||||||
visible: false
|
|
||||||
- type: SolutionContainerVisuals
|
- type: SolutionContainerVisuals
|
||||||
maxFillLevels: 6
|
maxFillLevels: 6
|
||||||
inHandsMaxFillLevels: 2
|
inHandsMaxFillLevels: 2
|
||||||
|
|||||||
@@ -731,7 +731,7 @@
|
|||||||
name: crostini
|
name: crostini
|
||||||
parent: FoodBreadSliceBase
|
parent: FoodBreadSliceBase
|
||||||
id: FoodBreadBaguetteSlice
|
id: FoodBreadBaguetteSlice
|
||||||
description: Bon ap-petite!
|
description: Bon ap-pétite!
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: crostini
|
state: crostini
|
||||||
@@ -753,7 +753,7 @@
|
|||||||
parent: FoodBreadBaguetteSlice
|
parent: FoodBreadBaguetteSlice
|
||||||
id: FoodBreadBaguetteCottonSlice
|
id: FoodBreadBaguetteCottonSlice
|
||||||
name: cotton crostini
|
name: cotton crostini
|
||||||
description: Bon az-zetite!
|
description: Bon az-zétite!
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: crostini-cotton
|
state: crostini-cotton
|
||||||
@@ -1001,3 +1001,57 @@
|
|||||||
damage:
|
damage:
|
||||||
groups:
|
groups:
|
||||||
Brute: 1
|
Brute: 1
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: FoodBreadBase
|
||||||
|
id: FoodBreadNutriBatard
|
||||||
|
name: nutri-bâtard
|
||||||
|
description: bon 'pétite!
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Consumable/Food/Baked/bread.rsi
|
||||||
|
state: batard
|
||||||
|
- type: Item
|
||||||
|
size: Small
|
||||||
|
storedOffset: -1,0
|
||||||
|
heldPrefix: batard
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- ReptilianFood
|
||||||
|
- type: FlavorProfile
|
||||||
|
flavors:
|
||||||
|
- nutribrick
|
||||||
|
- peppery
|
||||||
|
- salty
|
||||||
|
- bread
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: FoodBreadNutriBatard
|
||||||
|
id: FoodBreadCottonNutriBatard
|
||||||
|
name: cotton nutri-bâtard
|
||||||
|
description: bon 'pétite!
|
||||||
|
components:
|
||||||
|
- type: Edible
|
||||||
|
requiresSpecialDigestion: true
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Consumable/Food/Baked/bread.rsi
|
||||||
|
state: batard-cotton
|
||||||
|
- type: FlavorProfile
|
||||||
|
flavors:
|
||||||
|
- peppery
|
||||||
|
- salty
|
||||||
|
- bread
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- ClothMade
|
||||||
|
- type: Item
|
||||||
|
size: Small
|
||||||
|
storedOffset: -1,0
|
||||||
|
heldPrefix: batard-cotton
|
||||||
|
- type: SolutionContainerManager
|
||||||
|
solutions:
|
||||||
|
food:
|
||||||
|
maxVol: 26
|
||||||
|
reagents:
|
||||||
|
- ReagentId: Fiber
|
||||||
|
Quantity: 20
|
||||||
|
|||||||
@@ -533,6 +533,7 @@
|
|||||||
tags:
|
tags:
|
||||||
- Trash
|
- Trash
|
||||||
- HappyHonk
|
- HappyHonk
|
||||||
|
- BoxCardboard
|
||||||
- type: StorageFill
|
- type: StorageFill
|
||||||
contents:
|
contents:
|
||||||
- id: ToyMouse
|
- id: ToyMouse
|
||||||
@@ -704,7 +705,8 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Trash
|
- Trash
|
||||||
- CluwneHappyHonk
|
- CluwneHappyHonk # BAD: Intentional removal of parent tag
|
||||||
|
- BoxCardboard
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Storage/Happyhonk/cluwne.rsi
|
sprite: Objects/Storage/Happyhonk/cluwne.rsi
|
||||||
state: box
|
state: box
|
||||||
@@ -882,7 +884,7 @@
|
|||||||
grid:
|
grid:
|
||||||
- 0,0,1,1
|
- 0,0,1,1
|
||||||
maxItemSize: Normal
|
maxItemSize: Normal
|
||||||
whitelist:
|
whitelist: # TODO BoxCardboard shouldn't have whitelisted storage
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
- type: Item
|
- type: Item
|
||||||
|
|||||||
@@ -1242,6 +1242,23 @@
|
|||||||
- state: plain-cooked-inhand-right
|
- state: plain-cooked-inhand-right
|
||||||
color: "#F7E3A3"
|
color: "#F7E3A3"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: FoodMeatChickenFried
|
||||||
|
id: FoodMeatChickenFriedVox
|
||||||
|
name: mystery fried chicken
|
||||||
|
description: “Eleven secret herbs and… oh no. That’s not chicken."
|
||||||
|
components:
|
||||||
|
- type: SolutionContainerManager
|
||||||
|
solutions:
|
||||||
|
food:
|
||||||
|
reagents:
|
||||||
|
- ReagentId: Nutriment
|
||||||
|
Quantity: 2
|
||||||
|
- ReagentId: Protein
|
||||||
|
Quantity: 5
|
||||||
|
- ReagentId: Ammonia
|
||||||
|
Quantity: 3
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: FoodMeatBase
|
parent: FoodMeatBase
|
||||||
id: FoodMeatDuckCooked
|
id: FoodMeatDuckCooked
|
||||||
|
|||||||
@@ -864,10 +864,10 @@
|
|||||||
- type: SolutionContainerManager
|
- type: SolutionContainerManager
|
||||||
solutions:
|
solutions:
|
||||||
food:
|
food:
|
||||||
maxVol: 45
|
maxVol: 25
|
||||||
reagents:
|
reagents:
|
||||||
- ReagentId: Fiber
|
- ReagentId: Fiber
|
||||||
Quantity: 40
|
Quantity: 20
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
id: PackPaperRollingFilters
|
id: PackPaperRollingFilters
|
||||||
description: A pack of filters and thin pieces of paper used to make fine smokeables.
|
description: A pack of filters and thin pieces of paper used to make fine smokeables.
|
||||||
components:
|
components:
|
||||||
- type: Storage
|
- type: Storage # Redundant
|
||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
- RollingPaper
|
- RollingPaper
|
||||||
|
|||||||
@@ -65,4 +65,5 @@
|
|||||||
- state: holo
|
- state: holo
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- BoxHug
|
- BoxCardboard
|
||||||
|
- BoxHug
|
||||||
|
|||||||
@@ -108,7 +108,7 @@
|
|||||||
- ReagentId: Plasma
|
- ReagentId: Plasma
|
||||||
Quantity: 10
|
Quantity: 10
|
||||||
canReact: false
|
canReact: false
|
||||||
- type: Tag
|
- type: Tag # Redundant
|
||||||
tags:
|
tags:
|
||||||
- Sheet
|
- Sheet
|
||||||
- ConstructionMaterial
|
- ConstructionMaterial
|
||||||
|
|||||||
@@ -263,7 +263,7 @@
|
|||||||
- type: Storage
|
- type: Storage
|
||||||
grid:
|
grid:
|
||||||
- 0,0,5,3
|
- 0,0,5,3
|
||||||
whitelist:
|
whitelist: # Redundant
|
||||||
tags:
|
tags:
|
||||||
- Document
|
- Document
|
||||||
- type: ItemMapper
|
- type: ItemMapper
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
name: bible
|
name: space bible
|
||||||
description: New Interstellar Version 2340.
|
description: New Interstellar Version 2340.
|
||||||
parent: BaseStorageItem
|
parent: BaseStorageItem
|
||||||
id: Bible
|
id: Bible
|
||||||
@@ -96,21 +96,10 @@
|
|||||||
event: !type:SummonActionEvent
|
event: !type:SummonActionEvent
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: Bible
|
|
||||||
name: tanakh
|
|
||||||
description: "For God's chosen crewmembers"
|
|
||||||
id: BibleTanakh
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Objects/Specific/Chapel/tanakh.rsi
|
|
||||||
- type: Item
|
|
||||||
sprite: Objects/Specific/Chapel/tanakh.rsi
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: Bible
|
|
||||||
name: druidic tablet
|
|
||||||
description: "It's the mystery of the druids!"
|
|
||||||
id: BibleDruid
|
id: BibleDruid
|
||||||
|
name: druidic tablet
|
||||||
|
parent: Bible
|
||||||
|
description: "It's the mystery of the druids!"
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Specific/Chapel/mysteryofthedruids.rsi
|
sprite: Objects/Specific/Chapel/mysteryofthedruids.rsi
|
||||||
@@ -118,10 +107,10 @@
|
|||||||
sprite: Objects/Specific/Chapel/mysteryofthedruids.rsi
|
sprite: Objects/Specific/Chapel/mysteryofthedruids.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: Bible
|
|
||||||
name: communist manifesto
|
|
||||||
description: "Remove the mask of humanity from Capital."
|
|
||||||
id: BibleCommunistManifesto
|
id: BibleCommunistManifesto
|
||||||
|
name: communist manifesto
|
||||||
|
parent: Bible
|
||||||
|
description: "Remove the mask of humanity from Capital."
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Specific/Chapel/communistmanifesto.rsi
|
sprite: Objects/Specific/Chapel/communistmanifesto.rsi
|
||||||
@@ -129,23 +118,45 @@
|
|||||||
sprite: Objects/Specific/Chapel/communistmanifesto.rsi
|
sprite: Objects/Specific/Chapel/communistmanifesto.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
id: BibleNarsie
|
||||||
|
name: tome of nar'sie
|
||||||
parent: Bible
|
parent: Bible
|
||||||
name: satanic bible
|
description: "What could possibly go wrong with a book covered in blood?"
|
||||||
description: "What could possibly go wrong?"
|
|
||||||
id: BibleSatanic
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Specific/Chapel/satanicbible.rsi
|
sprite: Objects/Specific/Chapel/tomeofnarsie.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Specific/Chapel/satanicbible.rsi
|
sprite: Objects/Specific/Chapel/tomeofnarsie.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: Bible
|
|
||||||
name: codex nanotrasimus
|
|
||||||
description: "A familiar book containing the Sacred Operating Procedures."
|
|
||||||
id: BibleNanoTrasen
|
id: BibleNanoTrasen
|
||||||
|
name: codex nanotrasimus
|
||||||
|
parent: Bible
|
||||||
|
description: "A familiar book containing the Sacred Operating Procedures."
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Specific/Chapel/codexnanotrasimus.rsi
|
sprite: Objects/Specific/Chapel/codexnanotrasimus.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Specific/Chapel/codexnanotrasimus.rsi
|
sprite: Objects/Specific/Chapel/codexnanotrasimus.rsi
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BibleHonk
|
||||||
|
name: mirth of the honkmother
|
||||||
|
parent: Bible
|
||||||
|
description: "Oh great and glorious Mother, Mistress of Mirth, Matron of Mask and Merriments, Blessed is she amongst us jesters."
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Specific/Chapel/honk.rsi
|
||||||
|
- type: Item
|
||||||
|
sprite: Objects/Specific/Chapel/honk.rsi
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BibleRatvar
|
||||||
|
name: tablet of ratvar
|
||||||
|
parent: Bible
|
||||||
|
description: "A holy relic of the Clockwork Cult, blessed by the Clockwork Justice, Ratvar."
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Specific/Chapel/ratvartablet.rsi
|
||||||
|
- type: Item
|
||||||
|
sprite: Objects/Specific/Chapel/ratvartablet.rsi
|
||||||
|
|||||||
@@ -278,9 +278,11 @@
|
|||||||
parent: Plunger
|
parent: Plunger
|
||||||
description: A plunger with a plastic suction cup coated in a thin layer of gold given as a token of appreciation for years of service. Still used to unclog drains.
|
description: A plunger with a plastic suction cup coated in a thin layer of gold given as a token of appreciation for years of service. Still used to unclog drains.
|
||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag # TODO change Plunger into a tool so we dont got to layer Tags like below.
|
||||||
tags:
|
tags:
|
||||||
- GoldenPlunger
|
- GoldenPlunger
|
||||||
|
- Plunger
|
||||||
|
- WhitelistChameleon
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Specific/Janitorial/golden_plunger.rsi
|
sprite: Objects/Specific/Janitorial/golden_plunger.rsi
|
||||||
state: plunger
|
state: plunger
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeAntiMateriel
|
- CartridgeAntiMateriel
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletAntiMateriel
|
proto: BulletAntiMateriel
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeCaselessRifle
|
- CartridgeCaselessRifle
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
deleteOnSpawn: true
|
deleteOnSpawn: true
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeHeavyRifle
|
- CartridgeHeavyRifle
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletHeavyRifle
|
proto: BulletHeavyRifle
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeLightRifle
|
- CartridgeLightRifle
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletLightRifle
|
proto: BulletLightRifle
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeMagnum
|
- CartridgeMagnum
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletMagnum
|
proto: BulletMagnum
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgePistol
|
- CartridgePistol
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletPistol
|
proto: BulletPistol
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeRifle
|
- CartridgeRifle
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletRifle
|
proto: BulletRifle
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- ShellShotgun
|
- ShellShotgun
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
soundEject:
|
soundEject:
|
||||||
@@ -26,7 +25,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- ShellShotgun
|
- ShellShotgun
|
||||||
- ShellShotgunLight
|
- ShellShotgunLight
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
@@ -59,7 +57,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- ShellShotgun
|
- ShellShotgun
|
||||||
- ShellShotgunLight
|
- ShellShotgunLight
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
@@ -118,7 +115,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- ShellShotgun
|
- ShellShotgun
|
||||||
- ShellShotgunLight
|
- ShellShotgunLight
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
@@ -147,7 +143,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- ShellShotgun
|
- ShellShotgun
|
||||||
- ShellShotgunLight
|
- ShellShotgunLight
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Cartridge
|
|
||||||
- CartridgeCap
|
- CartridgeCap
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
|||||||
@@ -337,7 +337,7 @@
|
|||||||
components:
|
components:
|
||||||
- type: BallisticAmmoProvider
|
- type: BallisticAmmoProvider
|
||||||
proto: CartridgePistol
|
proto: CartridgePistol
|
||||||
whitelist:
|
whitelist: # Redundant
|
||||||
tags:
|
tags:
|
||||||
- CartridgePistol
|
- CartridgePistol
|
||||||
soundInsert:
|
soundInsert:
|
||||||
|
|||||||
@@ -815,7 +815,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: energy shotgun
|
name: energy shotgun
|
||||||
parent: [BaseWeaponBattery, BaseGunWieldable, BaseGrandTheftContraband]
|
parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband]
|
||||||
id: WeaponEnergyShotgun
|
id: WeaponEnergyShotgun
|
||||||
description: A one-of-a-kind prototype energy weapon that uses various shotgun configurations. It offers the possibility of both lethal and non-lethal shots, making it a versatile weapon.
|
description: A one-of-a-kind prototype energy weapon that uses various shotgun configurations. It offers the possibility of both lethal and non-lethal shots, making it a versatile weapon.
|
||||||
components:
|
components:
|
||||||
@@ -839,34 +839,69 @@
|
|||||||
soundGunshot:
|
soundGunshot:
|
||||||
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
|
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
|
||||||
- type: ProjectileBatteryAmmoProvider
|
- type: ProjectileBatteryAmmoProvider
|
||||||
proto: BulletLaserSpread
|
proto: BulletLaserSpreadNarrow
|
||||||
fireCost: 150
|
fireCost: 80
|
||||||
- type: BatteryWeaponFireModes
|
- type: BatteryWeaponFireModes
|
||||||
fireModes:
|
fireModes:
|
||||||
- proto: BulletLaserSpread
|
|
||||||
fireCost: 150
|
|
||||||
- proto: BulletLaserSpreadNarrow
|
- proto: BulletLaserSpreadNarrow
|
||||||
fireCost: 200
|
fireCost: 80
|
||||||
- proto: BulletDisablerSmgSpread
|
- proto: BulletDisablerSmgSpread
|
||||||
fireCost: 120
|
fireCost: 48
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Large
|
size: Large
|
||||||
sprite: Objects/Weapons/Guns/Battery/inhands_64x.rsi
|
sprite: Objects/Weapons/Guns/Battery/inhands_64x.rsi
|
||||||
heldPrefix: energy
|
heldPrefix: energy
|
||||||
|
- type: GunRequiresWield #remove when inaccuracy on spreads is fixed
|
||||||
|
- type: Battery
|
||||||
|
maxCharge: 480
|
||||||
|
startingCharge: 480
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: energy magnum
|
||||||
|
parent: [BaseWeaponBatterySmall, BaseGrandTheftContraband]
|
||||||
|
id: WeaponEnergyMagnum
|
||||||
|
description: A high powered self-charging energy pistol designed for elite security personnel. It has has three firing modes allowing for either high damage, window piercing, or non-lethal disabling.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Battery/energy_magnum.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: [ "enum.GunVisualLayers.Base" ]
|
||||||
|
- state: mag-unshaded-1
|
||||||
|
visible: false
|
||||||
|
map: [ "enum.GunVisualLayers.MagUnshaded" ]
|
||||||
|
shader: unshaded
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 4
|
||||||
|
zeroVisible: true
|
||||||
|
- type: Appearance
|
||||||
|
- type: Clothing
|
||||||
|
sprite: Objects/Weapons/Guns/Battery/energy_magnum.rsi
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- HighRiskItem
|
- HighRiskItem
|
||||||
- type: StealTarget
|
- type: StealTarget
|
||||||
stealGroup: WeaponEnergyShotgun
|
stealGroup: WeaponEnergyMagnum
|
||||||
- type: GunRequiresWield #remove when inaccuracy on spreads is fixed
|
- type: Gun
|
||||||
- type: Battery
|
soundGunshot:
|
||||||
maxCharge: 1200
|
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
|
||||||
startingCharge: 1200
|
- type: ProjectileBatteryAmmoProvider
|
||||||
|
proto: BulletLaserMagnum
|
||||||
|
fireCost: 150
|
||||||
|
- type: BatteryWeaponFireModes
|
||||||
|
fireModes:
|
||||||
|
- proto: BulletLaserMagnum
|
||||||
|
fireCost: 150
|
||||||
|
- proto: BulletLaserWindowPiercingMagnum
|
||||||
|
fireCost: 150
|
||||||
|
- proto: BulletDisabler
|
||||||
|
fireCost: 62.5
|
||||||
- type: BatterySelfRecharger
|
- type: BatterySelfRecharger
|
||||||
autoRecharge: true
|
autoRecharge: true
|
||||||
autoRechargeRate: 24
|
autoRechargeRate: 48
|
||||||
autoRechargePause: true
|
autoRechargePause: true
|
||||||
autoRechargePauseTime: 30
|
autoRechargePauseTime: 10
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: temperature gun
|
name: temperature gun
|
||||||
|
|||||||
@@ -425,7 +425,7 @@
|
|||||||
description: It fires large meteors.
|
description: It fires large meteors.
|
||||||
components:
|
components:
|
||||||
- type: BallisticAmmoProvider
|
- type: BallisticAmmoProvider
|
||||||
whitelist:
|
whitelist: # Redundant
|
||||||
tags:
|
tags:
|
||||||
- CartridgeRocket
|
- CartridgeRocket
|
||||||
proto: MeteorMedium
|
proto: MeteorMedium
|
||||||
@@ -438,7 +438,7 @@
|
|||||||
description: It fires slow immovable rods.
|
description: It fires slow immovable rods.
|
||||||
components:
|
components:
|
||||||
- type: BallisticAmmoProvider
|
- type: BallisticAmmoProvider
|
||||||
whitelist:
|
whitelist: # Redundant
|
||||||
tags:
|
tags:
|
||||||
- CartridgeRocket
|
- CartridgeRocket
|
||||||
proto: ImmovableRodSlow
|
proto: ImmovableRodSlow
|
||||||
|
|||||||
@@ -1305,7 +1305,7 @@
|
|||||||
spread: 30
|
spread: 30
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: narrow laser barrage
|
name: lethal laser barrage
|
||||||
id: BulletLaserSpreadNarrow
|
id: BulletLaserSpreadNarrow
|
||||||
categories: [ HideSpawnMenu ]
|
categories: [ HideSpawnMenu ]
|
||||||
parent: BulletLaser
|
parent: BulletLaser
|
||||||
@@ -1325,3 +1325,52 @@
|
|||||||
proto: BulletDisablerSmg
|
proto: BulletDisablerSmg
|
||||||
count: 3 #bit stronger than a disabler if you hit your shots you goober, still not a 2 hit stun though
|
count: 3 #bit stronger than a disabler if you hit your shots you goober, still not a 2 hit stun though
|
||||||
spread: 9
|
spread: 9
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: magnum laser bolt
|
||||||
|
id: BulletLaserMagnum
|
||||||
|
categories: [ HideSpawnMenu ]
|
||||||
|
parent: BulletLaser
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles_magnum.rsi
|
||||||
|
layers:
|
||||||
|
- state: magnum
|
||||||
|
shader: unshaded
|
||||||
|
- type: PointLight
|
||||||
|
enabled: true
|
||||||
|
color: "#ff4300"
|
||||||
|
- type: Projectile
|
||||||
|
impactEffect: BulletImpactEffectOrangeDisabler
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Heat: 30
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: magnum window-piercing bolt
|
||||||
|
id: BulletLaserWindowPiercingMagnum
|
||||||
|
categories: [ HideSpawnMenu ]
|
||||||
|
parent: BulletLaser
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles_magnum.rsi
|
||||||
|
layers:
|
||||||
|
- state: magnum_piercing
|
||||||
|
shader: unshaded
|
||||||
|
- type: PointLight
|
||||||
|
enabled: true
|
||||||
|
color: "#ff4300"
|
||||||
|
- type: Projectile
|
||||||
|
impactEffect: BulletImpactEffectOrangeDisabler
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Heat: 20
|
||||||
|
- type: Fixtures
|
||||||
|
fixtures:
|
||||||
|
projectile:
|
||||||
|
shape:
|
||||||
|
!type:PhysShapeAabb
|
||||||
|
bounds: "-0.1,-0.1,0.1,0.1"
|
||||||
|
hard: false
|
||||||
|
mask:
|
||||||
|
- Opaque
|
||||||
|
|||||||
@@ -153,7 +153,7 @@
|
|||||||
suffix: armor-piercing
|
suffix: armor-piercing
|
||||||
components:
|
components:
|
||||||
- type: RevolverAmmoProvider
|
- type: RevolverAmmoProvider
|
||||||
whitelist:
|
whitelist: # Redundant
|
||||||
tags:
|
tags:
|
||||||
- CartridgeMagnum
|
- CartridgeMagnum
|
||||||
- SpeedLoaderMagnum
|
- SpeedLoaderMagnum
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: BaseMaterialDoor
|
|
||||||
parent: BaseStructure
|
|
||||||
name: door
|
|
||||||
abstract: true
|
abstract: true
|
||||||
|
parent: BaseStructure
|
||||||
|
id: BaseMaterialDoor
|
||||||
|
name: door
|
||||||
description: A door, where will it lead?
|
description: A door, where will it lead?
|
||||||
components:
|
components:
|
||||||
- type: Anchorable
|
- type: Anchorable
|
||||||
@@ -63,31 +63,31 @@
|
|||||||
- type: BlockWeather
|
- type: BlockWeather
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
abstract: true
|
||||||
parent: BaseMaterialDoor
|
parent: BaseMaterialDoor
|
||||||
id: BaseMaterialDoorNavMap
|
id: BaseMaterialDoorNavMap
|
||||||
abstract: true
|
|
||||||
components:
|
components:
|
||||||
- type: NavMapDoor
|
- type: NavMapDoor
|
||||||
|
|
||||||
### Metal doors ###
|
### Metal doors ###
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: MetalDoor
|
id: MetalDoor
|
||||||
name: metal door
|
name: metal door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
components:
|
components:
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: metalDoor
|
node: metalDoor
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: &DamageTrigger200 # Overkill threshold
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 200
|
damage: 200
|
||||||
behaviors:
|
behaviors: &OverkillBehavior
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
- trigger:
|
- trigger: &DamageTrigger150
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 150
|
damage: 150
|
||||||
behaviors:
|
behaviors:
|
||||||
@@ -103,30 +103,20 @@
|
|||||||
max: 5
|
max: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: PlasmaDoor
|
id: PlasmaDoor
|
||||||
name: plasma door
|
name: plasma door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
description: A door, where will it lead?
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/MineralDoors/plasma_door.rsi
|
sprite: Structures/Doors/MineralDoors/plasma_door.rsi
|
||||||
layers:
|
|
||||||
- state: closed
|
|
||||||
map: ["enum.DoorVisualLayers.Base"]
|
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: plasmaDoor
|
node: plasmaDoor
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger200
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 200
|
- trigger: *DamageTrigger150
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
|
||||||
!type:DamageTrigger
|
|
||||||
damage: 150
|
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
@@ -140,30 +130,20 @@
|
|||||||
max: 5
|
max: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: GoldDoor
|
id: GoldDoor
|
||||||
name: gold door
|
name: gold door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
description: A door, where will it lead?
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/MineralDoors/gold_door.rsi
|
sprite: Structures/Doors/MineralDoors/gold_door.rsi
|
||||||
layers:
|
|
||||||
- state: closed
|
|
||||||
map: ["enum.DoorVisualLayers.Base"]
|
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: goldDoor
|
node: goldDoor
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger200
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 200
|
- trigger: *DamageTrigger150
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
|
||||||
!type:DamageTrigger
|
|
||||||
damage: 150
|
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
@@ -177,30 +157,20 @@
|
|||||||
max: 5
|
max: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: SilverDoor
|
id: SilverDoor
|
||||||
name: silver door
|
name: silver door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
description: A door, where will it lead?
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/MineralDoors/silver_door.rsi
|
sprite: Structures/Doors/MineralDoors/silver_door.rsi
|
||||||
layers:
|
|
||||||
- state: closed
|
|
||||||
map: ["enum.DoorVisualLayers.Base"]
|
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: silverDoor
|
node: silverDoor
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger200
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 200
|
- trigger: *DamageTrigger150
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
|
||||||
!type:DamageTrigger
|
|
||||||
damage: 150
|
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
@@ -214,35 +184,26 @@
|
|||||||
max: 5
|
max: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: BananiumDoor
|
id: BananiumDoor
|
||||||
name: bananium door
|
name: bananium door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
description: A door, where will it lead?
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/MineralDoors/bananium_door.rsi
|
sprite: Structures/Doors/MineralDoors/bananium_door.rsi
|
||||||
layers:
|
|
||||||
- state: closed
|
|
||||||
map: ["enum.DoorVisualLayers.Base"]
|
|
||||||
- type: Door
|
- type: Door
|
||||||
openSound:
|
openSound: &BikeHornSound
|
||||||
path: /Audio/Items/bikehorn.ogg
|
collection: BikeHorn
|
||||||
closeSound:
|
params:
|
||||||
path: /Audio/Items/bikehorn.ogg
|
variation: 0.125
|
||||||
|
closeSound: *BikeHornSound
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: bananiumDoor
|
node: bananiumDoor
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger200
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 200
|
- trigger: *DamageTrigger150
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
|
||||||
!type:DamageTrigger
|
|
||||||
damage: 150
|
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
@@ -258,9 +219,9 @@
|
|||||||
### Other doors ###
|
### Other doors ###
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: WoodDoor
|
id: WoodDoor
|
||||||
name: wooden door
|
name: wooden door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/MineralDoors/wood_door.rsi
|
sprite: Structures/Doors/MineralDoors/wood_door.rsi
|
||||||
@@ -273,16 +234,11 @@
|
|||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: woodDoor
|
node: woodDoor
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: StructuralInorganic
|
|
||||||
damageModifierSet: Wood
|
damageModifierSet: Wood
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger150
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 150
|
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 75
|
damage: 75
|
||||||
@@ -299,16 +255,12 @@
|
|||||||
max: 5
|
max: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: PaperDoor
|
id: PaperDoor
|
||||||
name: paper door
|
name: paper door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
description: A door, where will it lead?
|
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/MineralDoors/paper_door.rsi
|
sprite: Structures/Doors/MineralDoors/paper_door.rsi
|
||||||
layers:
|
|
||||||
- state: closed
|
|
||||||
map: ["enum.DoorVisualLayers.Base"]
|
|
||||||
- type: Door
|
- type: Door
|
||||||
openSound:
|
openSound:
|
||||||
path: /Audio/Effects/paperdoor_openclose.ogg
|
path: /Audio/Effects/paperdoor_openclose.ogg
|
||||||
@@ -318,16 +270,11 @@
|
|||||||
graph: DoorGraph
|
graph: DoorGraph
|
||||||
node: paperDoor
|
node: paperDoor
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: StructuralInorganic
|
|
||||||
damageModifierSet: Wood
|
damageModifierSet: Wood
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger150
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 150
|
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
@@ -344,16 +291,13 @@
|
|||||||
max: 5
|
max: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
parent: BaseMaterialDoorNavMap
|
||||||
id: WebDoor
|
id: WebDoor
|
||||||
name: web door
|
name: web door
|
||||||
parent: BaseMaterialDoorNavMap
|
|
||||||
description: A door, leading to the lands of the spiders... or a spaced room.
|
description: A door, leading to the lands of the spiders... or a spaced room.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Doors/web_door.rsi
|
sprite: Structures/Doors/web_door.rsi
|
||||||
layers:
|
|
||||||
- state: closed
|
|
||||||
map: ["enum.DoorVisualLayers.Base"]
|
|
||||||
- type: Door
|
- type: Door
|
||||||
closeSound:
|
closeSound:
|
||||||
path: /Audio/Effects/rustle1.ogg
|
path: /Audio/Effects/rustle1.ogg
|
||||||
@@ -366,21 +310,8 @@
|
|||||||
damageModifierSet: Web
|
damageModifierSet: Web
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger: # Excess damage, don't spawn entities
|
- trigger: *DamageTrigger150
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 100
|
|
||||||
behaviors:
|
|
||||||
- !type:PlaySoundBehavior
|
|
||||||
sound:
|
|
||||||
collection: WoodDestroy
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
|
||||||
!type:DamageTrigger
|
|
||||||
damage: 150
|
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: ["Destruction"]
|
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
@@ -397,8 +328,8 @@
|
|||||||
max: 2
|
max: 2
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: CardDoor
|
|
||||||
parent: BaseMaterialDoorNavMap
|
parent: BaseMaterialDoorNavMap
|
||||||
|
id: CardDoor
|
||||||
name: cardboard door
|
name: cardboard door
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
@@ -417,16 +348,11 @@
|
|||||||
path:
|
path:
|
||||||
"/Audio/Weapons/pierce.ogg"
|
"/Audio/Weapons/pierce.ogg"
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: StructuralInorganic
|
|
||||||
damageModifierSet: Card
|
damageModifierSet: Card
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger: *DamageTrigger150
|
||||||
!type:DamageTrigger
|
behaviors: *OverkillBehavior
|
||||||
damage: 60 #excess damage (nuke?). avoid computational cost of spawning entities.
|
|
||||||
behaviors:
|
|
||||||
- !type:DoActsBehavior
|
|
||||||
acts: [ "Destruction" ]
|
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 30
|
damage: 30
|
||||||
|
|||||||
@@ -190,11 +190,7 @@
|
|||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
- Plunger
|
- Plunger
|
||||||
goldenplunger_slot:
|
- GoldenPlunger
|
||||||
name: janitorial-trolley-slot-component-slot-name-goldenplunger
|
|
||||||
whitelist:
|
|
||||||
tags:
|
|
||||||
- GoldenPlunger
|
|
||||||
priority: 8
|
priority: 8
|
||||||
wetfloorsign_slot4:
|
wetfloorsign_slot4:
|
||||||
name: janitorial-trolley-slot-component-slot-name-sign
|
name: janitorial-trolley-slot-component-slot-name-sign
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobQuartermaster
|
role: JobQuartermaster
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Jumpsuit
|
# Jumpsuit
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
|
- type: loadoutEffectGroup
|
||||||
|
id: SeniorBar
|
||||||
|
effects:
|
||||||
|
- !type:JobRequirementLoadoutEffect
|
||||||
|
requirement:
|
||||||
|
!type:RoleTimeRequirement
|
||||||
|
role: JobBartender
|
||||||
|
time: 52h # 1 hour per week for 1 year
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: loadout
|
- type: loadout
|
||||||
id: BartenderHead
|
id: BartenderHead
|
||||||
@@ -40,3 +49,13 @@
|
|||||||
id: BartenderWintercoat
|
id: BartenderWintercoat
|
||||||
equipment:
|
equipment:
|
||||||
outerClothing: ClothingOuterWinterBar
|
outerClothing: ClothingOuterWinterBar
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
- type: loadout
|
||||||
|
id: BartenderGoldenShaker
|
||||||
|
effects:
|
||||||
|
- !type:GroupLoadoutEffect
|
||||||
|
proto: SeniorBar
|
||||||
|
storage:
|
||||||
|
back:
|
||||||
|
- DrinkShakerGold
|
||||||
|
|||||||
@@ -1,3 +1,33 @@
|
|||||||
|
# Playtime requirement for NanoTrasen Bible, Codex NanoTrasimus
|
||||||
|
- type: loadoutEffectGroup
|
||||||
|
id: NanoTrasenBibleRequirement
|
||||||
|
effects:
|
||||||
|
- !type:JobRequirementLoadoutEffect
|
||||||
|
requirement:
|
||||||
|
!type:RoleTimeRequirement
|
||||||
|
role: JobCaptain
|
||||||
|
time: 7200 #2 hrs
|
||||||
|
|
||||||
|
# Playtime requirement for Druid Bible, Druidic Tablet
|
||||||
|
- type: loadoutEffectGroup
|
||||||
|
id: DruidBibleRequirement
|
||||||
|
effects:
|
||||||
|
- !type:JobRequirementLoadoutEffect
|
||||||
|
requirement:
|
||||||
|
!type:RoleTimeRequirement
|
||||||
|
role: JobBotanist
|
||||||
|
time: 18000 #5 hrs
|
||||||
|
|
||||||
|
# Playtime requirement for Clown Bible, Mirth of the Honkmother
|
||||||
|
- type: loadoutEffectGroup
|
||||||
|
id: ClownBibleRequirement
|
||||||
|
effects:
|
||||||
|
- !type:JobRequirementLoadoutEffect
|
||||||
|
requirement:
|
||||||
|
!type:RoleTimeRequirement
|
||||||
|
role: JobClown
|
||||||
|
time: 18000 #5 hrs
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: loadout
|
- type: loadout
|
||||||
id: ChaplainHead
|
id: ChaplainHead
|
||||||
@@ -87,24 +117,39 @@
|
|||||||
|
|
||||||
- type: loadout
|
- type: loadout
|
||||||
id: BibleDruid
|
id: BibleDruid
|
||||||
|
effects:
|
||||||
|
- !type:GroupLoadoutEffect
|
||||||
|
proto: DruidBibleRequirement
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- BibleDruid
|
- BibleDruid
|
||||||
|
|
||||||
- type: loadout
|
- type: loadout
|
||||||
id: BibleNanoTrasen
|
id: BibleNanoTrasen
|
||||||
|
effects:
|
||||||
|
- !type:GroupLoadoutEffect
|
||||||
|
proto: NanoTrasenBibleRequirement
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- BibleNanoTrasen
|
- BibleNanoTrasen
|
||||||
|
|
||||||
- type: loadout
|
- type: loadout
|
||||||
id: BibleSatanic
|
id: BibleNarsie
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- BibleSatanic
|
- BibleNarsie
|
||||||
|
|
||||||
- type: loadout
|
- type: loadout
|
||||||
id: BibleTanakh
|
id: BibleHonk
|
||||||
|
effects:
|
||||||
|
- !type:GroupLoadoutEffect
|
||||||
|
proto: ClownBibleRequirement
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- BibleTanakh
|
- BibleHonk
|
||||||
|
|
||||||
|
- type: loadout
|
||||||
|
id: BibleRatvar
|
||||||
|
storage:
|
||||||
|
back:
|
||||||
|
- BibleRatvar
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobJanitor
|
role: JobJanitor
|
||||||
time: 187200 #52 hrs (1 hour per week for 1 year)
|
time: 52h # 1 hour per week for 1 year
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobPassenger
|
role: JobPassenger
|
||||||
time: 36000 #10 hrs, silly reward for people who play passenger a lot
|
time: 10h # silly reward for people who play passenger a lot
|
||||||
|
|
||||||
# Head of Greytide (for grey mantle)
|
# Head of Greytide (for grey mantle)
|
||||||
- type: loadoutEffectGroup
|
- type: loadoutEffectGroup
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobPassenger
|
role: JobPassenger
|
||||||
time: 72000 #20 hrs, fun mantle for the most experienced greytiders
|
time: 20h # fun mantle for the most experienced greytiders
|
||||||
|
|
||||||
# Face
|
# Face
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobCaptain
|
role: JobCaptain
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Jumpsuit
|
# Jumpsuit
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobHeadOfPersonnel
|
role: JobHeadOfPersonnel
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Professional HoP Time
|
# Professional HoP Time
|
||||||
- type: loadoutEffectGroup
|
- type: loadoutEffectGroup
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobHeadOfPersonnel
|
role: JobHeadOfPersonnel
|
||||||
time: 54000 #15 hrs, special reward for HoP mains
|
time: 15h # special reward for HoP mains
|
||||||
|
|
||||||
# Jumpsuit
|
# Jumpsuit
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobChiefEngineer
|
role: JobChiefEngineer
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Jumpsuit
|
# Jumpsuit
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,17 +6,17 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobAtmosphericTechnician
|
role: JobAtmosphericTechnician
|
||||||
time: 21600 #6 hrs
|
time: 6h
|
||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobStationEngineer
|
role: JobStationEngineer
|
||||||
time: 21600 #6 hrs
|
time: 6h
|
||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Engineering
|
department: Engineering
|
||||||
time: 216000 # 60 hrs
|
time: 60h
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: startingGear
|
- type: startingGear
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobChiefMedicalOfficer
|
role: JobChiefMedicalOfficer
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Jumpsuit
|
# Jumpsuit
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,17 +6,17 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobChemist
|
role: JobChemist
|
||||||
time: 21600 #6 hrs
|
time: 6h
|
||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobMedicalDoctor
|
role: JobMedicalDoctor
|
||||||
time: 21600 #6 hrs
|
time: 6h
|
||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Medical
|
department: Medical
|
||||||
time: 216000 # 60 hrs
|
time: 60h
|
||||||
|
|
||||||
# Other Timers
|
# Other Timers
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobMedicalDoctor
|
role: JobMedicalDoctor
|
||||||
time: 108000 #30 hrs
|
time: 30h
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobResearchDirector
|
role: JobResearchDirector
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Science
|
department: Science
|
||||||
time: 216000 #60 hrs
|
time: 60h
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: startingGear
|
- type: startingGear
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobHeadOfSecurity
|
role: JobHeadOfSecurity
|
||||||
time: 72000 #20 hrs
|
time: 20h
|
||||||
|
|
||||||
# Jumpsuit
|
# Jumpsuit
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,12 +6,12 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobWarden
|
role: JobWarden
|
||||||
time: 21600 #6 hrs
|
time: 6h
|
||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Security
|
department: Security
|
||||||
time: 216000 # 60 hrs
|
time: 60h
|
||||||
|
|
||||||
#Security Star
|
#Security Star
|
||||||
- type: loadoutEffectGroup
|
- type: loadoutEffectGroup
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Security
|
department: Security
|
||||||
time: 360000 #100 hrs
|
time: 100h
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
- type: loadout
|
- type: loadout
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobLibrarian
|
role: JobLibrarian
|
||||||
time: 3600 # 1 hour of being the biggest nerd on the station
|
time: 1h # for being the biggest nerd on the station
|
||||||
|
|
||||||
- type: loadoutEffectGroup
|
- type: loadoutEffectGroup
|
||||||
id: JensenTimer
|
id: JensenTimer
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Cargo
|
department: Cargo
|
||||||
time: 36000 #10 hours of being a space trucker
|
time: 10h # 10 hours of being a space trucker
|
||||||
|
|
||||||
# Basic options
|
# Basic options
|
||||||
# Glasses
|
# Glasses
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Command
|
department: Command
|
||||||
time: 3600 # 1 hour
|
time: 1h
|
||||||
|
|
||||||
# Flowers
|
# Flowers
|
||||||
- type: loadout
|
- type: loadout
|
||||||
@@ -308,7 +308,7 @@
|
|||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:OverallPlaytimeRequirement
|
!type:OverallPlaytimeRequirement
|
||||||
time: 36000 # 10hr
|
time: 10h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorWhite
|
- TowelColorWhite
|
||||||
@@ -320,7 +320,7 @@
|
|||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:OverallPlaytimeRequirement
|
!type:OverallPlaytimeRequirement
|
||||||
time: 1800000 # 500hr
|
time: 500h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorSilver
|
- TowelColorSilver
|
||||||
@@ -332,7 +332,7 @@
|
|||||||
- !type:JobRequirementLoadoutEffect
|
- !type:JobRequirementLoadoutEffect
|
||||||
requirement:
|
requirement:
|
||||||
!type:OverallPlaytimeRequirement
|
!type:OverallPlaytimeRequirement
|
||||||
time: 3600000 # 1000hr
|
time: 1000h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorGold
|
- TowelColorGold
|
||||||
@@ -345,7 +345,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Cargo
|
department: Cargo
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorLightBrown
|
- TowelColorLightBrown
|
||||||
@@ -358,7 +358,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Civilian
|
department: Civilian
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorGreen
|
- TowelColorGreen
|
||||||
@@ -371,7 +371,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Command
|
department: Command
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorDarkBlue
|
- TowelColorDarkBlue
|
||||||
@@ -384,7 +384,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Engineering
|
department: Engineering
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorOrange
|
- TowelColorOrange
|
||||||
@@ -397,7 +397,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Medical
|
department: Medical
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorLightBlue
|
- TowelColorLightBlue
|
||||||
@@ -410,7 +410,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Science
|
department: Science
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorPurple
|
- TowelColorPurple
|
||||||
@@ -423,7 +423,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:DepartmentTimeRequirement
|
!type:DepartmentTimeRequirement
|
||||||
department: Security
|
department: Security
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorRed
|
- TowelColorRed
|
||||||
@@ -436,7 +436,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobPassenger
|
role: JobPassenger
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorGray
|
- TowelColorGray
|
||||||
@@ -449,7 +449,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobChaplain
|
role: JobChaplain
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorBlack
|
- TowelColorBlack
|
||||||
@@ -462,7 +462,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobLibrarian
|
role: JobLibrarian
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorDarkGreen
|
- TowelColorDarkGreen
|
||||||
@@ -475,7 +475,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobLawyer
|
role: JobLawyer
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorMaroon
|
- TowelColorMaroon
|
||||||
@@ -488,7 +488,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobClown
|
role: JobClown
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorYellow
|
- TowelColorYellow
|
||||||
@@ -501,7 +501,7 @@
|
|||||||
requirement:
|
requirement:
|
||||||
!type:RoleTimeRequirement
|
!type:RoleTimeRequirement
|
||||||
role: JobMime
|
role: JobMime
|
||||||
time: 360000 # 100hr
|
time: 100h
|
||||||
storage:
|
storage:
|
||||||
back:
|
back:
|
||||||
- TowelColorMime
|
- TowelColorMime
|
||||||
|
|||||||
@@ -270,6 +270,13 @@
|
|||||||
- BartenderApron
|
- BartenderApron
|
||||||
- BartenderWintercoat
|
- BartenderWintercoat
|
||||||
|
|
||||||
|
- type: loadoutGroup
|
||||||
|
id: BartenderGoldenShaker
|
||||||
|
name: loadout-group-bartender-shaker
|
||||||
|
minLimit: 0
|
||||||
|
loadouts:
|
||||||
|
- BartenderGoldenShaker
|
||||||
|
|
||||||
- type: loadoutGroup
|
- type: loadoutGroup
|
||||||
id: ChefHead
|
id: ChefHead
|
||||||
name: loadout-group-chef-head
|
name: loadout-group-chef-head
|
||||||
@@ -381,10 +388,11 @@
|
|||||||
minLimit: 1
|
minLimit: 1
|
||||||
loadouts:
|
loadouts:
|
||||||
- Bible
|
- Bible
|
||||||
- BibleDruid
|
|
||||||
- BibleNanoTrasen
|
- BibleNanoTrasen
|
||||||
- BibleSatanic
|
- BibleDruid
|
||||||
- BibleTanakh
|
- BibleHonk
|
||||||
|
- BibleRatvar
|
||||||
|
- BibleNarsie
|
||||||
|
|
||||||
- type: loadoutGroup
|
- type: loadoutGroup
|
||||||
id: JanitorHead
|
id: JanitorHead
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
- BartenderJumpsuit
|
- BartenderJumpsuit
|
||||||
- CommonBackpack
|
- CommonBackpack
|
||||||
- BartenderOuterClothing
|
- BartenderOuterClothing
|
||||||
|
- BartenderGoldenShaker
|
||||||
- Glasses
|
- Glasses
|
||||||
- Survival
|
- Survival
|
||||||
- Trinkets
|
- Trinkets
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user