Merge branch 'master' into offmed-staging
This commit is contained in:
@@ -14,6 +14,9 @@ namespace Content.Client.Administration.UI.Notes;
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class AdminNotesLine : BoxContainer
|
||||
{
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
|
||||
private readonly ISawmill _sawmill = default!;
|
||||
private readonly SpriteSystem _sprites;
|
||||
|
||||
private const string AdminNotesTextureBase = "/Textures/Interface/AdminNotes/";
|
||||
@@ -33,6 +36,8 @@ public sealed partial class AdminNotesLine : BoxContainer
|
||||
public AdminNotesLine(SpriteSystem sprites, SharedAdminNote note)
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
|
||||
_sawmill = _logManager.GetSawmill("admin.notes");
|
||||
_sprites = sprites;
|
||||
|
||||
Note = note;
|
||||
@@ -61,7 +66,7 @@ public sealed partial class AdminNotesLine : BoxContainer
|
||||
if (iconPath is null)
|
||||
{
|
||||
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
|
||||
{
|
||||
|
||||
@@ -37,8 +37,7 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
|
||||
if (!layerExists)
|
||||
layer = SpriteSystem.LayerMapReserve((uid, args.Sprite), TypingIndicatorLayers.Base);
|
||||
|
||||
SpriteSystem.LayerSetRsi((uid, args.Sprite), layer, proto.SpritePath);
|
||||
SpriteSystem.LayerSetRsiState((uid, args.Sprite), layer, proto.TypingState);
|
||||
SpriteSystem.LayerSetRsi((uid, args.Sprite), layer, proto.SpritePath, proto.TypingState);
|
||||
args.Sprite.LayerSetShader(layer, proto.Shader);
|
||||
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 IPlayerManager _playerManager = 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 EntityWhitelistSystem _whitelistSystem;
|
||||
|
||||
@@ -87,6 +89,8 @@ namespace Content.Client.Construction.UI
|
||||
{
|
||||
// This is a lot easier than a factory
|
||||
IoCManager.InjectDependencies(this);
|
||||
_sawmill = _logManager.GetSawmill("construction.menu");
|
||||
|
||||
_constructionView = new ConstructionMenu();
|
||||
_whitelistSystem = _entManager.System<EntityWhitelistSystem>();
|
||||
_spriteSystem = _entManager.System<SpriteSystem>();
|
||||
@@ -284,7 +288,7 @@ namespace Content.Client.Construction.UI
|
||||
|
||||
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,
|
||||
nameof(ConstructionPrototype));
|
||||
continue;
|
||||
|
||||
@@ -7,7 +7,6 @@ using Robust.Client.UserInterface;
|
||||
using Robust.Shared.ContentPack;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Reflection;
|
||||
using Robust.Shared.Sandboxing;
|
||||
using Robust.Shared.Utility;
|
||||
using static Pidgin.Parser;
|
||||
|
||||
@@ -21,7 +20,7 @@ public sealed partial class DocumentParsingManager
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly IReflectionManager _reflectionManager = 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 Parser<char, Control> _controlParser = default!;
|
||||
@@ -43,7 +42,7 @@ public sealed partial class DocumentParsingManager
|
||||
|
||||
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());
|
||||
@@ -51,22 +50,22 @@ public sealed partial class DocumentParsingManager
|
||||
_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))
|
||||
return false;
|
||||
|
||||
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);
|
||||
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
|
||||
{
|
||||
@@ -87,14 +86,14 @@ public sealed partial class DocumentParsingManager
|
||||
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(
|
||||
(args, controls) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var tag = (IDocumentTag) sandbox.CreateInstance(tagType);
|
||||
var tag = (IDocumentTag) typeFactory.CreateInstance(tagType);
|
||||
if (!tag.TryParseTag(args, out var control))
|
||||
{
|
||||
_sawmill.Error($"Failed to parse {tagId} args");
|
||||
|
||||
@@ -8,6 +8,11 @@ namespace Content.Client.Guidebook.Richtext;
|
||||
[UsedImplicitly]
|
||||
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)
|
||||
{
|
||||
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))
|
||||
{
|
||||
Logger.Error("Guidebook tag \"Table\" does not specify required property \"Columns.\"");
|
||||
Sawmill.Error("Guidebook tag \"Table\" does not specify required property \"Columns.\"");
|
||||
control = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
@@ -12,6 +12,11 @@ namespace Content.Client.Guidebook.RichText;
|
||||
[UsedImplicitly]
|
||||
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 string Name => "textlink";
|
||||
@@ -53,7 +58,7 @@ public sealed class TextLinkTag : IMarkupTagHandler
|
||||
if (control.TryGetParentHandler<ILinkClickHandler>(out var handler))
|
||||
handler.HandleClick(link);
|
||||
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 IConfigurationManager _cfg = default!;
|
||||
[Dependency] private readonly IClipboardManager _clipboard = default!;
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
|
||||
private ISawmill _sawmill = default!;
|
||||
private LauncherConnectingGui? _control;
|
||||
|
||||
private Page _currentPage;
|
||||
@@ -59,6 +61,8 @@ namespace Content.Client.Launcher
|
||||
|
||||
protected override void Startup()
|
||||
{
|
||||
_sawmill = _logManager.GetSawmill("launcher-ui");
|
||||
|
||||
_control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg, _clipboard);
|
||||
|
||||
_userInterfaceManager.StateRoot.AddChild(_control);
|
||||
@@ -115,12 +119,12 @@ namespace Content.Client.Launcher
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.InfoS("launcher-ui", $"Redial not possible, no Ss14Address");
|
||||
_sawmill.Info($"Redial not possible, no Ss14Address");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.ErrorS("launcher-ui", $"Redial exception: {ex}");
|
||||
_sawmill.Error($"Redial exception: {ex}");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -14,12 +14,18 @@ namespace Content.Client.UserInterface.Systems.Alerts.Widgets;
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class AlertsUI : UIWidget
|
||||
{
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
|
||||
private readonly ISawmill _sawmill = default!;
|
||||
|
||||
// also known as Control.Children?
|
||||
private readonly Dictionary<AlertKey, AlertControl> _alertControls = new();
|
||||
|
||||
public AlertsUI()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
|
||||
_sawmill = _logManager.GetSawmill("alertsui");
|
||||
}
|
||||
|
||||
public void SyncControls(AlertsSystem alertsSystem,
|
||||
@@ -78,15 +84,15 @@ public sealed partial class AlertsUI : UIWidget
|
||||
{
|
||||
if (!alertKey.AlertType.HasValue)
|
||||
{
|
||||
Logger.WarningS("alert", "found alertkey without alerttype," +
|
||||
" alert keys should never be stored without an alerttype set: {0}", alertKey);
|
||||
_sawmill.Warning("found alertkey without alerttype," +
|
||||
" alert keys should never be stored without an alerttype set: {0}", alertKey);
|
||||
continue;
|
||||
}
|
||||
|
||||
var alertType = alertKey.AlertType.Value;
|
||||
if (!alertsSystem.TryGet(alertType, out var newAlert))
|
||||
{
|
||||
Logger.ErrorS("alert", "Unrecognized alertType {0}", alertType);
|
||||
_sawmill.Error("Unrecognized alertType {0}", alertType);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,9 @@ public sealed class ReplayMainScreen : State
|
||||
[Dependency] private readonly IClientRobustSerializer _serializer = default!;
|
||||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
||||
[Dependency] private readonly ContentReplayPlaybackManager _replayMan = default!;
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
|
||||
private ISawmill _sawmill = default!;
|
||||
private ReplayMainMenuControl _mainMenuControl = default!;
|
||||
private SelectReplayWindow? _selectWindow;
|
||||
private ResPath _directory;
|
||||
@@ -42,6 +44,8 @@ public sealed class ReplayMainScreen : State
|
||||
|
||||
protected override void Startup()
|
||||
{
|
||||
_sawmill = _logManager.GetSawmill("replay.screen");
|
||||
|
||||
_mainMenuControl = new(_resourceCache);
|
||||
_userInterfaceManager.StateRoot.AddChild(_mainMenuControl);
|
||||
|
||||
@@ -263,7 +267,7 @@ public sealed class ReplayMainScreen : State
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.Error($"Failed to load replay info. Exception: {ex}");
|
||||
_sawmill.Error($"Failed to load replay info. Exception: {ex}");
|
||||
SelectReplay(null);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,9 @@ public sealed class SpaceHeaterSystem : EntitySystem
|
||||
if (!TryComp<GasThermoMachineComponent>(uid, out var thermoMachine))
|
||||
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);
|
||||
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.Managers;
|
||||
using Content.Server.Administration.Systems;
|
||||
@@ -18,6 +15,9 @@ using Robust.Shared.Network;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Replays;
|
||||
using Robust.Shared.Utility;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Content.Server.Chat.Managers;
|
||||
|
||||
@@ -45,6 +45,7 @@ internal sealed partial class ChatManager : IChatManager
|
||||
[Dependency] private readonly PlayerRateLimitManager _rateLimitManager = default!;
|
||||
[Dependency] private readonly ISharedPlayerManager _player = default!;
|
||||
[Dependency] private readonly DiscordChatLink _discordLink = default!;
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 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 _adminOocEnabled = true;
|
||||
|
||||
private ISawmill _sawmill = default!;
|
||||
private readonly Dictionary<NetUserId, ChatUser> _players = new();
|
||||
|
||||
public void Initialize()
|
||||
@@ -64,6 +66,8 @@ internal sealed partial class ChatManager : IChatManager
|
||||
_configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
|
||||
_configurationManager.OnValueChanged(CCVars.AdminOocEnabled, OnAdminOocEnabledChanged, true);
|
||||
|
||||
_sawmill = _logManager.GetSawmill("SERVER");
|
||||
|
||||
RegisterRateLimits();
|
||||
}
|
||||
|
||||
@@ -111,7 +115,7 @@ internal sealed partial class ChatManager : IChatManager
|
||||
{
|
||||
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);
|
||||
Logger.InfoS("SERVER", message);
|
||||
_sawmill.Info(message);
|
||||
|
||||
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public sealed partial class ReactionMixerSystem : EntitySystem
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<ReactionMixerComponent, AfterInteractEvent>(OnAfterInteract);
|
||||
SubscribeLocalEvent<ReactionMixerComponent, AfterInteractEvent>(OnAfterInteract, before: [typeof(IngestionSystem)]);
|
||||
SubscribeLocalEvent<ReactionMixerComponent, ShakeEvent>(OnShake);
|
||||
SubscribeLocalEvent<ReactionMixerComponent, ReactionMixDoAfterEvent>(OnDoAfter);
|
||||
}
|
||||
@@ -29,12 +29,13 @@ public sealed partial class ReactionMixerSystem : EntitySystem
|
||||
if (!args.Target.HasValue || !args.CanReach || !entity.Comp.MixOnInteract)
|
||||
return;
|
||||
|
||||
if (!MixAttempt(entity, args.Target.Value, out var solution))
|
||||
if (!MixAttempt(entity, args.Target.Value, out _))
|
||||
return;
|
||||
|
||||
var doAfterArgs = new DoAfterArgs(EntityManager, args.User, entity.Comp.TimeToMix, new ReactionMixDoAfterEvent(), entity, args.Target.Value, entity);
|
||||
|
||||
_doAfterSystem.TryStartDoAfter(doAfterArgs);
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnDoAfter(Entity<ReactionMixerComponent> entity, ref ReactionMixDoAfterEvent args)
|
||||
|
||||
@@ -13,11 +13,14 @@ namespace Content.Server.GameTicking.Commands
|
||||
[AnyCommand]
|
||||
sealed class JoinGameCommand : IConsoleCommand
|
||||
{
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
[Dependency] private readonly IEntityManager _entManager = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IAdminManager _adminManager = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
private readonly ISawmill _sawmill = default!;
|
||||
|
||||
public string Command => "joingame";
|
||||
public string Description => "";
|
||||
public string Help => "";
|
||||
@@ -25,6 +28,8 @@ namespace Content.Server.GameTicking.Commands
|
||||
public JoinGameCommand()
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
_sawmill = _logManager.GetSawmill("security");
|
||||
}
|
||||
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)
|
||||
{
|
||||
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.");
|
||||
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>
|
||||
[DataField("blackboard", customTypeSerializer: typeof(NPCBlackboardSerializer))]
|
||||
public NPCBlackboard Blackboard = new();
|
||||
// TODO FULL GAME SAVE Serialize this
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ public sealed partial class HTNComponent : NPCComponent
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public HTNPlan? Plan;
|
||||
// TODO FULL GAME SAVE serialize this?
|
||||
|
||||
/// <summary>
|
||||
/// How long to wait after having planned to try planning again.
|
||||
|
||||
@@ -33,6 +33,7 @@ public sealed class HTNSystem : EntitySystem
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<HTNComponent, MobStateChangedEvent>(_npc.OnMobStateChange);
|
||||
SubscribeLocalEvent<HTNComponent, MapInitEvent>(_npc.OnNPCMapInit);
|
||||
SubscribeLocalEvent<HTNComponent, ComponentStartup>(_npc.OnNPCStartup);
|
||||
SubscribeLocalEvent<HTNComponent, PlayerAttachedEvent>(_npc.OnPlayerNPCAttach);
|
||||
SubscribeLocalEvent<HTNComponent, PlayerDetachedEvent>(_npc.OnPlayerNPCDetach);
|
||||
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);
|
||||
}
|
||||
|
||||
public void OnNPCMapInit(EntityUid uid, HTNComponent component, MapInitEvent args)
|
||||
public void OnNPCStartup(EntityUid uid, HTNComponent component, ComponentStartup args)
|
||||
{
|
||||
component.Blackboard.SetValue(NPCBlackboard.Owner, uid);
|
||||
}
|
||||
|
||||
public void OnNPCMapInit(EntityUid uid, HTNComponent component, MapInitEvent args)
|
||||
{
|
||||
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.Server.Ghost.Components;
|
||||
using Content.Shared.Body.Components;
|
||||
using Content.Shared.Body.Events;
|
||||
using Content.Shared.Ghost;
|
||||
using Content.Shared.Mind;
|
||||
using Content.Shared.Mind.Components;
|
||||
using Content.Shared.Mobs.Components;
|
||||
using Content.Shared.Pointing;
|
||||
|
||||
namespace Content.Server.Body.Systems;
|
||||
namespace Content.Shared.Body.Systems;
|
||||
|
||||
public sealed class BrainSystem : EntitySystem
|
||||
{
|
||||
@@ -43,4 +43,3 @@ public sealed class BrainSystem : EntitySystem
|
||||
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()
|
||||
{
|
||||
Species = species,
|
||||
Appearance = HumanoidCharacterAppearance.DefaultWithSpecies(species),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
using Content.Shared.Inventory;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Storage.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Applies an ongoing pickup area around the attached entity.
|
||||
/// </summary>
|
||||
[RegisterComponent, AutoGenerateComponentPause]
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
[AutoGenerateComponentState]
|
||||
[AutoGenerateComponentPause]
|
||||
public sealed partial class MagnetPickupComponent : Component
|
||||
{
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("nextScan")]
|
||||
[AutoPausedField]
|
||||
[AutoNetworkedField]
|
||||
public TimeSpan NextScan = TimeSpan.Zero;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -47,6 +47,7 @@ public sealed class MagnetPickupSystem : EntitySystem
|
||||
continue;
|
||||
|
||||
comp.NextScan += ScanDelay;
|
||||
Dirty(uid, comp);
|
||||
|
||||
if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef))
|
||||
continue;
|
||||
|
||||
@@ -1447,5 +1447,19 @@ Entries:
|
||||
id: 175
|
||||
time: '2025-09-25T21:43:53.0000000+00:00'
|
||||
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
|
||||
Order: 2
|
||||
|
||||
@@ -1,312 +1,4 @@
|
||||
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
|
||||
changes:
|
||||
- message: Shuttle impact force is now proportional to direction of impact.
|
||||
@@ -3963,3 +3655,307 @@
|
||||
id: 9011
|
||||
time: '2025-09-27T17:01:14.0000000+00:00'
|
||||
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
|
||||
time: '2025-09-25T21:36:16.0000000+00:00'
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
discord-round-notifications-new = A new round is starting!
|
||||
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-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
|
||||
|
||||
@@ -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-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-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 = Vox Left Arm Tattoo (Heart)
|
||||
|
||||
marking-TattooVoxHeartRightArm-heart_r_arm = Vox Right Arm Tattoo (Heart)
|
||||
marking-TattooVoxHeartRightArm = Vox Right Arm Tattoo (Heart)
|
||||
|
||||
marking-TattooVoxHiveChest-hive_s = Vox Chest Tattoo (hive)
|
||||
marking-TattooVoxHiveChest = Vox Chest Tattoo (hive)
|
||||
marking-TattooVoxHiveChest-hive_s = Vox Chest Tattoo (Hive)
|
||||
marking-TattooVoxHiveChest = Vox Chest Tattoo (Hive)
|
||||
|
||||
marking-TattooVoxNightlingChest-nightling_s = Vox Chest Tattoo (nightling)
|
||||
marking-TattooVoxNightlingChest = Vox Chest Tattoo (nightling)
|
||||
marking-TattooVoxNightlingChest-nightling_s = 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 = 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-weapon-antique-laser = antique laser pistol
|
||||
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
|
||||
steal-target-groups-figurines = figurine
|
||||
|
||||
@@ -43,6 +43,7 @@ loadout-group-passenger-neck = Passenger neck
|
||||
loadout-group-bartender-head = Bartender head
|
||||
loadout-group-bartender-jumpsuit = Bartender jumpsuit
|
||||
loadout-group-bartender-outerclothing = Bartender outer clothing
|
||||
loadout-group-bartender-shaker = Bartender shaker
|
||||
|
||||
loadout-group-chef-head = Chef head
|
||||
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
|
||||
state: icon
|
||||
product: CrateSecurityBiosuit
|
||||
cost: 800
|
||||
cost: 1600
|
||||
category: cargoproduct-category-name-security
|
||||
group: market
|
||||
|
||||
|
||||
@@ -183,6 +183,7 @@
|
||||
- id: DrinkWaterBottleFull
|
||||
- type: Tag
|
||||
tags:
|
||||
- BoxCardboard
|
||||
- BoxHug
|
||||
|
||||
- type: entity
|
||||
@@ -212,7 +213,7 @@
|
||||
- id: EmergencyOxygenTankFilled
|
||||
- id: EmergencyMedipen
|
||||
- id: Flare
|
||||
- id: FoodSnackNutribrick
|
||||
- id: FoodBreadNutriBatard
|
||||
- id: DrinkWaterBottleFull
|
||||
|
||||
- type: entity
|
||||
@@ -226,7 +227,7 @@
|
||||
- id: EmergencyNitrogenTankFilled
|
||||
- id: EmergencyMedipen
|
||||
- id: Flare
|
||||
- id: FoodSnackNutribrick
|
||||
- id: FoodBreadNutriBatard
|
||||
- id: DrinkWaterBottleFull
|
||||
- type: Sprite
|
||||
layers:
|
||||
@@ -246,7 +247,7 @@
|
||||
- id: EmergencyOxygenTankFilled
|
||||
- id: EmergencyMedipen
|
||||
- id: Flare
|
||||
- id: FoodSnackNutribrick
|
||||
- id: FoodBreadCottonNutriBatard
|
||||
- id: DrinkWaterBottleFull
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -408,7 +408,7 @@
|
||||
- type: Storage
|
||||
grid:
|
||||
- 0,0,5,3
|
||||
whitelist:
|
||||
whitelist: # TODO cardboard boxes shouldn't have whitelisting
|
||||
tags:
|
||||
- Candle
|
||||
- type: StorageFill
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
layers:
|
||||
- state: box
|
||||
- state: bodybags
|
||||
- type: Storage
|
||||
- type: Storage # TODO cardboard boxes shouldn't have whitelisting
|
||||
whitelist:
|
||||
tags:
|
||||
- BodyBag
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
id: LockerFillHeadOfSecurityNoHardsuit
|
||||
table: !type:AllSelector
|
||||
children:
|
||||
- id: WeaponEnergyShotgun
|
||||
- id: WeaponEnergyMagnum
|
||||
- id: BookSpaceLaw
|
||||
- id: BoxEncryptionKeySecurity
|
||||
- id: CigarGoldCase
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
amount: 2
|
||||
- id: NetworkConfigurator
|
||||
- id: Binoculars
|
||||
- id: WeaponEnergyShotgun
|
||||
|
||||
- type: entityTable
|
||||
id: FillLockerWardenHarduit
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
- type: entity
|
||||
parent: ClothingOuterBaseLarge
|
||||
parent: [ClothingOuterBaseLarge, AllowSuitStorageClothingGasTanks]
|
||||
id: ClothingOuterBioGeneral
|
||||
name: bio suit
|
||||
suffix: Generic
|
||||
@@ -64,7 +64,7 @@
|
||||
sprite: Clothing/OuterClothing/Bio/scientist.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingOuterBioGeneral, BaseSecurityContraband]
|
||||
parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseSecurityContraband]
|
||||
id: ClothingOuterBioSecurity
|
||||
name: bio suit
|
||||
suffix: Security
|
||||
@@ -82,6 +82,10 @@
|
||||
Piercing: 0.8
|
||||
- type: ZombificationResistance
|
||||
zombificationResistanceCoefficient: 0.4
|
||||
- type: GroupExamine
|
||||
- type: ClothingSpeedModifier
|
||||
walkModifier: 0.95
|
||||
sprintModifier: 0.95
|
||||
|
||||
- type: entity
|
||||
parent: ClothingOuterBioGeneral
|
||||
|
||||
@@ -13,6 +13,52 @@
|
||||
!type:SimpleColoring
|
||||
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
|
||||
id: VoxLArmScales
|
||||
bodyPart: LArm
|
||||
|
||||
@@ -54,6 +54,50 @@
|
||||
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||
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
|
||||
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.
|
||||
@@ -131,3 +175,125 @@
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/vox_tattoos.rsi
|
||||
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
|
||||
NavSmash: !type:Bool
|
||||
true
|
||||
- type: Puller
|
||||
needsHands: false
|
||||
- type: Prying
|
||||
pryPowered: true
|
||||
force: true
|
||||
@@ -1978,6 +1980,12 @@
|
||||
parent: MobMouse
|
||||
id: MobMouseCancer
|
||||
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
|
||||
color: LightGreen
|
||||
- type: PointLight
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
components:
|
||||
- type: Spectral
|
||||
- type: Tag
|
||||
tags:
|
||||
tags: # BAD: Intentional removal of inherited tag
|
||||
- AllowGhostShownByEvent
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -109,6 +109,24 @@
|
||||
32:
|
||||
sprite: Mobs/Species/Human/displacement.rsi
|
||||
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
|
||||
parent: BaseSpeciesDummy
|
||||
|
||||
@@ -30,6 +30,44 @@
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
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
|
||||
# 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.
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
# map: ["enum.OpenableVisuals.Layer"]
|
||||
|
||||
## 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
|
||||
- type: entity
|
||||
@@ -103,13 +103,14 @@
|
||||
visuals:
|
||||
enum.OpenableVisuals.Opened:
|
||||
enum.OpenableVisuals.Layer:
|
||||
True: {state: "icon_open"}
|
||||
False: {state: "icon"}
|
||||
True: {state: "icon_open"} # lid off
|
||||
False: {state: "icon"} # lid on
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: icon
|
||||
map: ["enum.OpenableVisuals.Layer"]
|
||||
- type: ExaminableSolution
|
||||
solution: *sol
|
||||
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
|
||||
|
||||
@@ -121,11 +122,12 @@
|
||||
- type: Appearance
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: icon_empty
|
||||
- state: icon
|
||||
- state: fill-1
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
- type: SolutionContainerVisuals
|
||||
solutionName: *sol
|
||||
maxFillLevels: 5
|
||||
fillBaseName: fill-
|
||||
inHandsMaxFillLevels: 3
|
||||
@@ -139,7 +141,7 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: icon_empty
|
||||
- state: icon
|
||||
map: [ "enum.SolutionContainerLayers.Base" ]
|
||||
- state: fill-1
|
||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
||||
@@ -169,8 +171,8 @@
|
||||
visuals:
|
||||
enum.OpenableVisuals.Opened:
|
||||
enum.OpenableVisuals.Layer:
|
||||
True: {state: "icon_open"}
|
||||
False: {state: "icon_empty"}
|
||||
True: {state: "icon_open"} # lid off
|
||||
False: {state: "icon_empty"} # lid on
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: icon_empty
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/alco-bottle.rsi
|
||||
layers:
|
||||
- state: icon_blue # todo add "icon_empty" state
|
||||
- state: icon_empty
|
||||
map: ["enum.OpenableVisuals.Layer"]
|
||||
- state: fill-6
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
@@ -260,7 +260,7 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/alco-bottle.rsi
|
||||
layers:
|
||||
- state: icon_green # todo icon_empty
|
||||
- state: icon_empty
|
||||
map: ["enum.OpenableVisuals.Layer"]
|
||||
- state: fill-6
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
solutions:
|
||||
drink:
|
||||
maxVol: 30
|
||||
grindable:
|
||||
grindable: &grindable
|
||||
reagents: # 5u -> 1/2 steel sheet (10u)
|
||||
- ReagentId: Aluminium # Fun fact: soda can makeup is approx. 75% aluminium and 25% tin/iron.
|
||||
Quantity: 4
|
||||
@@ -51,12 +51,7 @@
|
||||
reagents:
|
||||
- ReagentId: Cola
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cola
|
||||
@@ -76,12 +71,7 @@
|
||||
solutions:
|
||||
drink:
|
||||
maxVol: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cola
|
||||
@@ -101,12 +91,7 @@
|
||||
reagents:
|
||||
- ReagentId: IcedTea
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/ice_tea_can.rsi
|
||||
- type: Item
|
||||
@@ -125,12 +110,7 @@
|
||||
reagents:
|
||||
- ReagentId: LemonLime
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/lemon-lime.rsi
|
||||
- type: Item
|
||||
@@ -149,12 +129,7 @@
|
||||
reagents:
|
||||
- ReagentId: LemonLimeCranberry
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/lemon-lime-cranberry.rsi
|
||||
- type: Item
|
||||
@@ -206,12 +181,7 @@
|
||||
reagents:
|
||||
- ReagentId: GrapeSoda
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/purple_can.rsi
|
||||
- type: Item
|
||||
@@ -230,12 +200,7 @@
|
||||
reagents:
|
||||
- ReagentId: RootBeer
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/rootbeer.rsi
|
||||
- type: Item
|
||||
@@ -258,12 +223,7 @@
|
||||
reagents:
|
||||
- ReagentId: SodaWater
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/sodawater.rsi
|
||||
- type: Item
|
||||
@@ -282,12 +242,7 @@
|
||||
reagents:
|
||||
- ReagentId: SpaceMountainWind
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/space_mountain_wind.rsi
|
||||
- type: Item
|
||||
@@ -306,12 +261,7 @@
|
||||
reagents:
|
||||
- ReagentId: SpaceUp
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/space-up.rsi
|
||||
- type: Item
|
||||
@@ -330,12 +280,7 @@
|
||||
reagents:
|
||||
- ReagentId: SolDry
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/sol_dry.rsi
|
||||
- type: Item
|
||||
@@ -354,12 +299,7 @@
|
||||
reagents:
|
||||
- ReagentId: Starkist
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/starkist.rsi
|
||||
- type: Item
|
||||
@@ -378,12 +318,7 @@
|
||||
reagents:
|
||||
- ReagentId: TonicWater
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/tonic.rsi
|
||||
- type: Item
|
||||
@@ -402,12 +337,7 @@
|
||||
reagents:
|
||||
- ReagentId: FourteenLoko
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/fourteen_loko.rsi
|
||||
- type: Item
|
||||
@@ -426,12 +356,7 @@
|
||||
reagents:
|
||||
- ReagentId: ChangelingSting
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/changelingsting.rsi
|
||||
- type: Item
|
||||
@@ -450,12 +375,7 @@
|
||||
reagents:
|
||||
- ReagentId: DrGibb
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/dr_gibb.rsi
|
||||
- type: Item
|
||||
@@ -478,12 +398,7 @@
|
||||
Quantity: 20
|
||||
- ReagentId: Ice
|
||||
Quantity: 5
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/robustnukie.rsi
|
||||
- type: Item
|
||||
@@ -502,12 +417,7 @@
|
||||
reagents:
|
||||
- ReagentId: EnergyDrink
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/energy_drink.rsi
|
||||
- type: Item
|
||||
@@ -526,12 +436,7 @@
|
||||
reagents:
|
||||
- ReagentId: ShamblersJuice
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/shamblersjuice.rsi
|
||||
- type: Item
|
||||
@@ -550,12 +455,7 @@
|
||||
reagents:
|
||||
- ReagentId: PwrGame
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/pwrgame.rsi
|
||||
- type: Item
|
||||
@@ -574,12 +474,7 @@
|
||||
reagents:
|
||||
- ReagentId: Beer
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/beer_can.rsi
|
||||
- type: Item
|
||||
@@ -602,12 +497,7 @@
|
||||
reagents:
|
||||
- ReagentId: Wine
|
||||
Quantity: 30
|
||||
grindable:
|
||||
reagents:
|
||||
- ReagentId: Aluminium
|
||||
Quantity: 4
|
||||
- ReagentId: Iron
|
||||
Quantity: 1
|
||||
grindable: *grindable
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/wine_can.rsi
|
||||
- type: Item
|
||||
|
||||
@@ -22,22 +22,16 @@
|
||||
# A mug is a type of cup.[2]
|
||||
- type: entity
|
||||
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
|
||||
name: mug
|
||||
description: A mug.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/mug.rsi
|
||||
layers:
|
||||
- state: icon-0
|
||||
- state: icon-3
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
- type: Appearance
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 3
|
||||
fillBaseName: icon-
|
||||
inHandsFillBaseName: null
|
||||
|
||||
## Misc Cups
|
||||
|
||||
@@ -53,18 +47,13 @@
|
||||
price: 125
|
||||
|
||||
- type: entity
|
||||
parent: DrinkBaseMug
|
||||
parent: DrinkBaseMug # a teacup is basically a mug
|
||||
id: DrinkTeacupEmpty
|
||||
name: teacup
|
||||
description: A plain white porcelain teacup.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/teacup.rsi
|
||||
layers:
|
||||
- state: icon-0
|
||||
- state: icon-4
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 4
|
||||
|
||||
@@ -76,20 +65,11 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
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
|
||||
fillBaseName: fill # todo rename to "fill-" to match DrinkVisualsFillOverlay
|
||||
inHandsMaxFillLevels: 1
|
||||
|
||||
- type: entity
|
||||
parent: [DrinkBaseMaterialCardboard, DrinkBaseCup] # TODO should use DrinkVisualsFill but state names are wrong and no inhand
|
||||
parent: [DrinkBaseMaterialCardboard, DrinkBaseCup, DrinkBaseEmptyTrash, DrinkVisualsFill]
|
||||
id: DrinkWaterCup
|
||||
name: water cup
|
||||
description: A paper water cup.
|
||||
@@ -102,22 +82,14 @@
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/water_cup.rsi
|
||||
layers:
|
||||
- state: icon-0
|
||||
- state: icon-1
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 1
|
||||
fillBaseName: icon-
|
||||
inHandsFillBaseName: null
|
||||
- type: Tag
|
||||
tags:
|
||||
- Trash
|
||||
- DrinkCup
|
||||
- WhitelistChameleon
|
||||
- type: Appearance
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: drink
|
||||
- type: Clothing
|
||||
slots:
|
||||
- HEAD
|
||||
@@ -240,16 +212,13 @@
|
||||
- ReagentId: HotCocoa
|
||||
Quantity: 20
|
||||
- type: Icon
|
||||
sprite: Objects/Consumable/Drinks/hot_coco.rsi
|
||||
state: icon-vend
|
||||
sprite: Objects/Consumable/Drinks/mug.rsi
|
||||
state: icon-vend-brown
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/hot_coco.rsi
|
||||
layers:
|
||||
- state: icon-0
|
||||
- map: ["enum.SolutionContainerLayers.Fill"]
|
||||
state: icon-4
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 4
|
||||
- state: icon
|
||||
- state: fill-3
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: drink
|
||||
|
||||
@@ -267,16 +236,13 @@
|
||||
- ReagentId: Coffee
|
||||
Quantity: 20
|
||||
- type: Icon
|
||||
sprite: Objects/Consumable/Drinks/hot_coffee.rsi
|
||||
state: icon-vend
|
||||
sprite: Objects/Consumable/Drinks/mug.rsi
|
||||
state: icon-vend-brown
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/hot_coffee.rsi
|
||||
layers:
|
||||
- state: icon-0
|
||||
- map: ["enum.SolutionContainerLayers.Fill"]
|
||||
state: icon-4
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 4
|
||||
- state: icon
|
||||
- state: fill-3
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: drink
|
||||
|
||||
@@ -293,16 +259,17 @@
|
||||
reagents:
|
||||
- ReagentId: CafeLatte
|
||||
Quantity: 20
|
||||
- type: Icon
|
||||
sprite: Objects/Consumable/Drinks/cafe_latte.rsi
|
||||
state: icon-vend
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/cafe_latte.rsi
|
||||
layers:
|
||||
- state: icon_empty
|
||||
- state: fill-1
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
- type: Appearance
|
||||
- state: icon
|
||||
- state: fill-1
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 1
|
||||
fillBaseName: fill-
|
||||
changeColor: false
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: drink
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
collection: packetOpenSounds
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: icon
|
||||
- state: icon_empty
|
||||
map: ["enum.OpenableVisuals.Layer"]
|
||||
- state: fill6
|
||||
- state: fill-6
|
||||
map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false
|
||||
- state: icon-front
|
||||
map: [ "enum.SolutionContainerLayers.Overlay" ]
|
||||
@@ -20,13 +20,6 @@
|
||||
maxVol: 30
|
||||
- type: SolutionContainerVisuals
|
||||
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
|
||||
solution: drink
|
||||
|
||||
@@ -97,8 +90,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Drinks/jar_what.rsi
|
||||
- type: ExaminableSolution
|
||||
solution: drink
|
||||
- type: FitsInDispenser
|
||||
solution: drink
|
||||
- type: Tag
|
||||
|
||||
@@ -4,35 +4,23 @@
|
||||
|
||||
# Transformable container - normal glass
|
||||
- type: entity
|
||||
parent: [DrinkBaseMaterialGlass, DrinkBaseCup] # todo parent to DrinkVisualsFillOverlay after in-hands are added
|
||||
parent: [DrinkBaseMaterialGlass, DrinkBaseCup, DrinkVisualsFillOverlay]
|
||||
id: DrinkGlass
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
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
|
||||
solutions:
|
||||
drink:
|
||||
maxVol: 30
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 9
|
||||
fillBaseName: fill # todo rename to "fill-", add in-hands, then add parent "DrinkVisualsFillOverlay"
|
||||
metamorphic: true
|
||||
metamorphicDefaultSprite:
|
||||
sprite: Objects/Consumable/Drinks/glass_clear.rsi
|
||||
state: icon
|
||||
inHandsMaxFillLevels: 3
|
||||
inHandsFillBaseName: -fill-
|
||||
- type: Tag
|
||||
tags:
|
||||
- DrinkCup # Do these tags
|
||||
@@ -47,14 +35,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
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
|
||||
solutions:
|
||||
drink:
|
||||
|
||||
@@ -12,17 +12,8 @@
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
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
|
||||
maxFillLevels: 2
|
||||
fillBaseName: fill # TODO rename to "fill-" to match "DrinkVisualsFillOverlay"
|
||||
inHandsMaxFillLevels: 1
|
||||
- type: FitsInDispenser
|
||||
solution: drink
|
||||
@@ -146,6 +137,21 @@
|
||||
reactionTypes:
|
||||
- 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
|
||||
parent: [DrinkBaseMaterialMetal, DrinkBase]
|
||||
id: DrinkJigger
|
||||
@@ -184,11 +190,6 @@
|
||||
maxVol: 60
|
||||
- type: Sprite
|
||||
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
|
||||
maxFillLevels: 6
|
||||
inHandsMaxFillLevels: 2
|
||||
|
||||
@@ -731,7 +731,7 @@
|
||||
name: crostini
|
||||
parent: FoodBreadSliceBase
|
||||
id: FoodBreadBaguetteSlice
|
||||
description: Bon ap-petite!
|
||||
description: Bon ap-pétite!
|
||||
components:
|
||||
- type: Sprite
|
||||
state: crostini
|
||||
@@ -753,7 +753,7 @@
|
||||
parent: FoodBreadBaguetteSlice
|
||||
id: FoodBreadBaguetteCottonSlice
|
||||
name: cotton crostini
|
||||
description: Bon az-zetite!
|
||||
description: Bon az-zétite!
|
||||
components:
|
||||
- type: Sprite
|
||||
state: crostini-cotton
|
||||
@@ -1001,3 +1001,57 @@
|
||||
damage:
|
||||
groups:
|
||||
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:
|
||||
- Trash
|
||||
- HappyHonk
|
||||
- BoxCardboard
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ToyMouse
|
||||
@@ -704,7 +705,8 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Trash
|
||||
- CluwneHappyHonk
|
||||
- CluwneHappyHonk # BAD: Intentional removal of parent tag
|
||||
- BoxCardboard
|
||||
- type: Sprite
|
||||
sprite: Objects/Storage/Happyhonk/cluwne.rsi
|
||||
state: box
|
||||
@@ -882,7 +884,7 @@
|
||||
grid:
|
||||
- 0,0,1,1
|
||||
maxItemSize: Normal
|
||||
whitelist:
|
||||
whitelist: # TODO BoxCardboard shouldn't have whitelisted storage
|
||||
tags:
|
||||
- ClothMade
|
||||
- type: Item
|
||||
|
||||
@@ -1242,6 +1242,23 @@
|
||||
- state: plain-cooked-inhand-right
|
||||
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
|
||||
parent: FoodMeatBase
|
||||
id: FoodMeatDuckCooked
|
||||
|
||||
@@ -864,10 +864,10 @@
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 45
|
||||
maxVol: 25
|
||||
reagents:
|
||||
- ReagentId: Fiber
|
||||
Quantity: 40
|
||||
Quantity: 20
|
||||
- type: Tag
|
||||
tags:
|
||||
- ClothMade
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
id: PackPaperRollingFilters
|
||||
description: A pack of filters and thin pieces of paper used to make fine smokeables.
|
||||
components:
|
||||
- type: Storage
|
||||
- type: Storage # Redundant
|
||||
whitelist:
|
||||
tags:
|
||||
- RollingPaper
|
||||
|
||||
@@ -65,4 +65,5 @@
|
||||
- state: holo
|
||||
- type: Tag
|
||||
tags:
|
||||
- BoxHug
|
||||
- BoxCardboard
|
||||
- BoxHug
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
- ReagentId: Plasma
|
||||
Quantity: 10
|
||||
canReact: false
|
||||
- type: Tag
|
||||
- type: Tag # Redundant
|
||||
tags:
|
||||
- Sheet
|
||||
- ConstructionMaterial
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
- type: Storage
|
||||
grid:
|
||||
- 0,0,5,3
|
||||
whitelist:
|
||||
whitelist: # Redundant
|
||||
tags:
|
||||
- Document
|
||||
- type: ItemMapper
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
- type: entity
|
||||
name: bible
|
||||
name: space bible
|
||||
description: New Interstellar Version 2340.
|
||||
parent: BaseStorageItem
|
||||
id: Bible
|
||||
@@ -96,21 +96,10 @@
|
||||
event: !type:SummonActionEvent
|
||||
|
||||
- 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
|
||||
name: druidic tablet
|
||||
parent: Bible
|
||||
description: "It's the mystery of the druids!"
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Chapel/mysteryofthedruids.rsi
|
||||
@@ -118,10 +107,10 @@
|
||||
sprite: Objects/Specific/Chapel/mysteryofthedruids.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Bible
|
||||
name: communist manifesto
|
||||
description: "Remove the mask of humanity from Capital."
|
||||
id: BibleCommunistManifesto
|
||||
name: communist manifesto
|
||||
parent: Bible
|
||||
description: "Remove the mask of humanity from Capital."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Chapel/communistmanifesto.rsi
|
||||
@@ -129,23 +118,45 @@
|
||||
sprite: Objects/Specific/Chapel/communistmanifesto.rsi
|
||||
|
||||
- type: entity
|
||||
id: BibleNarsie
|
||||
name: tome of nar'sie
|
||||
parent: Bible
|
||||
name: satanic bible
|
||||
description: "What could possibly go wrong?"
|
||||
id: BibleSatanic
|
||||
description: "What could possibly go wrong with a book covered in blood?"
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Chapel/satanicbible.rsi
|
||||
sprite: Objects/Specific/Chapel/tomeofnarsie.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Specific/Chapel/satanicbible.rsi
|
||||
sprite: Objects/Specific/Chapel/tomeofnarsie.rsi
|
||||
|
||||
- type: entity
|
||||
parent: Bible
|
||||
name: codex nanotrasimus
|
||||
description: "A familiar book containing the Sacred Operating Procedures."
|
||||
id: BibleNanoTrasen
|
||||
name: codex nanotrasimus
|
||||
parent: Bible
|
||||
description: "A familiar book containing the Sacred Operating Procedures."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Chapel/codexnanotrasimus.rsi
|
||||
- type: Item
|
||||
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
|
||||
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:
|
||||
- type: Tag
|
||||
- type: Tag # TODO change Plunger into a tool so we dont got to layer Tags like below.
|
||||
tags:
|
||||
- GoldenPlunger
|
||||
- Plunger
|
||||
- WhitelistChameleon
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Janitorial/golden_plunger.rsi
|
||||
state: plunger
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeAntiMateriel
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletAntiMateriel
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeCaselessRifle
|
||||
- type: CartridgeAmmo
|
||||
deleteOnSpawn: true
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeHeavyRifle
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletHeavyRifle
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeLightRifle
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletLightRifle
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeMagnum
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletMagnum
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgePistol
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletPistol
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeRifle
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletRifle
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- ShellShotgun
|
||||
- type: CartridgeAmmo
|
||||
soundEject:
|
||||
@@ -26,7 +25,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- ShellShotgun
|
||||
- ShellShotgunLight
|
||||
- type: Sprite
|
||||
@@ -59,7 +57,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- ShellShotgun
|
||||
- ShellShotgunLight
|
||||
- type: Sprite
|
||||
@@ -118,7 +115,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- ShellShotgun
|
||||
- ShellShotgunLight
|
||||
- type: Sprite
|
||||
@@ -147,7 +143,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- ShellShotgun
|
||||
- ShellShotgunLight
|
||||
- type: Sprite
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cartridge
|
||||
- CartridgeCap
|
||||
- type: CartridgeAmmo
|
||||
- type: Sprite
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
components:
|
||||
- type: BallisticAmmoProvider
|
||||
proto: CartridgePistol
|
||||
whitelist:
|
||||
whitelist: # Redundant
|
||||
tags:
|
||||
- CartridgePistol
|
||||
soundInsert:
|
||||
|
||||
@@ -815,7 +815,7 @@
|
||||
|
||||
- type: entity
|
||||
name: energy shotgun
|
||||
parent: [BaseWeaponBattery, BaseGunWieldable, BaseGrandTheftContraband]
|
||||
parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband]
|
||||
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.
|
||||
components:
|
||||
@@ -839,34 +839,69 @@
|
||||
soundGunshot:
|
||||
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
|
||||
- type: ProjectileBatteryAmmoProvider
|
||||
proto: BulletLaserSpread
|
||||
fireCost: 150
|
||||
proto: BulletLaserSpreadNarrow
|
||||
fireCost: 80
|
||||
- type: BatteryWeaponFireModes
|
||||
fireModes:
|
||||
- proto: BulletLaserSpread
|
||||
fireCost: 150
|
||||
- proto: BulletLaserSpreadNarrow
|
||||
fireCost: 200
|
||||
fireCost: 80
|
||||
- proto: BulletDisablerSmgSpread
|
||||
fireCost: 120
|
||||
fireCost: 48
|
||||
- type: Item
|
||||
size: Large
|
||||
sprite: Objects/Weapons/Guns/Battery/inhands_64x.rsi
|
||||
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
|
||||
tags:
|
||||
- HighRiskItem
|
||||
- type: StealTarget
|
||||
stealGroup: WeaponEnergyShotgun
|
||||
- type: GunRequiresWield #remove when inaccuracy on spreads is fixed
|
||||
- type: Battery
|
||||
maxCharge: 1200
|
||||
startingCharge: 1200
|
||||
stealGroup: WeaponEnergyMagnum
|
||||
- type: Gun
|
||||
soundGunshot:
|
||||
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
|
||||
- type: ProjectileBatteryAmmoProvider
|
||||
proto: BulletLaserMagnum
|
||||
fireCost: 150
|
||||
- type: BatteryWeaponFireModes
|
||||
fireModes:
|
||||
- proto: BulletLaserMagnum
|
||||
fireCost: 150
|
||||
- proto: BulletLaserWindowPiercingMagnum
|
||||
fireCost: 150
|
||||
- proto: BulletDisabler
|
||||
fireCost: 62.5
|
||||
- type: BatterySelfRecharger
|
||||
autoRecharge: true
|
||||
autoRechargeRate: 24
|
||||
autoRechargeRate: 48
|
||||
autoRechargePause: true
|
||||
autoRechargePauseTime: 30
|
||||
autoRechargePauseTime: 10
|
||||
|
||||
- type: entity
|
||||
name: temperature gun
|
||||
|
||||
@@ -425,7 +425,7 @@
|
||||
description: It fires large meteors.
|
||||
components:
|
||||
- type: BallisticAmmoProvider
|
||||
whitelist:
|
||||
whitelist: # Redundant
|
||||
tags:
|
||||
- CartridgeRocket
|
||||
proto: MeteorMedium
|
||||
@@ -438,7 +438,7 @@
|
||||
description: It fires slow immovable rods.
|
||||
components:
|
||||
- type: BallisticAmmoProvider
|
||||
whitelist:
|
||||
whitelist: # Redundant
|
||||
tags:
|
||||
- CartridgeRocket
|
||||
proto: ImmovableRodSlow
|
||||
|
||||
@@ -1305,7 +1305,7 @@
|
||||
spread: 30
|
||||
|
||||
- type: entity
|
||||
name: narrow laser barrage
|
||||
name: lethal laser barrage
|
||||
id: BulletLaserSpreadNarrow
|
||||
categories: [ HideSpawnMenu ]
|
||||
parent: BulletLaser
|
||||
@@ -1325,3 +1325,52 @@
|
||||
proto: BulletDisablerSmg
|
||||
count: 3 #bit stronger than a disabler if you hit your shots you goober, still not a 2 hit stun though
|
||||
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
|
||||
components:
|
||||
- type: RevolverAmmoProvider
|
||||
whitelist:
|
||||
whitelist: # Redundant
|
||||
tags:
|
||||
- CartridgeMagnum
|
||||
- SpeedLoaderMagnum
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
- type: entity
|
||||
id: BaseMaterialDoor
|
||||
parent: BaseStructure
|
||||
name: door
|
||||
abstract: true
|
||||
parent: BaseStructure
|
||||
id: BaseMaterialDoor
|
||||
name: door
|
||||
description: A door, where will it lead?
|
||||
components:
|
||||
- type: Anchorable
|
||||
@@ -63,31 +63,31 @@
|
||||
- type: BlockWeather
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BaseMaterialDoor
|
||||
id: BaseMaterialDoorNavMap
|
||||
abstract: true
|
||||
components:
|
||||
- type: NavMapDoor
|
||||
|
||||
### Metal doors ###
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: MetalDoor
|
||||
name: metal door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
components:
|
||||
- type: Construction
|
||||
graph: DoorGraph
|
||||
node: metalDoor
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
- trigger: &DamageTrigger200 # Overkill threshold
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
behaviors: &OverkillBehavior
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
- trigger: &DamageTrigger150
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
behaviors:
|
||||
@@ -103,30 +103,20 @@
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: PlasmaDoor
|
||||
name: plasma door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
description: A door, where will it lead?
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/MineralDoors/plasma_door.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- type: Construction
|
||||
graph: DoorGraph
|
||||
node: plasmaDoor
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
- trigger: *DamageTrigger200
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
@@ -140,30 +130,20 @@
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: GoldDoor
|
||||
name: gold door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
description: A door, where will it lead?
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/MineralDoors/gold_door.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- type: Construction
|
||||
graph: DoorGraph
|
||||
node: goldDoor
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
- trigger: *DamageTrigger200
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
@@ -177,30 +157,20 @@
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: SilverDoor
|
||||
name: silver door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
description: A door, where will it lead?
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/MineralDoors/silver_door.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- type: Construction
|
||||
graph: DoorGraph
|
||||
node: silverDoor
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
- trigger: *DamageTrigger200
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
@@ -214,35 +184,26 @@
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: BananiumDoor
|
||||
name: bananium door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
description: A door, where will it lead?
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/MineralDoors/bananium_door.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- type: Door
|
||||
openSound:
|
||||
path: /Audio/Items/bikehorn.ogg
|
||||
closeSound:
|
||||
path: /Audio/Items/bikehorn.ogg
|
||||
openSound: &BikeHornSound
|
||||
collection: BikeHorn
|
||||
params:
|
||||
variation: 0.125
|
||||
closeSound: *BikeHornSound
|
||||
- type: Construction
|
||||
graph: DoorGraph
|
||||
node: bananiumDoor
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
- trigger: *DamageTrigger200
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
@@ -258,9 +219,9 @@
|
||||
### Other doors ###
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: WoodDoor
|
||||
name: wooden door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/MineralDoors/wood_door.rsi
|
||||
@@ -273,16 +234,11 @@
|
||||
graph: DoorGraph
|
||||
node: woodDoor
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
@@ -299,16 +255,12 @@
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: PaperDoor
|
||||
name: paper door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
description: A door, where will it lead?
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/MineralDoors/paper_door.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- type: Door
|
||||
openSound:
|
||||
path: /Audio/Effects/paperdoor_openclose.ogg
|
||||
@@ -318,16 +270,11 @@
|
||||
graph: DoorGraph
|
||||
node: paperDoor
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 50
|
||||
@@ -344,16 +291,13 @@
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: WebDoor
|
||||
name: web door
|
||||
parent: BaseMaterialDoorNavMap
|
||||
description: A door, leading to the lands of the spiders... or a spaced room.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/web_door.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- type: Door
|
||||
closeSound:
|
||||
path: /Audio/Effects/rustle1.ogg
|
||||
@@ -366,21 +310,8 @@
|
||||
damageModifierSet: Web
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger: # Excess damage, don't spawn entities
|
||||
!type:DamageTrigger
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 50
|
||||
@@ -397,8 +328,8 @@
|
||||
max: 2
|
||||
|
||||
- type: entity
|
||||
id: CardDoor
|
||||
parent: BaseMaterialDoorNavMap
|
||||
id: CardDoor
|
||||
name: cardboard door
|
||||
components:
|
||||
- type: Sprite
|
||||
@@ -417,16 +348,11 @@
|
||||
path:
|
||||
"/Audio/Weapons/pierce.ogg"
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: Card
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 60 #excess damage (nuke?). avoid computational cost of spawning entities.
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger: *DamageTrigger150
|
||||
behaviors: *OverkillBehavior
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 30
|
||||
|
||||
@@ -190,11 +190,7 @@
|
||||
whitelist:
|
||||
tags:
|
||||
- Plunger
|
||||
goldenplunger_slot:
|
||||
name: janitorial-trolley-slot-component-slot-name-goldenplunger
|
||||
whitelist:
|
||||
tags:
|
||||
- GoldenPlunger
|
||||
- GoldenPlunger
|
||||
priority: 8
|
||||
wetfloorsign_slot4:
|
||||
name: janitorial-trolley-slot-component-slot-name-sign
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobQuartermaster
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Jumpsuit
|
||||
- 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
|
||||
- type: loadout
|
||||
id: BartenderHead
|
||||
@@ -40,3 +49,13 @@
|
||||
id: BartenderWintercoat
|
||||
equipment:
|
||||
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
|
||||
- type: loadout
|
||||
id: ChaplainHead
|
||||
@@ -87,24 +117,39 @@
|
||||
|
||||
- type: loadout
|
||||
id: BibleDruid
|
||||
effects:
|
||||
- !type:GroupLoadoutEffect
|
||||
proto: DruidBibleRequirement
|
||||
storage:
|
||||
back:
|
||||
- BibleDruid
|
||||
|
||||
- type: loadout
|
||||
id: BibleNanoTrasen
|
||||
effects:
|
||||
- !type:GroupLoadoutEffect
|
||||
proto: NanoTrasenBibleRequirement
|
||||
storage:
|
||||
back:
|
||||
- BibleNanoTrasen
|
||||
|
||||
- type: loadout
|
||||
id: BibleSatanic
|
||||
id: BibleNarsie
|
||||
storage:
|
||||
back:
|
||||
- BibleSatanic
|
||||
- BibleNarsie
|
||||
|
||||
- type: loadout
|
||||
id: BibleTanakh
|
||||
id: BibleHonk
|
||||
effects:
|
||||
- !type:GroupLoadoutEffect
|
||||
proto: ClownBibleRequirement
|
||||
storage:
|
||||
back:
|
||||
- BibleTanakh
|
||||
- BibleHonk
|
||||
|
||||
- type: loadout
|
||||
id: BibleRatvar
|
||||
storage:
|
||||
back:
|
||||
- BibleRatvar
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobJanitor
|
||||
time: 187200 #52 hrs (1 hour per week for 1 year)
|
||||
time: 52h # 1 hour per week for 1 year
|
||||
|
||||
# Head
|
||||
- type: loadout
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
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)
|
||||
- type: loadoutEffectGroup
|
||||
@@ -16,7 +16,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobPassenger
|
||||
time: 72000 #20 hrs, fun mantle for the most experienced greytiders
|
||||
time: 20h # fun mantle for the most experienced greytiders
|
||||
|
||||
# Face
|
||||
- type: loadout
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobCaptain
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Jumpsuit
|
||||
- type: loadout
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobHeadOfPersonnel
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Professional HoP Time
|
||||
- type: loadoutEffectGroup
|
||||
@@ -16,7 +16,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobHeadOfPersonnel
|
||||
time: 54000 #15 hrs, special reward for HoP mains
|
||||
time: 15h # special reward for HoP mains
|
||||
|
||||
# Jumpsuit
|
||||
- type: loadout
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobChiefEngineer
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Jumpsuit
|
||||
- type: loadout
|
||||
|
||||
@@ -6,17 +6,17 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobAtmosphericTechnician
|
||||
time: 21600 #6 hrs
|
||||
time: 6h
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobStationEngineer
|
||||
time: 21600 #6 hrs
|
||||
time: 6h
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Engineering
|
||||
time: 216000 # 60 hrs
|
||||
time: 60h
|
||||
|
||||
# Head
|
||||
- type: startingGear
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobChiefMedicalOfficer
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Jumpsuit
|
||||
- type: loadout
|
||||
|
||||
@@ -6,17 +6,17 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobChemist
|
||||
time: 21600 #6 hrs
|
||||
time: 6h
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobMedicalDoctor
|
||||
time: 21600 #6 hrs
|
||||
time: 6h
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Medical
|
||||
time: 216000 # 60 hrs
|
||||
time: 60h
|
||||
|
||||
# Other Timers
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobMedicalDoctor
|
||||
time: 108000 #30 hrs
|
||||
time: 30h
|
||||
|
||||
# Head
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobResearchDirector
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Head
|
||||
- type: loadout
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Science
|
||||
time: 216000 #60 hrs
|
||||
time: 60h
|
||||
|
||||
# Head
|
||||
- type: startingGear
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobHeadOfSecurity
|
||||
time: 72000 #20 hrs
|
||||
time: 20h
|
||||
|
||||
# Jumpsuit
|
||||
- type: loadout
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobWarden
|
||||
time: 21600 #6 hrs
|
||||
time: 6h
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Security
|
||||
time: 216000 # 60 hrs
|
||||
time: 60h
|
||||
|
||||
#Security Star
|
||||
- type: loadoutEffectGroup
|
||||
@@ -21,7 +21,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Security
|
||||
time: 360000 #100 hrs
|
||||
time: 100h
|
||||
|
||||
# Head
|
||||
- type: loadout
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
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
|
||||
id: JensenTimer
|
||||
@@ -15,7 +15,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Cargo
|
||||
time: 36000 #10 hours of being a space trucker
|
||||
time: 10h # 10 hours of being a space trucker
|
||||
|
||||
# Basic options
|
||||
# Glasses
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Command
|
||||
time: 3600 # 1 hour
|
||||
time: 1h
|
||||
|
||||
# Flowers
|
||||
- type: loadout
|
||||
@@ -308,7 +308,7 @@
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:OverallPlaytimeRequirement
|
||||
time: 36000 # 10hr
|
||||
time: 10h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorWhite
|
||||
@@ -320,7 +320,7 @@
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:OverallPlaytimeRequirement
|
||||
time: 1800000 # 500hr
|
||||
time: 500h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorSilver
|
||||
@@ -332,7 +332,7 @@
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:OverallPlaytimeRequirement
|
||||
time: 3600000 # 1000hr
|
||||
time: 1000h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorGold
|
||||
@@ -345,7 +345,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Cargo
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorLightBrown
|
||||
@@ -358,7 +358,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Civilian
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorGreen
|
||||
@@ -371,7 +371,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Command
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorDarkBlue
|
||||
@@ -384,7 +384,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Engineering
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorOrange
|
||||
@@ -397,7 +397,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Medical
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorLightBlue
|
||||
@@ -410,7 +410,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Science
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorPurple
|
||||
@@ -423,7 +423,7 @@
|
||||
requirement:
|
||||
!type:DepartmentTimeRequirement
|
||||
department: Security
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorRed
|
||||
@@ -436,7 +436,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobPassenger
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorGray
|
||||
@@ -449,7 +449,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobChaplain
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorBlack
|
||||
@@ -462,7 +462,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobLibrarian
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorDarkGreen
|
||||
@@ -475,7 +475,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobLawyer
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorMaroon
|
||||
@@ -488,7 +488,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobClown
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorYellow
|
||||
@@ -501,7 +501,7 @@
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobMime
|
||||
time: 360000 # 100hr
|
||||
time: 100h
|
||||
storage:
|
||||
back:
|
||||
- TowelColorMime
|
||||
|
||||
@@ -270,6 +270,13 @@
|
||||
- BartenderApron
|
||||
- BartenderWintercoat
|
||||
|
||||
- type: loadoutGroup
|
||||
id: BartenderGoldenShaker
|
||||
name: loadout-group-bartender-shaker
|
||||
minLimit: 0
|
||||
loadouts:
|
||||
- BartenderGoldenShaker
|
||||
|
||||
- type: loadoutGroup
|
||||
id: ChefHead
|
||||
name: loadout-group-chef-head
|
||||
@@ -381,10 +388,11 @@
|
||||
minLimit: 1
|
||||
loadouts:
|
||||
- Bible
|
||||
- BibleDruid
|
||||
- BibleNanoTrasen
|
||||
- BibleSatanic
|
||||
- BibleTanakh
|
||||
- BibleDruid
|
||||
- BibleHonk
|
||||
- BibleRatvar
|
||||
- BibleNarsie
|
||||
|
||||
- type: loadoutGroup
|
||||
id: JanitorHead
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
- BartenderJumpsuit
|
||||
- CommonBackpack
|
||||
- BartenderOuterClothing
|
||||
- BartenderGoldenShaker
|
||||
- Glasses
|
||||
- Survival
|
||||
- Trinkets
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user