diff --git a/Content.Client/Options/UI/Tabs/MiscTab.xaml b/Content.Client/Options/UI/Tabs/MiscTab.xaml
index 2ee59910f70c08..5564d7b226376f 100644
--- a/Content.Client/Options/UI/Tabs/MiscTab.xaml
+++ b/Content.Client/Options/UI/Tabs/MiscTab.xaml
@@ -25,6 +25,14 @@
+
+
+
+
+
-
-
-
diff --git a/Content.Client/Options/UI/Tabs/MiscTab.xaml.cs b/Content.Client/Options/UI/Tabs/MiscTab.xaml.cs
index 3b9c41efdfb4f2..476e7289ea9b43 100644
--- a/Content.Client/Options/UI/Tabs/MiscTab.xaml.cs
+++ b/Content.Client/Options/UI/Tabs/MiscTab.xaml.cs
@@ -66,6 +66,7 @@ public MiscTab()
EnableColorNameCheckBox.OnToggled += OnCheckBoxToggled;
ColorblindFriendlyCheckBox.OnToggled += OnCheckBoxToggled;
ReducedMotionCheckBox.OnToggled += OnCheckBoxToggled;
+ ChatWindowOpacitySlider.OnValueChanged += OnChatWindowOpacitySliderChanged;
ScreenShakeIntensitySlider.OnValueChanged += OnScreenShakeIntensitySliderChanged;
// ToggleWalk.OnToggled += OnCheckBoxToggled;
StaticStorageUI.OnToggled += OnCheckBoxToggled;
@@ -81,6 +82,7 @@ public MiscTab()
EnableColorNameCheckBox.Pressed = _cfg.GetCVar(CCVars.ChatEnableColorName);
ColorblindFriendlyCheckBox.Pressed = _cfg.GetCVar(CCVars.AccessibilityColorblindFriendly);
ReducedMotionCheckBox.Pressed = _cfg.GetCVar(CCVars.ReducedMotion);
+ ChatWindowOpacitySlider.Value = _cfg.GetCVar(CCVars.ChatWindowOpacity);
ScreenShakeIntensitySlider.Value = _cfg.GetCVar(CCVars.ScreenShakeIntensity) * 100f;
// ToggleWalk.Pressed = _cfg.GetCVar(CCVars.ToggleWalk);
StaticStorageUI.Pressed = _cfg.GetCVar(CCVars.StaticStorageUI);
@@ -101,6 +103,13 @@ private void OnHudThemeChanged(OptionButton.ItemSelectedEventArgs args)
UpdateApplyButton();
}
+ private void OnChatWindowOpacitySliderChanged(Range range)
+ {
+ ChatWindowOpacityLabel.Text = Loc.GetString("ui-options-chat-window-opacity-percent",
+ ("opacity", range.Value));
+ UpdateApplyButton();
+ }
+
private void OnScreenShakeIntensitySliderChanged(Range obj)
{
ScreenShakeIntensityLabel.Text = Loc.GetString("ui-options-screen-shake-percent", ("intensity", ScreenShakeIntensitySlider.Value / 100f));
@@ -127,6 +136,7 @@ private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
_cfg.SetCVar(CCVars.ChatEnableColorName, EnableColorNameCheckBox.Pressed);
_cfg.SetCVar(CCVars.AccessibilityColorblindFriendly, ColorblindFriendlyCheckBox.Pressed);
_cfg.SetCVar(CCVars.ReducedMotion, ReducedMotionCheckBox.Pressed);
+ _cfg.SetCVar(CCVars.ChatWindowOpacity, ChatWindowOpacitySlider.Value);
_cfg.SetCVar(CCVars.ScreenShakeIntensity, ScreenShakeIntensitySlider.Value / 100f);
// _cfg.SetCVar(CCVars.ToggleWalk, ToggleWalk.Pressed);
_cfg.SetCVar(CCVars.StaticStorageUI, StaticStorageUI.Pressed);
@@ -154,6 +164,7 @@ private void UpdateApplyButton()
var isEnableColorNameSame = EnableColorNameCheckBox.Pressed == _cfg.GetCVar(CCVars.ChatEnableColorName);
var isColorblindFriendly = ColorblindFriendlyCheckBox.Pressed == _cfg.GetCVar(CCVars.AccessibilityColorblindFriendly);
var isReducedMotionSame = ReducedMotionCheckBox.Pressed == _cfg.GetCVar(CCVars.ReducedMotion);
+ var isChatWindowOpacitySame = Math.Abs(ChatWindowOpacitySlider.Value - _cfg.GetCVar(CCVars.ChatWindowOpacity)) < 0.01f;
var isScreenShakeIntensitySame = Math.Abs(ScreenShakeIntensitySlider.Value / 100f - _cfg.GetCVar(CCVars.ScreenShakeIntensity)) < 0.01f;
// var isToggleWalkSame = ToggleWalk.Pressed == _cfg.GetCVar(CCVars.ToggleWalk);
var isStaticStorageUISame = StaticStorageUI.Pressed == _cfg.GetCVar(CCVars.StaticStorageUI);
@@ -170,6 +181,7 @@ private void UpdateApplyButton()
isEnableColorNameSame &&
isColorblindFriendly &&
isReducedMotionSame &&
+ isChatWindowOpacitySame &&
isScreenShakeIntensitySame &&
// isToggleWalkSame &&
isStaticStorageUISame;
diff --git a/Content.Client/Stylesheets/StyleNano.cs b/Content.Client/Stylesheets/StyleNano.cs
index 2c7a1873a36827..a589abb83aa93c 100644
--- a/Content.Client/Stylesheets/StyleNano.cs
+++ b/Content.Client/Stylesheets/StyleNano.cs
@@ -45,6 +45,7 @@ public sealed class StyleNano : StyleBase
public const string StyleClassBorderedWindowPanel = "BorderedWindowPanel";
public const string StyleClassInventorySlotBackground = "InventorySlotBackground";
public const string StyleClassHandSlotHighlight = "HandSlotHighlight";
+ public const string StyleClassChatPanel = "ChatPanel";
public const string StyleClassChatSubPanel = "ChatSubPanel";
public const string StyleClassTransparentBorderedWindowPanel = "TransparentBorderedWindowPanel";
public const string StyleClassHotbarPanel = "HotbarPanel";
@@ -144,6 +145,8 @@ public sealed class StyleNano : StyleBase
public const string StyleClassButtonColorRed = "ButtonColorRed";
public const string StyleClassButtonColorGreen = "ButtonColorGreen";
+ public static readonly Color ChatBackgroundColor = Color.FromHex("#25252ADD");
+
public override Stylesheet Stylesheet { get; }
public StyleNano(IResourceCache resCache) : base(resCache)
@@ -346,12 +349,16 @@ public StyleNano(IResourceCache resCache) : base(resCache)
lineEdit.SetPatchMargin(StyleBox.Margin.All, 3);
lineEdit.SetContentMarginOverride(StyleBox.Margin.Horizontal, 5);
- var chatSubBGTex = resCache.GetTexture("/Textures/Interface/Nano/chat_sub_background.png");
- var chatSubBG = new StyleBoxTexture
+ var chatBg = new StyleBoxFlat
+ {
+ BackgroundColor = ChatBackgroundColor
+ };
+
+ var chatSubBg = new StyleBoxFlat
{
- Texture = chatSubBGTex,
+ BackgroundColor = ChatBackgroundColor,
};
- chatSubBG.SetPatchMargin(StyleBox.Margin.All, 2);
+ chatSubBg.SetContentMarginOverride(StyleBox.Margin.All, 2);
var actionSearchBoxTex = resCache.GetTexture("/Textures/Interface/Nano/black_panel_dark_thin_border.png");
var actionSearchBox = new StyleBoxTexture
@@ -850,19 +857,19 @@ public StyleNano(IResourceCache resCache) : base(resCache)
Element().Pseudo(TextEdit.StylePseudoClassPlaceholder)
.Prop("font-color", Color.Gray),
- // Chat lineedit - we don't actually draw a stylebox around the lineedit itself, we put it around the
- // input + other buttons, so we must clear the default stylebox
- new StyleRule(new SelectorElement(typeof(LineEdit), new[] {StyleClassChatLineEdit}, null, null),
+ // chat subpanels (chat lineedit backing, popup backings)
+ new StyleRule(new SelectorElement(typeof(PanelContainer), new[] {StyleClassChatPanel}, null, null),
new[]
{
- new StyleProperty(LineEdit.StylePropertyStyleBox, new StyleBoxEmpty()),
+ new StyleProperty(PanelContainer.StylePropertyPanel, chatBg),
}),
- // chat subpanels (chat lineedit backing, popup backings)
- new StyleRule(new SelectorElement(typeof(PanelContainer), new[] {StyleClassChatSubPanel}, null, null),
+ // Chat lineedit - we don't actually draw a stylebox around the lineedit itself, we put it around the
+ // input + other buttons, so we must clear the default stylebox
+ new StyleRule(new SelectorElement(typeof(LineEdit), new[] {StyleClassChatLineEdit}, null, null),
new[]
{
- new StyleProperty(PanelContainer.StylePropertyPanel, chatSubBG),
+ new StyleProperty(LineEdit.StylePropertyStyleBox, new StyleBoxEmpty()),
}),
// Action searchbox lineedit
diff --git a/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs b/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs
index ac0ea5335e6ad4..907268295c8e25 100644
--- a/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs
+++ b/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs
@@ -9,6 +9,7 @@
using Content.Client.Examine;
using Content.Client.Gameplay;
using Content.Client.Ghost;
+using Content.Client.Stylesheets;
using Content.Client.UserInterface.Screens;
using Content.Client.UserInterface.Systems.Chat.Widgets;
using Content.Client.UserInterface.Systems.Gameplay;
@@ -54,7 +55,6 @@ public sealed class ChatUIController : UIController
[Dependency] private readonly IStateManager _state = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IReplayRecordingManager _replayRecording = default!;
- [Dependency] private readonly IConfigurationManager _cfg = default!;
[UISystemDependency] private readonly ExamineSystem? _examine = default;
[UISystemDependency] private readonly GhostSystem? _ghost = default;
@@ -179,8 +179,8 @@ public override void Initialize()
_net.RegisterNetMessage(OnChatMessage);
_net.RegisterNetMessage(OnDeleteChatMessagesBy);
SubscribeNetworkEvent(OnDamageForceSay);
- _cfg.OnValueChanged(CCVars.ChatEnableColorName, (value) => { _chatNameColorsEnabled = value; });
- _chatNameColorsEnabled = _cfg.GetCVar(CCVars.ChatEnableColorName);
+ _config.OnValueChanged(CCVars.ChatEnableColorName, (value) => { _chatNameColorsEnabled = value; });
+ _chatNameColorsEnabled = _config.GetCVar(CCVars.ChatEnableColorName);
_speechBubbleRoot = new LayoutContainer();
@@ -232,6 +232,9 @@ public override void Initialize()
{
_chatNameColors[i] = nameColors[i].ToHex();
}
+
+ _config.OnValueChanged(CCVars.ChatWindowOpacity, OnChatWindowOpacityChanged);
+
}
public void OnScreenLoad()
@@ -240,6 +243,8 @@ public void OnScreenLoad()
var viewportContainer = UIManager.ActiveScreen!.FindControl("ViewportContainer");
SetSpeechBubbleRoot(viewportContainer);
+
+ SetChatWindowOpacity(_config.GetCVar(CCVars.ChatWindowOpacity));
}
public void OnScreenUnload()
@@ -247,6 +252,34 @@ public void OnScreenUnload()
SetMainChat(false);
}
+ private void OnChatWindowOpacityChanged(float opacity)
+ {
+ SetChatWindowOpacity(opacity);
+ }
+
+ private void SetChatWindowOpacity(float opacity)
+ {
+ var chatBox = UIManager.ActiveScreen?.GetWidget() ?? UIManager.ActiveScreen?.GetWidget();
+
+ var panel = chatBox?.ChatWindowPanel;
+ if (panel is null)
+ return;
+
+ Color color;
+ if (panel.PanelOverride is StyleBoxFlat styleBoxFlat)
+ color = styleBoxFlat.BackgroundColor;
+ else if (panel.TryGetStyleProperty(PanelContainer.StylePropertyPanel, out var style)
+ && style is StyleBoxFlat propStyleBoxFlat)
+ color = propStyleBoxFlat.BackgroundColor;
+ else
+ color = StyleNano.ChatBackgroundColor;
+
+ panel.PanelOverride = new StyleBoxFlat
+ {
+ BackgroundColor = color.WithAlpha(opacity)
+ };
+ }
+
public void SetMainChat(bool setting)
{
if (UIManager.ActiveScreen == null)
@@ -770,7 +803,7 @@ private void OnChatMessage(MsgChatMessage message)
ProcessChatMessage(msg);
if ((msg.Channel & ChatChannel.AdminRelated) == 0 ||
- _cfg.GetCVar(CCVars.ReplayRecordAdminChat))
+ _config.GetCVar(CCVars.ReplayRecordAdminChat))
{
_replayRecording.RecordClientMessage(msg);
}
@@ -830,7 +863,7 @@ public void ProcessChatMessage(ChatMessage msg, bool speechBubble = true)
break;
case ChatChannel.LOOC:
- if (_cfg.GetCVar(CCVars.LoocAboveHeadShow))
+ if (_config.GetCVar(CCVars.LoocAboveHeadShow))
AddSpeechBubble(msg, SpeechBubble.SpeechType.Looc);
break;
}
diff --git a/Content.Client/UserInterface/Systems/Chat/Controls/ChatInputBox.cs b/Content.Client/UserInterface/Systems/Chat/Controls/ChatInputBox.xaml.cs
similarity index 95%
rename from Content.Client/UserInterface/Systems/Chat/Controls/ChatInputBox.cs
rename to Content.Client/UserInterface/Systems/Chat/Controls/ChatInputBox.xaml.cs
index 843fd46c1a0a21..0326664bd6906f 100644
--- a/Content.Client/UserInterface/Systems/Chat/Controls/ChatInputBox.cs
+++ b/Content.Client/UserInterface/Systems/Chat/Controls/ChatInputBox.xaml.cs
@@ -1,4 +1,5 @@
-using Content.Shared.Chat;
+using Content.Client.Stylesheets;
+using Content.Shared.Chat;
using Content.Shared.Input;
using Robust.Client.UserInterface.Controls;
@@ -44,6 +45,7 @@ public ChatInputBox()
StyleClasses = {"chatFilterOptionButton"}
};
Container.AddChild(FilterButton);
+ AddStyleClass(StyleNano.StyleClassChatSubPanel);
ChannelSelector.OnChannelSelect += UpdateActiveChannel;
}
diff --git a/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml b/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml
index 090041fa93c3c4..36cdce85985164 100644
--- a/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml
+++ b/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml
@@ -7,11 +7,8 @@
HorizontalExpand="True"
VerticalExpand="True"
MinSize="465 225">
-
-
-
-
-
+
diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs
index 06946cd0522985..bfd6393790ad20 100644
--- a/Content.Server/Hands/Systems/HandsSystem.cs
+++ b/Content.Server/Hands/Systems/HandsSystem.cs
@@ -75,6 +75,9 @@ private void GetComponentState(EntityUid uid, HandsComponent hands, ref Componen
private void OnExploded(Entity ent, ref BeforeExplodeEvent args)
{
+ if (ent.Comp.DisableExplosionRecursion)
+ return;
+
foreach (var hand in ent.Comp.Hands.Values)
{
if (hand.HeldEntity is { } uid)
diff --git a/Content.Server/Paper/PaperRandomStoryComponent.cs b/Content.Server/Paper/PaperRandomStoryComponent.cs
new file mode 100644
index 00000000000000..7c5744f0878ff8
--- /dev/null
+++ b/Content.Server/Paper/PaperRandomStoryComponent.cs
@@ -0,0 +1,14 @@
+namespace Content.Server.Paper;
+
+///
+/// Adds randomly generated stories to Paper component
+///
+[RegisterComponent, Access(typeof(PaperRandomStorySystem))]
+public sealed partial class PaperRandomStoryComponent : Component
+{
+ [DataField]
+ public List? StorySegments;
+
+ [DataField]
+ public string StorySeparator = " ";
+}
diff --git a/Content.Server/Paper/PaperRandomStorySystem.cs b/Content.Server/Paper/PaperRandomStorySystem.cs
new file mode 100644
index 00000000000000..e7712009c2ee7f
--- /dev/null
+++ b/Content.Server/Paper/PaperRandomStorySystem.cs
@@ -0,0 +1,29 @@
+using Content.Server.RandomMetadata;
+
+namespace Content.Server.Paper;
+
+public sealed class PaperRandomStorySystem : EntitySystem
+{
+
+ [Dependency] private readonly RandomMetadataSystem _randomMeta = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnMapinit);
+ }
+
+ private void OnMapinit(Entity paperStory, ref MapInitEvent ev)
+ {
+ if (!TryComp(paperStory, out var paper))
+ return;
+
+ if (paperStory.Comp.StorySegments == null)
+ return;
+
+ var story = _randomMeta.GetRandomFromSegments(paperStory.Comp.StorySegments, paperStory.Comp.StorySeparator);
+
+ paper.Content += $"\n{story}";
+ }
+}
diff --git a/Content.Server/RandomMetadata/RandomMetadataSystem.cs b/Content.Server/RandomMetadata/RandomMetadataSystem.cs
index ebec4d5249fdf3..c088d57fd96a16 100644
--- a/Content.Server/RandomMetadata/RandomMetadataSystem.cs
+++ b/Content.Server/RandomMetadata/RandomMetadataSystem.cs
@@ -1,4 +1,4 @@
-using Content.Shared.Dataset;
+using Content.Shared.Dataset;
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
@@ -48,8 +48,8 @@ public string GetRandomFromSegments(List segments, string? separator)
foreach (var segment in segments)
{
outputSegments.Add(_prototype.TryIndex(segment, out var proto)
- ? _random.Pick(proto.Values)
- : segment);
+ ? Loc.GetString(_random.Pick(proto.Values))
+ : Loc.GetString(segment));
}
return string.Join(separator, outputSegments);
}
diff --git a/Content.Server/Wires/WiresComponent.cs b/Content.Server/Wires/WiresComponent.cs
index 526b73a300d0e2..89e1873c00d93c 100644
--- a/Content.Server/Wires/WiresComponent.cs
+++ b/Content.Server/Wires/WiresComponent.cs
@@ -1,4 +1,5 @@
using Robust.Shared.Audio;
+using Robust.Shared.Prototypes;
namespace Content.Server.Wires;
@@ -15,7 +16,7 @@ public sealed partial class WiresComponent : Component
/// The layout ID of this entity's wires.
///
[DataField(required: true)]
- public string LayoutId { get; set; } = default!;
+ public ProtoId LayoutId { get; set; } = default!;
///
/// The serial number of this board. Randomly generated upon start,
diff --git a/Content.Shared/Anomaly/Components/AnomalyComponent.cs b/Content.Shared/Anomaly/Components/AnomalyComponent.cs
index 99f7b8373a7fd7..3878aeb81cba48 100644
--- a/Content.Shared/Anomaly/Components/AnomalyComponent.cs
+++ b/Content.Shared/Anomaly/Components/AnomalyComponent.cs
@@ -95,13 +95,13 @@ public sealed partial class AnomalyComponent : Component
/// The minimum interval between pulses.
///
[DataField]
- public TimeSpan MinPulseLength = TimeSpan.FromMinutes(1);
+ public TimeSpan MinPulseLength = TimeSpan.FromMinutes(2);
///
/// The maximum interval between pulses.
///
[DataField]
- public TimeSpan MaxPulseLength = TimeSpan.FromMinutes(2);
+ public TimeSpan MaxPulseLength = TimeSpan.FromMinutes(4);
///
/// A percentage by which the length of a pulse might vary.
diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs
index 50abba288a3615..d1a07cf493a124 100644
--- a/Content.Shared/CCVar/CCVars.cs
+++ b/Content.Shared/CCVar/CCVars.cs
@@ -1580,6 +1580,13 @@ public static readonly CVarDef
* Accessibility
*/
+ ///
+ /// Chat window opacity slider, controlling the alpha of the chat window background.
+ /// Goes from to 0 (completely transparent) to 1 (completely opaque)
+ ///
+ public static readonly CVarDef ChatWindowOpacity =
+ CVarDef.Create("accessibility.chat_window_transparency", 0.85f, CVar.CLIENTONLY | CVar.ARCHIVE);
+
///
/// Toggle for visual effects that may potentially cause motion sickness.
/// Where reasonable, effects affected by this CVar should use an alternate effect.
diff --git a/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs b/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs
index 8cbfe7bb2e4f2b..63008c6e08d772 100644
--- a/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs
+++ b/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs
@@ -23,6 +23,6 @@ public sealed partial class TypingIndicatorPrototype : IPrototype
public Vector2 Offset = new(0, 0);
[DataField("shader")]
- public string Shader = "unshaded";
+ public string Shader = "shaded";
}
diff --git a/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs b/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
index e9863f83641caa..a97b045cd83399 100644
--- a/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
+++ b/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
@@ -1,4 +1,4 @@
-using Content.Shared.Construction.Conditions;
+using Content.Shared.Construction.Conditions;
using Content.Shared.Whitelist;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
diff --git a/Content.Shared/Hands/Components/HandsComponent.cs b/Content.Shared/Hands/Components/HandsComponent.cs
index 904b10b3bdca6c..f1f25a69f7a589 100644
--- a/Content.Shared/Hands/Components/HandsComponent.cs
+++ b/Content.Shared/Hands/Components/HandsComponent.cs
@@ -31,6 +31,12 @@ public sealed partial class HandsComponent : Component
///
public List SortedHands = new();
+ ///
+ /// If true, the items in the hands won't be affected by explosions.
+ ///
+ [DataField]
+ public bool DisableExplosionRecursion = false;
+
///
/// The amount of throw impulse per distance the player is from the throw target.
///
diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs
index e071cdc69380c4..7b169b5d0a6f29 100644
--- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs
+++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs
@@ -134,8 +134,10 @@ public bool TryDrop(EntityUid uid, Hand hand, EntityCoordinates? targetDropLocat
return true;
}
+ var (itemPos, itemRot) = TransformSystem.GetWorldPositionRotation(entity);
+ var origin = new MapCoordinates(itemPos, itemXform.MapID);
var target = targetDropLocation.Value.ToMap(EntityManager, TransformSystem);
- TransformSystem.SetWorldPosition(itemXform, GetFinalDropCoordinates(uid, userXform.MapPosition, target));
+ TransformSystem.SetWorldPositionRotation(entity, GetFinalDropCoordinates(uid, origin, target), itemRot);
return true;
}
diff --git a/Content.Shared/Storage/EntitySystems/DumpableSystem.cs b/Content.Shared/Storage/EntitySystems/DumpableSystem.cs
index 8a8b636a679615..91acde47e19dad 100644
--- a/Content.Shared/Storage/EntitySystems/DumpableSystem.cs
+++ b/Content.Shared/Storage/EntitySystems/DumpableSystem.cs
@@ -159,11 +159,11 @@ private void OnDoAfter(EntityUid uid, DumpableComponent component, DumpableDoAft
{
dumped = true;
- var targetPos = _transformSystem.GetWorldPosition(args.Args.Target.Value);
+ var (targetPos, targetRot) = _transformSystem.GetWorldPositionRotation(args.Args.Target.Value);
foreach (var entity in dumpQueue)
{
- _transformSystem.SetWorldPosition(entity, targetPos + _random.NextVector2Box() / 4);
+ _transformSystem.SetWorldPositionRotation(entity, targetPos + _random.NextVector2Box() / 4, targetRot);
}
}
else
diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml
index d901a49abd8e47..0ca98f46dfe46a 100644
--- a/Resources/Changelog/Changelog.yml
+++ b/Resources/Changelog/Changelog.yml
@@ -1,65 +1,4 @@
Entries:
-- author: metalgearsloth
- changes:
- - message: Add title2.ogg to space ambience tracks.
- type: Tweak
- id: 5788
- time: '2024-01-25T13:59:49.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24501
-- author: Tayrtahn
- changes:
- - message: Glued mobs can no longer struggle free from their captor's hands.
- type: Tweak
- id: 5789
- time: '2024-01-25T14:01:13.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24488
-- author: mirrorcult
- changes:
- - message: Atomic Amnesia MMX, Vibe Ace, Monument and Marhaba have been removed
- as lobby music tracks
- type: Remove
- id: 5790
- time: '2024-01-25T14:08:29.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24480
-- author: Dutch-VanDerLinde
- changes:
- - message: To prevent accidental spills, paper cups can no longer be quick-equipped.
- type: Fix
- id: 5791
- time: '2024-01-25T22:04:31.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24560
-- author: Agoichi
- changes:
- - message: Bio hoods hiding your face now
- type: Tweak
- - message: Bio hoods now can be used as a breath mask
- type: Tweak
- - message: You can not eat while you wearing bio hood
- type: Tweak
- id: 5792
- time: '2024-01-26T00:13:42.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24570
-- author: yathxyz
- changes:
- - message: Updated nixpkgs input
- type: Tweak
- id: 5793
- time: '2024-01-26T01:40:52.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24572
-- author: mirrorcult
- changes:
- - message: We lied Atomic Amnesia MMX is back
- type: Add
- id: 5794
- time: '2024-01-26T05:48:29.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24575
-- author: EmoGarbage404
- changes:
- - message: Cigarettes no longer deal cellular damage when smoked.
- type: Remove
- id: 5795
- time: '2024-01-26T09:50:03.0000000+00:00'
- url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24568
- author: ERORR404V1
changes:
- message: Added mime hardsuit
@@ -3810,3 +3749,64 @@
id: 6287
time: '2024-04-01T08:29:13.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/24683
+- author: Sk1tch
+ changes:
+ - message: Added chat window opacity slider to options.
+ type: Add
+ id: 6288
+ time: '2024-04-01T20:48:02.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/24990
+- author: TheShuEd
+ changes:
+ - message: added procedurally generating books to library.
+ type: Add
+ - message: full books resprite
+ type: Add
+ id: 6289
+ time: '2024-04-01T21:00:10.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/25840
+- author: osjarw
+ changes:
+ - message: Ambuzol plus pills now have different sprites from ambuzol pills. Now
+ CBURN agents and Nukies who bought the syndicate zombie bundle might realize
+ that they also have some ambuzol plus.
+ type: Tweak
+ id: 6290
+ time: '2024-04-02T00:50:43.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/26651
+- author: osjarw
+ changes:
+ - message: Air injectors finally have working indicator lights while enabled.
+ type: Fix
+ id: 6291
+ time: '2024-04-02T05:17:26.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/26654
+- author: Simyon
+ changes:
+ - message: The hands of cyborgs are now explosion proof. Your beakers wont ever
+ break again!
+ type: Fix
+ id: 6292
+ time: '2024-04-02T05:18:31.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/26515
+- author: lzk228
+ changes:
+ - message: Typing indicator now can be shaded by shadows.
+ type: Tweak
+ id: 6293
+ time: '2024-04-03T02:12:47.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/26678
+- author: EmoGarbage404
+ changes:
+ - message: Increased time between pulses for various anomalies.
+ type: Tweak
+ id: 6294
+ time: '2024-04-03T03:15:57.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/26677
+- author: Plykiya
+ changes:
+ - message: Dropped items are no longer rotated to world north.
+ type: Fix
+ id: 6295
+ time: '2024-04-03T05:31:57.0000000+00:00'
+ url: https://github.com/space-wizards/space-station-14/pull/26662
diff --git a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl
index ff56d542744b91..67d09c901260d8 100644
--- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl
+++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl
@@ -48,6 +48,8 @@ ui-options-fancy-name-background = Add background to speech bubble names
ui-options-enable-color-name = Add colors to character names
ui-options-colorblind-friendly = Colorblind friendly mode
ui-options-reduced-motion = Reduce motion of visual effects
+ui-options-chat-window-opacity = Chat window opacity
+ui-options-chat-window-opacity-percent = { TOSTRING($opacity, "P0") }
ui-options-screen-shake-intensity = Screen shake intensity
ui-options-screen-shake-percent = { TOSTRING($intensity, "P0") }
ui-options-vsync = VSync
diff --git a/Resources/Locale/en-US/paper/story-generation.ftl b/Resources/Locale/en-US/paper/story-generation.ftl
new file mode 100644
index 00000000000000..bcd1c8901e0b8e
--- /dev/null
+++ b/Resources/Locale/en-US/paper/story-generation.ftl
@@ -0,0 +1,244 @@
+story-gen-book-type1 = book
+story-gen-book-type2 = folio
+story-gen-book-type3 = collection
+story-gen-book-type4 = notes
+story-gen-book-type5 = manuscript
+story-gen-book-type6 = records
+story-gen-book-type7 = tome
+story-gen-book-type8 = journal
+story-gen-book-type9 = archives
+story-gen-book-type10= codex
+story-gen-book-type11= memories
+story-gen-book-type12= compendium
+
+story-gen-book-genre1 = work of crime fiction
+story-gen-book-genre2 = comedy
+story-gen-book-genre3 = horror story
+story-gen-book-genre4 = poem
+story-gen-book-genre5 = novella
+story-gen-book-genre6 = chronicle
+story-gen-book-genre7 = work of science-fiction
+story-gen-book-genre8 = fantasy story
+story-gen-book-genre9 = romance
+story-gen-book-genre10= thriller
+story-gen-book-genre11= work of historical fiction
+story-gen-book-genre12= biography
+story-gen-book-genre13= adventure story
+story-gen-book-genre14= drama
+
+story-gen-book-appearance1 = ancient
+story-gen-book-appearance2 = shabby
+story-gen-book-appearance3 = dirty
+story-gen-book-appearance4 = unusual
+story-gen-book-appearance5 = faded
+story-gen-book-appearance6 = nasty
+story-gen-book-appearance7 = dusty
+story-gen-book-appearance8 = scary
+story-gen-book-appearance9 = bloody
+story-gen-book-appearance10= bright
+story-gen-book-appearance11= dubious
+story-gen-book-appearance12= intriguing
+story-gen-book-appearance13= ugly
+story-gen-book-appearance14= crooked
+story-gen-book-appearance15= crumpled
+story-gen-book-appearance16= dirty
+story-gen-book-appearance17= elegant
+story-gen-book-appearance18= ornate
+story-gen-book-appearance19= weathered
+story-gen-book-appearance20= chrisp
+story-gen-book-appearance21= lavish
+story-gen-book-appearance22= tattered
+story-gen-book-appearance23= polished
+story-gen-book-appearance24= embossed
+story-gen-book-appearance25= mismatched
+story-gen-book-appearance26= gilded
+story-gen-book-appearance27= strange
+
+story-gen-book-character1 = clown
+story-gen-book-character2 = mime
+story-gen-book-character3 = reporter
+story-gen-book-character4 = butcher
+story-gen-book-character5 = bartender
+story-gen-book-character6 = janitor
+story-gen-book-character7 = engineer
+story-gen-book-character8 = scientist
+story-gen-book-character9 = guard
+story-gen-book-character10 = doctor
+story-gen-book-character11 = chemist
+story-gen-book-character12 = prisoner
+story-gen-book-character13 = researcher
+story-gen-book-character14 = trader
+story-gen-book-character15 = captain
+story-gen-book-character16 = lizard
+story-gen-book-character17 = moth
+story-gen-book-character18 = diona
+story-gen-book-character19 = cat-girl
+story-gen-book-character20 = cat
+story-gen-book-character21 = corgi
+story-gen-book-character22 = dog
+story-gen-book-character23 = opossum
+story-gen-book-character24 = sloth
+story-gen-book-character25 = syndicate agent
+story-gen-book-character26 = revenant
+story-gen-book-character27 = rat king
+story-gen-book-character28 = ninja
+story-gen-book-character29 = space dragon
+story-gen-book-character30 = revolutionary
+story-gen-book-character31 = nuclear operative
+story-gen-book-character32 = narsie cultist
+story-gen-book-character33 = ratwar cultist
+story-gen-book-character34 = greytider
+story-gen-book-character35 = arachnid
+story-gen-book-character36 = vox
+story-gen-book-character37 = dwarf
+story-gen-book-character38 = thief
+story-gen-book-character39 = wizard
+story-gen-book-character40 = slime
+
+story-gen-book-character-trait1 = stupid
+story-gen-book-character-trait2 = smart
+story-gen-book-character-trait3 = funny
+story-gen-book-character-trait4 = attractive
+story-gen-book-character-trait5 = charming
+story-gen-book-character-trait6 = nasty
+story-gen-book-character-trait7 = dying
+story-gen-book-character-trait8 = old
+story-gen-book-character-trait9 = young
+story-gen-book-character-trait10 = rich
+story-gen-book-character-trait11 = poor
+story-gen-book-character-trait12 = popular
+story-gen-book-character-trait13 = absent-minded
+story-gen-book-character-trait14 = stern
+story-gen-book-character-trait15 = сharismatic
+story-gen-book-character-trait16 = stoic
+story-gen-book-character-trait17 = cute
+story-gen-book-character-trait18 = dwarven
+story-gen-book-character-trait19 = beer-smelling
+story-gen-book-character-trait20 = joyful
+story-gen-book-character-trait21 = painfully beautiful
+story-gen-book-character-trait22 = robotic
+story-gen-book-character-trait23 = holographic
+story-gen-book-character-trait24 = hysterically laughing
+
+story-gen-book-event1 = a zombie outbreak
+story-gen-book-event2 = a nuclear explosion
+story-gen-book-event3 = a mass murder
+story-gen-book-event4 = a sudden depressurization
+story-gen-book-event5 = a blackout
+story-gen-book-event6 = the starvation of the protagonists
+story-gen-book-event7 = a wasting illness
+story-gen-book-event8 = love at first sight
+story-gen-book-event9 = a rush of inspiration
+story-gen-book-event10 = the occurrence of some mystical phenomena
+story-gen-book-event11 = divine intervention
+story-gen-book-event12 = the characters' own selfish motives
+story-gen-book-event13 = an unforeseen deception
+story-gen-book-event14 = the resurrection of one of these characters from the dead
+story-gen-book-event15 = the terrible torture of the protagonist
+story-gen-book-event16 = the inadvertent loosing of a gravitational singularity
+story-gen-book-event17 = a psychic prediction of future events
+story-gen-book-event18 = an antimatter explosion
+story-gen-book-event19 = a chance meeting with a cat-girl
+story-gen-book-event20 = drinking far too much alcohol
+story-gen-book-event21 = eating way too much pizza
+story-gen-book-event22 = having a quarrel with a close friend
+story-gen-book-event23 = the sudden loss of their home in a fiery blaze
+story-gen-book-event24 = the loss of a PDA
+
+story-gen-book-action1 = share in a kiss with a
+story-gen-book-action2 = strangle to death a
+story-gen-book-action3 = manage to blow apart a
+story-gen-book-action4 = manage to win a game of chess against a
+story-gen-book-action5 = narrowly lose a game of chess against a
+story-gen-book-action6 = reveal the hidden secrets of a
+story-gen-book-action7 = manipulate a
+story-gen-book-action8 = sacrifice upon an altar a
+story-gen-book-action9 = attend the wedding of a
+story-gen-book-action10 = join forces to defeat their common enemy, a
+story-gen-book-action11 = are forced to work together to escape a
+story-gen-book-action12 = give a valuable gift to
+
+story-gen-book-action-trait1 = terribly
+story-gen-book-action-trait2 = disgustingly
+story-gen-book-action-trait3 = marvelously
+story-gen-book-action-trait4 = nicely
+story-gen-book-action-trait5 = weirdly
+story-gen-book-action-trait6 = amusingly
+story-gen-book-action-trait7 = fancifully
+story-gen-book-action-trait8 = impressively
+story-gen-book-action-trait9 = irresponsibly
+story-gen-book-action-trait10 = severely
+story-gen-book-action-trait11 = ruthlessly
+story-gen-book-action-trait12 = playfully
+story-gen-book-action-trait13 = thoughtfully
+
+story-gen-book-location1 = in an underground complex
+story-gen-book-location2 = while on an expedition
+story-gen-book-location3 = while trapped in outer space
+story-gen-book-location4 = while in a news office
+story-gen-book-location5 = in a hidden garden
+story-gen-book-location6 = in the kitchen of a local restaurant
+story-gen-book-location7 = under the counter of the local sports bar
+story-gen-book-location8 = in an ancient library
+story-gen-book-location9 = while deep in bowels of the space station's maintenance corridors
+story-gen-book-location10 = on the bridge of a starship
+story-gen-book-location11 = while in a grungy public bathroom
+story-gen-book-location12 = while trapped inside a crate
+story-gen-book-location13 = while stuck inside a locker
+story-gen-book-location14 = while stationed on Barratry
+story-gen-book-location15 = while in the hall of rustic church
+story-gen-book-location16 = while in a crematorium
+story-gen-book-location17 = standing too close to an anomaly
+story-gen-book-location18 = while huddling on the evacuation shuttle
+story-gen-book-location19 = standing in freshly fallen snow
+story-gen-book-location20 = lost in the woods
+story-gen-book-location21 = iin the harsh desert
+story-gen-book-location22 = worrying about their social media networks
+story-gen-book-location23 = atop of a mountain
+story-gen-book-location24 = while driving a car
+story-gen-book-location25 = in an escape pod
+story-gen-book-location26 = while abroad in a fictional country
+story-gen-book-location27 = clinging to the wing of an inflight airplane
+story-gen-book-location28 = inside a pocket dimension
+story-gen-book-location29 = onboard a Wizard Federation shuttle
+story-gen-book-location30 = standing atop of a mountain of corpses
+story-gen-book-location31 = while psychically projected into their subconscious
+story-gen-book-location32 = while trapped in a shadow dimension
+story-gen-book-location33 = while trying to escape a destroyed space station
+story-gen-book-location34 = while sandwiched between a Tesla ball and a gravitational singularity
+
+story-gen-book-element1 = The plot
+story-gen-book-element2 = The twist
+story-gen-book-element3 = The climax
+story-gen-book-element4 = The final act
+story-gen-book-element5 = The ending
+story-gen-book-element6 = The moral of the story
+story-gen-book-element7 = The theme of this work
+story-gen-book-element8 = The literary style
+story-gen-book-element9 = The illustrations
+
+story-gen-book-element-trait1 = terrifying
+story-gen-book-element-trait2 = disgusting
+story-gen-book-element-trait3 = wonderful
+story-gen-book-element-trait4 = cute
+story-gen-book-element-trait5 = boring
+story-gen-book-element-trait6 = strange
+story-gen-book-element-trait7 = amusing
+story-gen-book-element-trait8 = whimsical
+story-gen-book-element-trait9 = impressive
+story-gen-book-element-trait10 = interesting
+story-gen-book-element-trait11 = inadequate
+story-gen-book-element-trait12 = sad
+story-gen-book-element-trait13 = rather depressing
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_service.yml b/Resources/Prototypes/Catalog/Cargo/cargo_service.yml
index f27adb65a4acc3..267f706f3bd9d5 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_service.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_service.yml
@@ -82,7 +82,7 @@
id: ServiceBooks
icon:
sprite: Objects/Misc/books.rsi
- state: book0
+ state: book_icon
product: CrateServiceBooks
cost: 1000
category: cargoproduct-category-name-service
@@ -92,7 +92,7 @@
id: ServiceGuidebooks
icon:
sprite: Objects/Misc/books.rsi
- state: book_engineering2
+ state: book_icon
product: CrateServiceGuidebooks
cost: 1300
category: cargoproduct-category-name-service
diff --git a/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml b/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml
index 48fab5dcccdba0..b52e85300852ed 100644
--- a/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml
+++ b/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml
@@ -5,93 +5,123 @@
components:
- type: StorageFill
contents:
- - id: BookRandom
- prob: 0.4
- amount: 1
- maxAmount: 4
+ - id: BookRandomStory
+ prob: 0.6
+ amount: 2
+ maxAmount: 6
+ - id: BookSpaceEncyclopedia
+ orGroup: BookPool
+ - id: BookTheBookOfControl
+ orGroup: BookPool
+ - id: BookBartendersManual
+ orGroup: BookPool
+ - id: BookChefGaming
+ orGroup: BookPool
+ - id: BookLeafLoversSecret
+ orGroup: BookPool
+ - id: BookEngineersHandbook
+ orGroup: BookPool
+ - id: BookScientistsGuidebook
+ orGroup: BookPool
+ - id: BookSecurity
+ orGroup: BookPool
+ - id: BookHowToKeepStationClean
+ orGroup: BookPool
+ - id: BookHowToRockAndStone
+ orGroup: BookPool
+ - id: BookMedicalReferenceBook
+ orGroup: BookPool
+ - id: BookHowToSurvive
+ orGroup: BookPool
+ - id: BookChemicalCompendium
+ orGroup: BookPool
- id: BookNarsieLegend
prob: 0.1
+ orGroup: BookAuthor
- id: BookTruth
prob: 0.1
+ orGroup: BookAuthor
- id: BookWorld
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanAntarctica
prob: 0.1
+ orGroup: BookAuthor
- id: BookSlothClownSSS
prob: 0.1
+ orGroup: BookAuthor
- id: BookSlothClownPranks
prob: 0.1
+ orGroup: BookAuthor
- id: BookSlothClownMMD
prob: 0.1
+ orGroup: BookAuthor
- id: BookStruck
prob: 0.1
+ orGroup: BookAuthor
- id: BookSun
prob: 0.1
+ orGroup: BookAuthor
- id: BookPossum
prob: 0.1
+ orGroup: BookAuthor
- id: BookCafe
prob: 0.1
+ orGroup: BookAuthor
- id: BookFeather
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanLostWolfPup
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanRanch
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanOcean
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanMountain
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanCity
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanArctic
prob: 0.1
+ orGroup: BookAuthor
- id: BookIanDesert
prob: 0.1
+ orGroup: BookAuthor
- id: BookNames
prob: 0.1
+ orGroup: BookAuthor
- id: BookEarth
prob: 0.1
+ orGroup: BookAuthor
- id: BookAurora
prob: 0.1
+ orGroup: BookAuthor
- id: BookTemple
prob: 0.1
+ orGroup: BookAuthor
- id: BookWatched
prob: 0.1
+ orGroup: BookAuthor
- id: BookMedicalOfficer
prob: 0.1
+ orGroup: BookAuthor
- id: BookMorgue
prob: 0.1
+ orGroup: BookAuthor
- id: BookRufus
prob: 0.1
+ orGroup: BookAuthor
- id: BookMap
prob: 0.1
+ orGroup: BookAuthor
- id: BookJourney
prob: 0.1
+ orGroup: BookAuthor
- id: BookInspiration
prob: 0.1
- - id: BookSpaceEncyclopedia
- orGroup: BookPool
- - id: BookTheBookOfControl
- orGroup: BookPool
- - id: BookBartendersManual
- orGroup: BookPool
- - id: BookChefGaming
- orGroup: BookPool
- - id: BookLeafLoversSecret
- orGroup: BookPool
- - id: BookEngineersHandbook
- orGroup: BookPool
- - id: BookScientistsGuidebook
- orGroup: BookPool
- - id: BookSecurity
- orGroup: BookPool
- - id: BookHowToKeepStationClean
- orGroup: BookPool
- - id: BookHowToRockAndStone
- orGroup: BookPool
- - id: BookMedicalReferenceBook
- orGroup: BookPool
- - id: BookHowToSurvive
- orGroup: BookPool
- - id: BookChemicalCompendium
- orGroup: BookPool
+ orGroup: BookAuthor
diff --git a/Resources/Prototypes/Catalog/Fills/Books/lore.yml b/Resources/Prototypes/Catalog/Fills/Books/lore.yml
deleted file mode 100644
index 0fd712d42f8c87..00000000000000
--- a/Resources/Prototypes/Catalog/Fills/Books/lore.yml
+++ /dev/null
@@ -1,122 +0,0 @@
-# ---- Library Salvage Fills ----
-
-- type: entity
- name: demonomicon
- parent: BookBase
- id: BookDemonomicon
- noSpawn: true
- description: 'Who knows what dark spells may be contained in these horrid pages?'
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book_demonomicon
-
-- type: entity
- name: demonomicon
- parent: BookDemonomicon
- id: BookDemonomiconRandom
- suffix: random
- components:
- - type: RandomSpawner
- prototypes:
- - BookDemonomicon1
- - BookDemonomicon2
- - BookDemonomicon3
- offset: 0.1
-
-- type: entity
- parent: BookDemonomicon
- id: BookDemonomicon1
- suffix: 1
- components:
- - type: Paper
- content: book-text-demonomicon1
-
-- type: entity
- parent: BookDemonomicon
- id: BookDemonomicon2
- suffix: 2
- components:
- - type: Paper
- content: book-text-demonomicon2
-
-- type: entity
- parent: BookDemonomicon
- id: BookDemonomicon3
- suffix: 3
- components:
- - type: Paper
- content: book-text-demonomicon3
-
-- type: entity
- name: pharmaceutical manuscript
- parent: BookBase
- id: BookChemistryInsane
- suffix: library salvage
- description: 'You can tell whoever wrote this was off the desoxy HARD.'
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book_chemistry
- - type: Paper
- content: book-text-chemistry-insane
-
-- type: entity
- name: botanical textbook
- parent: BookBase
- id: BookBotanicalTextbook
- suffix: library salvage
- description: 'Only a couple pages are left.'
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book_hydroponics_pod_people
- - type: Paper
- content: book-text-botanics
-
-- type: entity
- parent: BookBase
- id: BookGnominomicon
- name: gnominomicon
- suffix: library salvage
- description: You don't like the look of this. Looks
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book5
- - type: Paper
- content: book-text-gnome
-
-- type: entity
- parent: BookBase
- id: BookFishing
- name: Tales from the Fishbowl
- suffix: library salvage
- description: This book sucks.
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book_fish
- - type: Paper
- content: book-text-fishing
-
-- type: entity
- parent: BookBase
- id: BookDetective
- name: Strokgraeth Holmes, Dwarf Detective
- suffix: library salvage
- description: Exciting! Invigorating! This author died after his book career failed.
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book_detective
- - type: Paper
- content: book-text-detective
-
-# ---- End Library Salvage Fills ----
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml
index 0bb818cc1c0349..915c47eb3d7da6 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml
@@ -167,6 +167,8 @@
prob: 0.20
- id: BarberScissors
prob: 0.05
+ - id: BookRandomStory
+ prob: 0.1
# Syndicate loot
- id: null
prob: 0.95
diff --git a/Resources/Prototypes/Datasets/story_generation.yml b/Resources/Prototypes/Datasets/story_generation.yml
new file mode 100644
index 00000000000000..1083a6acdb661f
--- /dev/null
+++ b/Resources/Prototypes/Datasets/story_generation.yml
@@ -0,0 +1,266 @@
+- type: dataset
+ id: book_type
+ values:
+ - story-gen-book-type1
+ - story-gen-book-type2
+ - story-gen-book-type3
+ - story-gen-book-type4
+ - story-gen-book-type5
+ - story-gen-book-type6
+ - story-gen-book-type7
+ - story-gen-book-type8
+ - story-gen-book-type9
+ - story-gen-book-type10
+ - story-gen-book-type11
+ - story-gen-book-type12
+
+- type: dataset
+ id: book_genre
+ values:
+ - story-gen-book-genre1
+ - story-gen-book-genre2
+ - story-gen-book-genre3
+ - story-gen-book-genre4
+ - story-gen-book-genre5
+ - story-gen-book-genre6
+ - story-gen-book-genre7
+ - story-gen-book-genre8
+ - story-gen-book-genre9
+ - story-gen-book-genre10
+ - story-gen-book-genre11
+ - story-gen-book-genre12
+ - story-gen-book-genre13
+ - story-gen-book-genre14
+
+- type: dataset
+ id: book_hint_appearance
+ values:
+ - story-gen-book-appearance1
+ - story-gen-book-appearance2
+ - story-gen-book-appearance3
+ - story-gen-book-appearance4
+ - story-gen-book-appearance5
+ - story-gen-book-appearance6
+ - story-gen-book-appearance7
+ - story-gen-book-appearance8
+ - story-gen-book-appearance9
+ - story-gen-book-appearance10
+ - story-gen-book-appearance11
+ - story-gen-book-appearance12
+ - story-gen-book-appearance13
+ - story-gen-book-appearance14
+ - story-gen-book-appearance15
+ - story-gen-book-appearance16
+ - story-gen-book-appearance17
+ - story-gen-book-appearance18
+ - story-gen-book-appearance19
+ - story-gen-book-appearance20
+ - story-gen-book-appearance21
+ - story-gen-book-appearance22
+ - story-gen-book-appearance23
+ - story-gen-book-appearance24
+ - story-gen-book-appearance25
+ - story-gen-book-appearance26
+ - story-gen-book-appearance27
+
+- type: dataset
+ id: book_character
+ values:
+ - story-gen-book-character1
+ - story-gen-book-character2
+ - story-gen-book-character3
+ - story-gen-book-character4
+ - story-gen-book-character5
+ - story-gen-book-character6
+ - story-gen-book-character7
+ - story-gen-book-character8
+ - story-gen-book-character9
+ - story-gen-book-character10
+ - story-gen-book-character11
+ - story-gen-book-character12
+ - story-gen-book-character13
+ - story-gen-book-character14
+ - story-gen-book-character15
+ - story-gen-book-character16
+ - story-gen-book-character17
+ - story-gen-book-character18
+ - story-gen-book-character19
+ - story-gen-book-character20
+ - story-gen-book-character21
+ - story-gen-book-character22
+ - story-gen-book-character23
+ - story-gen-book-character24
+ - story-gen-book-character25
+ - story-gen-book-character26
+ - story-gen-book-character27
+ - story-gen-book-character28
+ - story-gen-book-character29
+ - story-gen-book-character30
+ - story-gen-book-character31
+ - story-gen-book-character32
+ - story-gen-book-character33
+ - story-gen-book-character34
+ - story-gen-book-character35
+ - story-gen-book-character36
+ - story-gen-book-character37
+ - story-gen-book-character38
+ - story-gen-book-character39
+ - story-gen-book-character40
+
+- type: dataset
+ id: book_character_trait
+ values:
+ - story-gen-book-character-trait1
+ - story-gen-book-character-trait2
+ - story-gen-book-character-trait3
+ - story-gen-book-character-trait4
+ - story-gen-book-character-trait5
+ - story-gen-book-character-trait6
+ - story-gen-book-character-trait7
+ - story-gen-book-character-trait8
+ - story-gen-book-character-trait9
+ - story-gen-book-character-trait10
+ - story-gen-book-character-trait11
+ - story-gen-book-character-trait12
+ - story-gen-book-character-trait13
+ - story-gen-book-character-trait14
+ - story-gen-book-character-trait15
+ - story-gen-book-character-trait16
+ - story-gen-book-character-trait17
+ - story-gen-book-character-trait18
+ - story-gen-book-character-trait19
+ - story-gen-book-character-trait20
+ - story-gen-book-character-trait21
+ - story-gen-book-character-trait22
+ - story-gen-book-character-trait23
+ - story-gen-book-character-trait24
+
+
+- type: dataset
+ id: book_event
+ values:
+ - story-gen-book-event1
+ - story-gen-book-event2
+ - story-gen-book-event3
+ - story-gen-book-event4
+ - story-gen-book-event5
+ - story-gen-book-event6
+ - story-gen-book-event7
+ - story-gen-book-event8
+ - story-gen-book-event9
+ - story-gen-book-event10
+ - story-gen-book-event11
+ - story-gen-book-event12
+ - story-gen-book-event13
+ - story-gen-book-event14
+ - story-gen-book-event15
+ - story-gen-book-event16
+ - story-gen-book-event17
+ - story-gen-book-event18
+ - story-gen-book-event19
+ - story-gen-book-event20
+ - story-gen-book-event21
+ - story-gen-book-event22
+ - story-gen-book-event23
+ - story-gen-book-event24
+
+- type: dataset
+ id: book_action
+ values:
+ - story-gen-book-action1
+ - story-gen-book-action2
+ - story-gen-book-action3
+ - story-gen-book-action4
+ - story-gen-book-action5
+ - story-gen-book-action6
+ - story-gen-book-action7
+ - story-gen-book-action8
+ - story-gen-book-action9
+ - story-gen-book-action10
+ - story-gen-book-action11
+ - story-gen-book-action12
+
+- type: dataset
+ id: book_action_trait
+ values:
+ - story-gen-book-action-trait1
+ - story-gen-book-action-trait2
+ - story-gen-book-action-trait3
+ - story-gen-book-action-trait4
+ - story-gen-book-action-trait5
+ - story-gen-book-action-trait6
+ - story-gen-book-action-trait7
+ - story-gen-book-action-trait8
+ - story-gen-book-action-trait9
+ - story-gen-book-action-trait10
+ - story-gen-book-action-trait11
+ - story-gen-book-action-trait12
+ - story-gen-book-action-trait13
+
+- type: dataset
+ id: book_location
+ values:
+ - story-gen-book-location1
+ - story-gen-book-location2
+ - story-gen-book-location3
+ - story-gen-book-location4
+ - story-gen-book-location5
+ - story-gen-book-location6
+ - story-gen-book-location7
+ - story-gen-book-location8
+ - story-gen-book-location9
+ - story-gen-book-location10
+ - story-gen-book-location11
+ - story-gen-book-location12
+ - story-gen-book-location13
+ - story-gen-book-location14
+ - story-gen-book-location15
+ - story-gen-book-location16
+ - story-gen-book-location17
+ - story-gen-book-location18
+ - story-gen-book-location19
+ - story-gen-book-location20
+ - story-gen-book-location21
+ - story-gen-book-location22
+ - story-gen-book-location23
+ - story-gen-book-location24
+ - story-gen-book-location25
+ - story-gen-book-location26
+ - story-gen-book-location27
+ - story-gen-book-location28
+ - story-gen-book-location29
+ - story-gen-book-location30
+ - story-gen-book-location31
+ - story-gen-book-location32
+ - story-gen-book-location33
+ - story-gen-book-location34
+
+- type: dataset
+ id: book_story_element
+ values:
+ - story-gen-book-element1
+ - story-gen-book-element2
+ - story-gen-book-element3
+ - story-gen-book-element4
+ - story-gen-book-element5
+ - story-gen-book-element6
+ - story-gen-book-element7
+ - story-gen-book-element8
+ - story-gen-book-element9
+
+- type: dataset
+ id: book_story_element_trait
+ values:
+ - story-gen-book-element-trait1
+ - story-gen-book-element-trait2
+ - story-gen-book-element-trait3
+ - story-gen-book-element-trait4
+ - story-gen-book-element-trait5
+ - story-gen-book-element-trait6
+ - story-gen-book-element-trait7
+ - story-gen-book-element-trait8
+ - story-gen-book-element-trait9
+ - story-gen-book-element-trait10
+ - story-gen-book-element-trait11
+ - story-gen-book-element-trait12
+ - story-gen-book-element-trait13
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
index f04998388b8961..9ca99f9982296b 100644
--- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
+++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
@@ -83,6 +83,7 @@
templateId: borg
- type: Hands
showInHands: false
+ disableExplosionRecursion: true
- type: IntrinsicRadioReceiver
- type: IntrinsicRadioTransmitter
channels:
@@ -101,8 +102,6 @@
- type: BorgChassis
- type: WiresPanel
- type: ActivatableUIRequiresPanel
- - type: Wires
- layoutId: Borg
- type: NameIdentifier
group: Silicon
- type: ContainerContainer
diff --git a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml
index ae454e43a2e99d..e523bbe16ec7a2 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml
@@ -13,7 +13,7 @@
programName: notekeeper-program-name
icon:
sprite: Objects/Misc/books.rsi
- state: book6
+ state: book_icon
- type: NotekeeperCartridge
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_structures.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_structures.yml
index ad4d2eac8a5190..191bb75e50e866 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_structures.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_structures.yml
@@ -163,9 +163,6 @@
- type: Appearance
- type: WiresVisuals
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-dawinstrument
- layoutId: DawInstrument
- type: Machine
board: DawInstrumentMachineCircuitboard
- type: Instrument
diff --git a/Resources/Prototypes/Entities/Objects/Magic/books.yml b/Resources/Prototypes/Entities/Objects/Magic/books.yml
index 89acd9e7dabf32..dfb875f6771d71 100644
--- a/Resources/Prototypes/Entities/Objects/Magic/books.yml
+++ b/Resources/Prototypes/Entities/Objects/Magic/books.yml
@@ -7,7 +7,13 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_demonomicon
+ - state: paper_blood
+ - state: cover_strong
+ color: "#645a5a"
+ - state: decor_wingette_flat
+ color: "#4d0303"
+ - state: icon_pentagramm
+ color: "#f7e19f"
- type: Spellbook
- type: Tag
tags:
@@ -28,9 +34,19 @@
parent: BaseSpellbook
components:
- type: Sprite
- sprite: Objects/Magic/spellbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: bookforcewall
+ - state: paper
+ - state: cover_strong
+ color: "#366ed6"
+ - state: decor_vertical_middle
+ color: "#95ffff"
+ - state: decor_wingette_circle
+ color: "#95ffff"
+ - state: icon_magic_forcewall
+ shader: unshaded
+ - state: detail_rivets
+ color: gold
- type: Spellbook
spells:
ActionForceWall: -1
@@ -41,9 +57,17 @@
parent: BaseSpellbook
components:
- type: Sprite
- sprite: Objects/Magic/spellbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: spellbook
+ - state: paper
+ - state: cover_old
+ color: "#657e9c"
+ - state: icon_text3
+ - state: decor_wingette_circle
+ color: gold
+ - state: icon_magic
+ - state: detail_rivets
+ color: gold
- type: Spellbook
spells:
ActionBlink: -1
@@ -53,13 +77,23 @@
name: smite spellbook
parent: BaseSpellbook
components:
- - type: Sprite
- sprite: Objects/Magic/spellbooks.rsi
- layers:
- - state: spellbook
- - type: Spellbook
- spells:
- ActionSmite: -1
+ - type: Sprite
+ sprite: Objects/Misc/books.rsi
+ layers:
+ - state: paper
+ - state: cover_old
+ color: "#c42b40"
+ - state: decor_wingette_circle
+ color: gold
+ - state: icon_magic
+ - state: detail_rivets
+ color: gold
+ - state: detail_bookmark
+ color: red
+ - state: overlay_blood
+ - type: Spellbook
+ spells:
+ ActionSmite: -1
- type: entity
id: KnockSpellbook
@@ -67,9 +101,18 @@
parent: BaseSpellbook
components:
- type: Sprite
- sprite: Objects/Magic/spellbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: bookknock
+ - state: paper
+ - state: cover_strong
+ color: "#117045"
+ - state: decor_wingette_circle
+ color: gold
+ - state: icon_magic_knock
+ - state: detail_rivets
+ color: gold
+ - state: detail_bookmark
+ color: "#98c495"
- type: Spellbook
spells:
ActionKnock: -1
@@ -79,13 +122,24 @@
name: fireball spellbook
parent: BaseSpellbook
components:
- - type: Sprite
- sprite: Objects/Magic/spellbooks.rsi
- layers:
- - state: bookfireball
- - type: Spellbook
- spells:
- ActionFireball: -1
+ - type: Sprite
+ sprite: Objects/Misc/books.rsi
+ layers:
+ - state: paper
+ - state: cover_old
+ color: "#ba5a14"
+ - state: decor_wingette_circle
+ color: gold
+ - state: detail_rivets
+ color: gold
+ - state: detail_bookmark
+ color: "#e89b3c"
+ - state: overlay_blood
+ - state: icon_magic_fireball
+ shader: unshaded
+ - type: Spellbook
+ spells:
+ ActionFireball: -1
- type: entity
id: ScrollRunes
diff --git a/Resources/Prototypes/Entities/Objects/Misc/books.yml b/Resources/Prototypes/Entities/Objects/Misc/books.yml
index ab6beb70af13df..78f9edc9c5eaba 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/books.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/books.yml
@@ -7,8 +7,17 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book0
- map: [ "enum.DamageStateVisualLayers.Base" ]
+ - state: paper
+ - state: cover_base
+ color: "#332d27"
+ map: [ "cover" ]
+ - state: decor_wingette
+ color: "#453f3a"
+ map: [ "decor" ]
+ - state: icon_text
+ map: [ "icon" ]
+ - state: overlay_null
+ map: [ "overlay" ]
- type: Paper
contentSize: 12000
- type: ActivatableUI
@@ -35,7 +44,15 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book0 # placeholder(?). if only we have a better sprite that fits this.
+ - state: paper
+ - state: cover_base
+ color: "#0a2a6b"
+ - state: decor_wingette
+ color: "#082561"
+ - state: icon_text
+ color: gold
+ - state: icon_planet
+ color: "#42b6f5"
- type: Tag
tags:
- Book
@@ -53,7 +70,15 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book7
+ - state: paper
+ - state: cover_base
+ color: black
+ - state: decor_wingette
+ color: "#bbbbbb"
+ - state: icon_glow
+ color: red
+ - state: icon_corner
+ color: red
- type: Tag
tags:
- Book
@@ -71,7 +96,12 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_bar
+ - state: paper
+ - state: cover_base
+ color: "#004848"
+ - state: decor_wingette
+ color: "#006666"
+ - state: icon_bar
- type: Tag
tags:
- Book
@@ -89,7 +119,11 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_cooking
+ - state: paper
+ - state: cover_base
+ color: "#e22541"
+ - state: decor_wingette
+ - state: icon_apple
- type: Tag
tags:
- Book
@@ -107,7 +141,14 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_hydroponics_pod_people
+ - state: paper
+ - state: cover_base
+ color: "#0e5a24"
+ - state: decor_wingette
+ color: "#2fa151"
+ - state: icon_cabbage
+ - state: icon_corner
+ color: gold
- type: Tag
tags:
- Book
@@ -125,7 +166,14 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_engineering
+ - state: paper
+ - state: cover_base
+ color: "#6c4718"
+ - state: decor_wingette
+ color: "#b5913c"
+ - state: icon_wrench
+ - state: icon_corner
+ color: gold
- type: Tag
tags:
- Book
@@ -143,7 +191,12 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_science
+ - state: paper
+ - state: cover_base
+ color: "#542485"
+ - state: decor_wingette_circle
+ color: "#be69f0"
+ - state: icon_dna
- type: Tag
tags:
- Book
@@ -161,7 +214,12 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_security
+ - state: paper
+ - state: cover_base
+ color: "#ab1515"
+ - state: decor_wingette
+ color: "#e05334"
+ - state: icon_stunbaton
- type: Tag
tags:
- Book
@@ -184,7 +242,11 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book0 # no janitorial book sprite so this is a placeholder
+ - state: paper
+ - state: cover_base
+ color: "#550c82"
+ - state: decor_wingette
+ - state: icon_bucket
- type: Tag
tags:
- Book
@@ -202,7 +264,15 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book0 # no salvage book sprite so this is a placeholder
+ - state: paper
+ - state: cover_base
+ color: "#52320b"
+ - state: decor_wingette
+ color: "#e69a3e"
+ - state: icon_glow
+ - state: icon_diamond
+ - state: icon_text
+ color: "#fcdf74"
- type: Tag
tags:
- Book
@@ -220,7 +290,13 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_medical
+ - state: paper
+ - state: cover_base
+ color: "#cccccc"
+ - state: decor_wingette
+ color: "#f7f7f7"
+ - state: icon_medical
+ color: "#58abcc"
- type: Tag
tags:
- Book
@@ -238,7 +314,15 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_engineering
+ - state: paper
+ - state: cover_old
+ color: "#6c4718"
+ - state: decor_wingette
+ color: "#b5913c"
+ - state: icon_glow
+ color: red
+ - state: icon_wrench
+ - state: overlay_blood
- type: Tag
tags:
- Book
@@ -256,7 +340,12 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book_chemistry
+ - state: paper
+ - state: cover_base
+ color: "#2a7b74"
+ - state: decor_wingette
+ color: "#2a7b74"
+ - state: icon_chemical
- type: Tag
tags:
- Book
@@ -268,69 +357,120 @@
- type: entity
parent: BookBase
id: BookRandom
- suffix: random
+ suffix: random visual
+ description: Each book is unique! What is hidden in this one?
components:
+ - type: RandomMetadata
+ nameSegments:
+ - book_hint_appearance
+ - book_type
- type: RandomSprite
available:
- - enum.DamageStateVisualLayers.Base:
- book0: ""
- book1: ""
- book2: ""
- book3: ""
- book4: ""
- book5: ""
- book6: ""
- book7: ""
- book8: ""
+ - cover:
+ cover_base: Sixteen
+ cover_old: Sixteen
+ cover_strong: Sixteen
+ decor:
+ decor_wingette: Sixteen
+ decor_wingette_circle: Sixteen
+ decor_bottom: Sixteen
+ decor_middle: Sixteen
+ decor_spine: Sixteen
+ decor_diagonal: Sixteen
+ decor_vertical_middle: Sixteen
+ icon_corner: Sixteen
+ icon_mount: ""
+ icon:
+ icon_biohazard: Sixteen
+ icon_borg: ""
+ icon_banana: ""
+ icon_glow: Sixteen
+ icon_hacking: ""
+ icon_law: Sixteen
+ icon_magnifier: ""
+ icon_nuclear: ""
+ icon_time: Sixteen
+ icon_aurora: Sixteen
+ icon_briefcase: ""
+ icon_eye: ""
+ icon_letter_N: ""
+ icon_letter_P: ""
+ icon_lightning: ""
+ icon_planet: ""
+ icon_possum: ""
+ icon_question: Sixteen
+ icon_scmmd: ""
+ icon_stars: Sixteen
+ icon_stars2: Sixteen
+ icon_temple: Sixteen
+ icon_tree: ""
+ icon_pentagramm: Sixteen
+ icon_fish: ""
+ icon_origami: ""
+ icon_skull: ""
+ icon_text: ""
+ icon_text2: ""
+ icon_text3: ""
+ overlay:
+ overlay_blood: ""
+ overlay_dirt: Sixteen
+ detail_bookmark: Sixteen
+ detail_rivets: Sixteen
+ overlay_null: ""
- type: entity
- parent: BookBase
- id: BookEscalation
- name: Robert's Rules of Escalation
- description: The book is stained with blood. It seems to have been used more as a weapon than reading material.
- components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book2
- - type: MeleeWeapon
- wideAnimationRotation: 180
- damage:
- types:
- Blunt: 6
- - type: Paper
- content: book-text-escalation
-
-- type: entity
- parent: BookBase
- id: BookEscalationSecurity
- name: "Robert's Rules of Escalation: Security Edition"
- description: The book is stained with blood. It seems to have been used more as a weapon than reading material.
+ parent: BookRandom
+ id: BookRandomStory
+ suffix: random visual, random story
components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book2
- - type: MeleeWeapon
- wideAnimationRotation: 180
- damage:
- types:
- Blunt: 6
- - type: Paper
- content: book-text-escalation-security
-
+ - type: PaperRandomStory
+ storySegments:
+ - "This is a "
+ - book_genre
+ - " about a "
+ - book_character_trait
+ - " "
+ - book_character
+ - " and "
+ - book_character_trait
+ - " "
+ - book_character
+ - ". Due to "
+ - book_event
+ - ", they "
+ - book_action_trait
+ - " "
+ - book_action
+ - " "
+ - book_character
+ - " "
+ - book_location
+ - ". \n\n"
+ - book_story_element
+ - " is "
+ - book_story_element_trait
+ - "."
+ storySeparator: ""
+
- type: entity
parent: BookBase
id: BookAtmosDistro
name: "Newton's Guide to Atmos: The Distro"
description: There are endless illegible notes scribbled in the margins. Most of the text is covered in handwritten question marks.
components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book5
- - type: Paper
- content: book-text-atmos-distro
+ - type: Sprite
+ sprite: Objects/Misc/books.rsi
+ layers:
+ - state: paper
+ - state: cover_base
+ color: "#366ed6"
+ - state: decor_wingette
+ color: "#2739b0"
+ - state: icon_atmos
+ - state: icon_corner
+ color: gold
+ - type: Paper
+ content: book-text-atmos-distro
- type: entity
parent: BookBase
@@ -338,12 +478,19 @@
name: "Newton's Guide to Atmos: Waste"
description: There are endless illegible notes scribbled in the margins. Most of the text is covered in handwritten question marks.
components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book5
- - type: Paper
- content: book-text-atmos-waste
+ - type: Sprite
+ sprite: Objects/Misc/books.rsi
+ layers:
+ - state: paper
+ - state: cover_base
+ color: "#db233f"
+ - state: decor_wingette
+ color: "#ab0730"
+ - state: icon_atmos
+ - state: icon_corner
+ color: gold
+ - type: Paper
+ content: book-text-atmos-waste
- type: entity
parent: BookBase
@@ -351,12 +498,19 @@
name: "Newton's Guide to Atmos: Air Alarms"
description: There are endless illegible notes scribbled in the margins. Most of the text is covered in handwritten question marks.
components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book5
- - type: Paper
- content: book-text-atmos-alarms
+ - type: Sprite
+ sprite: Objects/Misc/books.rsi
+ layers:
+ - state: paper
+ - state: cover_base
+ color: "#bfb328"
+ - state: decor_wingette
+ color: "#9c7c14"
+ - state: icon_atmos
+ - state: icon_corner
+ color: gold
+ - type: Paper
+ content: book-text-atmos-alarms
- type: entity
parent: BookBase
@@ -364,9 +518,16 @@
name: "Newton's Guide to Atmos: Vents and More"
description: There are endless illegible notes scribbled in the margins. Most of the text is covered in handwritten question marks.
components:
- - type: Sprite
- sprite: Objects/Misc/books.rsi
- layers:
- - state: book5
- - type: Paper
- content: book-text-atmos-vents
+ - type: Sprite
+ sprite: Objects/Misc/books.rsi
+ layers:
+ - state: paper
+ - state: cover_base
+ color: "#3ec78e"
+ - state: decor_wingette
+ color: "#28a15a"
+ - state: icon_atmos
+ - state: icon_corner
+ color: gold
+ - type: Paper
+ content: book-text-atmos-vents
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml b/Resources/Prototypes/Entities/Objects/Misc/books_author.yml
similarity index 68%
rename from Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml
rename to Resources/Prototypes/Entities/Objects/Misc/books_author.yml
index 70d984240eae77..9adb14f4ebe69f 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/books_author.yml
@@ -5,9 +5,19 @@
description: The book is an old, leather-bound tome with intricate engravings on the cover. The pages are yellowed and fragile with age, with the ink of the text faded in some places. It appears to have been well-read and well-loved, with dog-eared pages and marginalia scrawled in the margins. Despite its aged appearance, the book still exudes a sense of mystical power and wonder, hinting at the secrets and knowledge contained within its pages.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_narsie_legend
+ - state: paper
+ - state: cover_old
+ color: "#a6161d"
+ - state: decor_bottom
+ color: "#6e1022"
+ - state: decor_wingette
+ color: "#4a101b"
+ - state: icon_pentagramm
+ color: "#911129"
+ - state: detail_bookmark
+ color: red
- type: Paper
content: book-text-narsielegend
@@ -18,9 +28,18 @@
description: A book exploring the different philosophical perspectives on truth and lying has a worn cover, with creases and marks indicating frequent use and thoughtful contemplation. The spine shows signs of wear from being pulled off the shelf again and again. The pages themselves are filled with underlines, notes in the margins, and highlighted passages as readers grapple with the nuances and complexities of the topic.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_truth
+ - state: paper
+ - state: cover_strong
+ color: "#c9752a"
+ - state: decor_diagonal
+ color: "#cf792d"
+ - state: decor_wingette_circle
+ color: gold
+ - state: icon_question
+ - state: detail_bookmark
+ color: "#cf792d"
- type: Paper
content: book-text-truth
@@ -31,9 +50,15 @@
description: The book is a well-preserved hardcover with a simple, elegant design on the cover, depicting the image of a world in motion. The pages are crisp and clean, with no signs of wear or tear, suggesting that it has been well-cared for and valued by its previous owner. The text is printed in a clear, legible font, and the chapters are organized in a logical and easy-to-follow manner, making it accessible to readers of all levels of expertise.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_world
+ - state: paper
+ - state: cover_base
+ color: "#215e9e"
+ - state: icon_planet
+ - state: icon_text
+ - state: detail_bookmark
+ color: "#2dab24"
- type: Paper
content: book-text-world
@@ -44,9 +69,16 @@
description: The book is a small paperback in good condition, with an illustration of Ian the corgi and the colony of penguins on the cover. The title, "Ian and Robert's Antarctic Adventure", is written in bold white letters against a blue background. The back cover features a brief summary of the story, highlighting the themes of humility, resilience, and the beauty of nature.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_antarctica
+ - state: paper
+ - state: cover_base
+ color: "#5779c9"
+ - state: icon_stars2
+ - state: decor_bottom
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-antarctica
@@ -57,9 +89,18 @@
description: The book looks new, with a glossy cover featuring Chuckles the clown and Snuggles the sloth floating in space with a backdrop of stars and planets. Chuckles is dressed in his banana costume and Snuggles is sleeping on a hammock made of space ropes. The title "The Sloth and the Clown - Space Station Shenanigans" is written in bold and colorful letters.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_scsss
+ - state: paper
+ - state: cover_base
+ color: "#e838b9"
+ - state: decor_wingette
+ color: "#ab22ba"
+ - state: decor_spine
+ color: "#f7cc2f"
+ - state: icon_banana
+ - state: detail_bookmark
+ color: "#f7cc2f"
- type: Paper
content: book-text-sloth-clown-sss
@@ -70,9 +111,18 @@
description: The book is in excellent condition, with crisp pages and a bright cover. The cover of the book features Chuckles and Snuggles, surrounded by the different species they encountered during their adventures in space. In the background, the Zorgs can be seen peeking out from behind a spaceship.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_scpz
+ - state: paper
+ - state: cover_base
+ color: "#f7cc2f"
+ - state: decor_wingette
+ color: "#ab22ba"
+ - state: decor_spine
+ color: "#e838b9"
+ - state: icon_banana
+ - state: detail_bookmark
+ color: "#ab22ba"
- type: Paper
content: book-text-sloth-clown-pz
@@ -83,9 +133,18 @@
description: The book looks new and vibrant, with an image of Chuckles and Snuggles standing in front of the changing maze on the cover. The title "The Sloth and the Clown - Maze Maze Danger" is written in bold, colorful letters that pop against a background of space and stars.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_scmmd
+ - state: paper
+ - state: cover_base
+ color: "#e838b9"
+ - state: decor_wingette
+ color: "#ab22ba"
+ - state: decor_spine
+ color: "#f7cc2f"
+ - state: icon_scmmd
+ - state: detail_bookmark
+ color: "#ab22ba"
- type: Paper
content: book-text-sloth-clown-mmd
@@ -96,9 +155,21 @@
description: The cover of the book is an electrifying image of lightning striking the ground, with a silhouette of a person standing in the midst of it. The title is written in bold letters in white against a black background, conveying the power and intensity of the experience. The subtitle is written in smaller letters below the title, providing a hint of the philosophical and spiritual themes explored within.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_struck
+ - state: paper
+ - state: cover_strong
+ color: "#2c384d"
+ - state: decor_wingette
+ color: "#3a4a66"
+ - state: decor_wingette_circle
+ color: "#6d7c9c"
+ - state: icon_glow
+ color: "#f7bb2f"
+ - state: icon_lightning
+ color: "#f7bb2f"
+ - state: detail_bookmark
+ color: "#f7bb2f"
- type: Paper
content: book-text-struck
@@ -109,9 +180,20 @@
description: The book is new, with a bright and vibrant cover featuring a plant stretching its leaves towards the sun. The title, "Reaching for the Sun - A Plant's Quest for Life," is written in bold, green letters, with an image of the sun rising behind the plant. The cover evokes a sense of growth, energy, and the beauty of nature.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_sun
+ - state: paper
+ - state: cover_base
+ color: "#255c8a"
+ - state: decor_bottom
+ color: "#2d2e12"
+ - state: icon_glow
+ color: "#f7bb2f"
+ - state: icon_cabbage
+ - state: detail_bookmark
+ color: "#f7bb2f"
+ - state: detail_rivets
+ color: "#f7bb2f"
- type: Paper
content: book-text-sun
@@ -122,9 +204,15 @@
description: The book is in good condition, with a hardcover and a dark green forest background. In the center of the cover, there is a sad looking possum sitting on a branch, with a distant and lonely expression on its face. The title, "Fallen Ambitions - The Tragic Tale of Morty the Possum," is written in bold, gold letters above the possum.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_possum
+ - state: paper
+ - state: cover_old
+ color: "#a3bfae"
+ - state: icon_possum
+ - state: detail_bookmark
+ color: "#2b593d"
+ - state: overlay_blood
- type: Paper
content: book-text-possum
@@ -135,9 +223,14 @@
description: The book is in new condition, with a vibrant and whimsical cover that features a charming illustration of a tiny possum peeking out from behind a coffee cup, with a colorful and bustling cafe scene in the background. The title "The Cafe Possum" is written in bold, playful lettering, and the author's name is printed in a smaller font below it.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_cafe
+ - state: paper
+ - state: cover_strong
+ color: "#e8ab6d"
+ - state: icon_possum
+ - state: detail_bookmark
+ color: "#2b593d"
- type: Paper
content: book-text-cafe
@@ -150,7 +243,15 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book4
+ - state: paper
+ - state: cover_strong
+ color: "#abebed"
+ - state: decor_wingette
+ color: "#a081cc"
+ - state: icon_atmos
+ - state: icon_magic
+ - state: detail_bookmark
+ color: "#7396f5"
- type: Paper
content: book-text-feather
@@ -161,9 +262,16 @@
description: The book is a new condition with a colorful cover, depicting Ian the corgi and Renault the fox on a journey through the forest, with the lost wolf pup to their feet. The title "The Adventures of Ian and Renault - Finding the Lost Wolf Pup" is prominently displayed at the top, with the author's name below. The cover has a whimsical and adventurous feel to it, attracting readers of all ages.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_wolfpup
+ - state: paper
+ - state: cover_base
+ color: "#3a9e57"
+ - state: decor_bottom
+ color: "#1c6330"
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-wolfpup
@@ -174,9 +282,16 @@
description: The book appears to be new, with crisp pages and an unblemished cover. The cover features a colorful illustration of Ian and Renault, surrounded by various animals they encountered on the ranch, including horses, cows, and chickens. The title, "The Adventures of Ian and Renault - Ranch Expedition," is written in bold letters above the image, with the subtitle, "Helping Animals in Need," written below.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_ranch
+ - state: paper
+ - state: cover_base
+ color: "#ccab64"
+ - state: decor_bottom
+ color: "#946e38"
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-ranch
@@ -187,9 +302,16 @@
description: The book is new and in excellent condition. The cover shows Ian and Renault running and playing on the beach, with the blue ocean and golden sand in the background. The title is written in bold, playful letters, and the subtitle reads "An Ocean Adventure."
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_ocean
+ - state: paper
+ - state: cover_base
+ color: "#567cd6"
+ - state: decor_bottom
+ color: "#272782"
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-ocean
@@ -200,9 +322,15 @@
description: The book is in new condition. The cover is a stunning mountain landscape with Ian and Renault in the foreground, looking out over the vista of the surrounding peaks and valleys. The title is written in bold, block letters at the top, with the subtitle, "A Mountain Expedition," written underneath.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_mountain
+ - state: paper
+ - state: cover_base
+ color: "#86b4d9"
+ - state: icon_mount
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-mountain
@@ -213,9 +341,16 @@
description: The book is in new condition, with crisp pages and a glossy cover. The cover features a colorful illustration of Ian and Renault exploring the city, with tall buildings and bustling streets in the background. Ian is leading the way, with his tail wagging excitedly, while Renault follows close behind, her ears perked up and her eyes wide with wonder. The title, "The Adventures of Ian and Renault," is written in bold, playful letters, with the subtitle, "Exploring the City," written below in smaller font.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_city
+ - state: paper
+ - state: cover_base
+ color: "#9a9b9c"
+ - state: decor_bottom
+ color: "#5f6061"
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-city
@@ -226,9 +361,16 @@
description: The book looks new and adventurous, with a picture of Ian and Renault standing in front of an icy landscape with snowflakes falling all around them. The title, "The Adventures of Ian and Renault," is written in bold letters at the top, with a subtitle that reads, "An Arctic Journey of Courage and Friendship."
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_arctic
+ - state: paper
+ - state: cover_base
+ color: "#5779c9"
+ - state: icon_stars2
+ - state: decor_bottom
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-arctic
@@ -239,9 +381,16 @@
description: The book is in new condition and would have a colorful cover depicting Ian and Renault against a desert backdrop. The cover would feature images of various animals and plants that the two encountered on their adventure, such as a rattlesnake, coyotes, sand dunes, and an oasis. The title, "The Adventures of Ian and Renault" is prominently displayed on the cover in bold letters, while the subtitle "Exploring the Mysterious Desert" is written in smaller letters underneath.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_ian_desert
+ - state: paper
+ - state: cover_base
+ color: "#507bad"
+ - state: decor_bottom
+ color: "#bd9a55"
+ - state: icon_ian
+ - state: detail_bookmark
+ color: "#ab5e24"
- type: Paper
content: book-text-ian-desert
@@ -252,9 +401,15 @@
description: The book is a gently used philosophy text, with a cover that features a close-up of a person's mouth, with the word "names" written on their lips. The title is "The Power of Names - A Philosophical Exploration," and the author's name is prominently displayed underneath. The overall design is simple and elegant, with the focus on the text rather than any flashy graphics or images.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_names
+ - state: paper
+ - state: cover_base
+ color: "#8c8c8c"
+ - state: decor_wingette_circle
+ - state: icon_letter_N
+ - state: detail_bookmark
+ - state: overlay_dirt
- type: Paper
content: book-text-names
@@ -265,9 +420,19 @@
description: The book is in good condition, with a slightly faded cover due to exposure to sunlight. The cover of the book depicts a panoramic view of the Earth from space, with a bright blue ocean and green landmasses. In the foreground, a lone astronaut is seen sitting in front of a window, gazing wistfully at the Earth. The title of the book, "Earthly Longing," is written in bold white letters against a black background at the top of the cover.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_earth
+ - state: paper
+ - state: cover_strong
+ color: "#0f204f"
+ - state: decor_wingette_circle
+ color: "#2c5491"
+ - state: decor_vertical_middle
+ color: "#3c6ab0"
+ - state: icon_planet
+ - state: icon_text3
+ - state: detail_bookmark
+ color: "#2c5491"
- type: Paper
content: book-text-earth
@@ -278,9 +443,21 @@
description: The book is in excellent condition, with a shiny cover depicting a spaceship hovering above a planet, perhaps with the Earth in the background. The title "Journey Beyond - The Starship Aurora Mission" is written in bold, silver letters. The cover also features a quote from a review, "A breathtaking tale of human achievement and exploration" to entice potential readers.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_aurora
+ - state: paper
+ - state: cover_base
+ color: "#0f204f"
+ - state: decor_vertical_middle
+ color: "#3c6ab0"
+ - state: decor_spine
+ color: "#3c6ab0"
+ - state: icon_stars2
+ - state: icon_aurora
+ - state: detail_bookmark
+ color: "#2c5491"
+ - state: detail_rivets
+ color: "#799dd4"
- type: Paper
content: book-text-aurora
@@ -291,9 +468,18 @@
description: The book appears new with crisp pages and an uncreased spine. The cover features an image of a temple with a glowing, multicolored aura around it, symbolizing the various gods discussed in the book. The title is displayed prominently in gold lettering, with the author's name and a brief summary of the book written in smaller text below.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_temple
+ - state: paper
+ - state: cover_base
+ color: "#542e80"
+ - state: decor_vertical_middle
+ color: "#39205e"
+ - state: decor_wingette_circle
+ color: "#914fb8"
+ - state: icon_temple
+ - state: detail_bookmark
+ color: "#bfbfbf"
- type: Paper
content: book-text-temple
@@ -304,9 +490,18 @@
description: The book is in good condition, with a slightly worn cover that features a dark and ominous space station looming in the background. The title "Watched" is written in bold letters that seem to be staring back at the reader, conveying the feeling of being constantly observed. The blurb on the back cover hints at a thrilling and suspenseful tale of paranoia and danger in a confined setting.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_watched
+ - state: paper
+ - state: cover_base
+ color: "#611e10"
+ - state: overlay_dirt
+ color: "#4f1206"
+ - state: decor_wingette_circle
+ color: "#241e1d"
+ - state: icon_eye
+ - state: detail_bookmark
+ color: "#bfbfbf"
- type: Paper
content: book-text-watched
@@ -317,9 +512,17 @@
description: The cover features Smith, the medical officer, in his uniform, looking determined and ready to face any challenge. The backdrop shows the SS Horizon under attack, with explosions and smoke filling the space station. In the foreground, a wizard with a staff can be seen, adding an element of mystery and intrigue to the scene. The title is prominently displayed in bold letters, with the author's name and a tagline indicating the book's action-packed and suspenseful nature.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_medical
+ - state: paper
+ - state: cover_base
+ color: "#d7dadb"
+ - state: decor_wingette_circle
+ color: "#55b0d4"
+ - state: icon_medical_cross
+ color: "#55b0d4"
+ - state: detail_bookmark
+ color: "#55b0d4"
- type: Paper
content: book-text-medical-officer
@@ -330,9 +533,16 @@
description: The book looks old and worn, with faded lettering on the cover. The cover depicts a dark and eerie morgue, with a full moon casting an ominous glow over the scene. In the foreground are Morty the possum and Morticia the raccoon, with mischievous expressions on their faces, peeking out from behind a metal shelf. The title is written in bold, spooky letters, with the subtitle "A Tale of Animal Spirits" written in smaller font below.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_morgue
+ - state: paper
+ - state: cover_old
+ color: "#d7dadb"
+ - state: icon_text2
+ color: "#61363d"
+ - state: overlay_dirt
+ - state: detail_bookmark
+ color: "#61363d"
- type: Paper
content: book-text-morgue
@@ -343,9 +553,21 @@
description: The book is in new condition, with vibrant colors and illustrations on the cover. The cover shows Rufus on his bicycle, with Blossom flying beside him in a playful manner. The title is written in bold, whimsical font, with the characters' names highlighted in a contrasting color. The overall aesthetic is charming and inviting, appealing to children and adults alike.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_rufus
+ - state: paper
+ - state: cover_base
+ color: "#6597c9"
+ - state: decor_bottom
+ color: "#113a63"
+ - state: decor_diagonal
+ color: "#113a63"
+ - state: icon_text3
+ color: "#ffde7d"
+ - state: detail_bookmark
+ color: "#61363d"
+ - state: detail_rivets
+ color: "#ffde7d"
- type: Paper
content: book-text-rufus
@@ -356,9 +578,19 @@
description: The book is in a good condition, with a glossy cover depicting a jungle scene with vibrant colors and intricate details. The title "The Map of Adventure," is written in bold, gold lettering. The cover also features an image of a mysterious suitcase with the map spilling out of it.
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_map
+ - state: paper
+ - state: cover_base
+ color: "#56c463"
+ - state: icon_briefcase
+ - state: decor_wingette
+ color: "#298033"
+ - state: icon_briefcase
+ - state: detail_bookmark
+ color: "#61363d"
+ - state: detail_rivets
+ color: "#ffde7d"
- type: Paper
content: book-text-map
@@ -369,9 +601,17 @@
description: The book is in excellent condition, with crisp pages and a glossy cover. The cover features a striking image of a mountain range, with a silhouette of a climber with a guitar on their back in the foreground. The title is bold and eye-catching, with the subtitle "A Journey of Music, Mountains, and Self-Discovery."
components:
- type: Sprite
- sprite: Objects/Misc/authorbooks.rsi
+ sprite: Objects/Misc/books.rsi
layers:
- - state: book_journ_mount
+ - state: paper
+ - state: cover_base
+ color: "#9bc1c9"
+ - state: icon_briefcase
+ - state: icon_mount
+ - state: detail_bookmark
+ color: "#61363d"
+ - state: detail_rivets
+ color: "#ffde7d"
- type: Paper
content: book-text-journ-mount
@@ -384,7 +624,16 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book6
+ - state: paper
+ - state: cover_base
+ color: "#1d662c"
+ - state: decor_spine
+ color: "#2a8c58"
+ - state: icon_glow
+ color: "#b9edc4"
+ - state: icon_tree
+ - state: detail_bookmark
+ color: "#61363d"
- type: Paper
content: book-text-inspiration
@@ -397,7 +646,14 @@
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- - state: book0
+ - state: paper
+ - state: cover_old
+ color: "#c526de"
+ - state: decor_wingette
+ - state: icon_bucket
+ - state: detail_bookmark
+ color: "#61363d"
+ - state: overlay_dirt
- type: Paper
content: book-text-janitor
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml
index 5a2587ff710e41..6e5362d9bbbafe 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml
@@ -66,9 +66,6 @@
bodyType: KinematicController
- type: Clickable
- type: WiresPanel
- - type: Wires #we just want the panel
- boardName: wires-board-name-mech
- layoutId: Mech
- type: Fixtures
fixtures:
fix1:
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
index 79ce03f7006b5a..71e0cf645038f3 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
@@ -710,6 +710,10 @@
parent: Pill
id: PillAmbuzolPlus
components:
+ - type: Pill
+ pillType: 2
+ - type: Sprite
+ state: pill3
- type: SolutionContainerManager
solutions:
food:
diff --git a/Resources/Prototypes/Entities/Stations/base.yml b/Resources/Prototypes/Entities/Stations/base.yml
index e71b3ce46d551e..c3fbb998b28802 100644
--- a/Resources/Prototypes/Entities/Stations/base.yml
+++ b/Resources/Prototypes/Entities/Stations/base.yml
@@ -120,4 +120,4 @@
id: BaseStationAllEventsEligible
abstract: true
components:
- - type: StationEventEligible # For when someone makes this more granular in the future.
+ - type: StationEventEligible # For when someone makes this more granular in the future.
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
index d87c5e700abe2b..d661009b6dc5a8 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
@@ -71,5 +71,4 @@
beakerSlot: !type:ContainerSlot
- type: StaticPrice
price: 1000
- - type: Wires
- type: WiresPanel
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml b/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml
index 1583bc451de64b..7bc12ca966e383 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml
@@ -19,9 +19,6 @@
noRot: false
- type: Machine
board: BoozeDispenserMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-booze
- layoutId: BoozeDispenser
- type: GuideHelp
guides:
- Bartender
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml
index 6c70cf9bcace3e..681f0a390c8f4a 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml
@@ -31,9 +31,6 @@
acts: ["Destruction"]
- type: Machine
board: ChemDispenserMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-chemdispenser
- layoutId: ChemDispenser
- type: GuideHelp
guides:
- Chemicals
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml b/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml
index 323480506fa1b1..72468973ee41dc 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml
@@ -19,9 +19,6 @@
noRot: false
- type: Machine
board: SodaDispenserMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-soda
- layoutId: SodaDispenser
- type: GuideHelp
guides:
- Bartender
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
index 0dd65ab4d07039..a678ab74438037 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
@@ -22,7 +22,7 @@
- type: RCDDeconstructable
cost: 4
delay: 6
- fx: EffectRCDDeconstruct6
+ fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:
@@ -87,9 +87,6 @@
- type: Appearance
- type: WiresVisuals
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-firelock
- layoutId: Firelock
- type: UserInterface
interfaces:
- key: enum.WiresUiKey.Key
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml
index e2c210e7e6bed4..23789730d0c491 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Medical/chemistry_machines.yml
@@ -29,8 +29,6 @@
components:
- FitsInDispenser
- type: Machine
- - type: Wires
- layoutId: chem
- type: WiresPanel
- type: WiresVisuals
- type: ContainerContainer
diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml
index 0064e7a4ae95d5..ab09a03fef7352 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml
@@ -37,9 +37,6 @@
color: "#fca3c0"
- type: Appearance
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-vessel
- layoutId: Vessel
- type: AmbientSound
enabled: false
range: 3
@@ -198,9 +195,6 @@
- type: Appearance
- type: WiresPanel
- type: WiresVisuals
- - type: Wires
- boardName: wires-board-name-ape
- layoutId: Ape
- type: GenericVisualizer
visuals:
enum.PowerDeviceVisuals.Powered:
@@ -290,9 +284,6 @@
fuelCost: 10
doAfterDelay: 5
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-anomalygenerator
- layoutId: AnomalyGenerator
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml b/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml
index 1b183661f51682..b00d6d89862f12 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml
@@ -143,9 +143,6 @@
Blunt: 10
- type: Machine
board: ArtifactCrusherMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-crusher
- layoutId: Crusher
- type: WiresPanel
- type: Sprite
sprite: Structures/Machines/artifact_crusher.rsi
diff --git a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
index d7df219663e6e7..aee124602140e2 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
@@ -63,9 +63,6 @@
False: { visible: false }
# Machine / Construction stuff
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-chemmaster
- layoutId: chem_master
- type: Machine
board: ChemMasterMachineCircuitboard
- type: ContainerContainer
diff --git a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
index 5d9ab0dd7e48b5..0451b394909827 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
@@ -52,9 +52,6 @@
materialWhiteList:
- Biomass
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-cloningpod
- layoutId: CloningPod
- type: ApcPowerReceiver
powerLoad: 200 #Receives most of its power from the console
- type: Appearance
diff --git a/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml b/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml
index 9f09e49059c252..fc417e68d6c35b 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml
@@ -98,9 +98,6 @@
- type: Machine
board: FatExtractorMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-fatextractor
- layoutId: FatExtractor
- type: Appearance
- type: Speech
speechVerb: Robotic
diff --git a/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml b/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml
index 54a32db69f5311..3244789a028fee 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml
@@ -52,9 +52,6 @@
path: /Audio/Items/rped.ogg
- type: WiresPanel
- type: WiresVisuals
- - type: Wires
- boardName: wires-board-name-flatpacker
- layoutId: Flatpacker
- type: Appearance
- type: ActivatableUI
key: enum.FlatpackCreatorUIKey.Key
diff --git a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml
index 2eb4f57fab5c15..aebc4b03def0ca 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml
@@ -120,9 +120,6 @@
min: 1
max: 1
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-minigravitygenerator
- layoutId: MiniGravityGenerator
- type: Machine
board: MiniGravityGeneratorCircuitboard
- type: ApcPowerReceiver
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index 5a32839a47c864..c32f2992f9455c 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -33,9 +33,6 @@
- !type:DoActsBehavior
acts: ["Destruction"]
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-autolathe
- layoutId: Autolathe
- type: ActivatableUI
key: enum.LatheUiKey.Key
- type: ActivatableUIRequiresPower
@@ -239,9 +236,6 @@
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Machine
board: ProtolatheMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-protolathe
- layoutId: Protolathe
- type: MaterialStorage
whitelist:
tags:
diff --git a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml
index 028e348fd49bea..9a9c5283c09bdd 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml
@@ -61,9 +61,6 @@
- type: Machine
board: MaterialReclaimerMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-reclaimer
- layoutId: Reclaimer
- type: MaterialReclaimer
whitelist:
components:
diff --git a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml
index 6f05baee94447f..de19db96b52bfd 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml
@@ -69,9 +69,6 @@
- type: Machine
board: MedicalScannerMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-medicalscanner
- layoutId: MedicalScanner
- type: Appearance
- type: Climbable
- type: ApcPowerReceiver
diff --git a/Resources/Prototypes/Entities/Structures/Machines/research.yml b/Resources/Prototypes/Entities/Structures/Machines/research.yml
index 7b369f62cc980c..83525a0510cdbe 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/research.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/research.yml
@@ -23,8 +23,6 @@
priority: Low
- type: ExtensionCableReceiver
- type: WiresPanel
- - type: Wires
- layoutId: rndserver
- type: WiresVisuals
- type: Machine
board: ResearchAndDevelopmentServerMachineCircuitboard
diff --git a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml
index e12826a8ce4cf3..6cc1fc79814b8c 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml
@@ -51,9 +51,6 @@
- type: Machine
board: TelecomServerCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-telecomserver
- layoutId: TelecomServer
- type: Transform
anchored: true
- type: Pullable
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
index c2f8fa339da124..4ee78f1213f6aa 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
@@ -206,7 +206,7 @@
visuals:
# toggle color of the unshaded light:
enum.OutletInjectorVisuals.Enabled:
- unshaded:
+ enum.LightLayers.Unshaded:
True: { color: "#5eff5e" }
False: { color: "#990000" }
- type: Appearance
@@ -245,9 +245,6 @@
inHandsOnly: false
key: enum.ThermomachineUiKey.Key
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-thermomachine
- layoutId: Thermomachine
- type: WiresVisuals
- type: NodeContainer
nodes:
@@ -430,9 +427,6 @@
- type: Machine
board: CondenserMachineCircuitBoard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-condenser
- layoutId: Condenser
- type: WiresVisuals
- type: Destructible
thresholds:
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml
index 0c8afc87a407ef..dbaacd6abc2ed9 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml
@@ -42,9 +42,6 @@
# Construction, interaction
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-generator
- layoutId: Generator
- type: UserInterface
interfaces:
- key: enum.GeneratorComponentUiKey.Key
@@ -356,4 +353,4 @@
damage: 75
behaviors:
- !type:SolutionExplosionBehavior
- solution: tank
\ No newline at end of file
+ solution: tank
diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml
index 7efa53e2542abd..4df502791f3125 100644
--- a/Resources/Prototypes/Entities/Structures/Power/apc.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml
@@ -97,9 +97,6 @@
supplyRampRate: 500
- type: WallMount
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-apc
- layoutId: APC
- type: WiresVisuals
- type: Damageable
damageContainer: Inorganic
diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml
index 388cc3c9874873..582a5b0dee4f55 100644
--- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml
@@ -83,9 +83,6 @@
visible: false
- type: Machine
board: CellRechargerCircuitboard
- - type: Wires
- boardName: wires-board-name-recharger
- layoutId: Recharger
- type: WiresPanel
- type: GenericVisualizer
visuals:
@@ -250,8 +247,6 @@
- machine_parts
- machine_board
- entity_storage
- - type: Wires
- layoutId: borgcharger
- type: WiresPanel
- type: WiresVisuals
- type: Machine
diff --git a/Resources/Prototypes/Entities/Structures/Power/smes.yml b/Resources/Prototypes/Entities/Structures/Power/smes.yml
index c2170a127adf58..1e3559e5a95a47 100644
--- a/Resources/Prototypes/Entities/Structures/Power/smes.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/smes.yml
@@ -67,9 +67,6 @@
color: "#c9c042"
castShadows: false
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-smes
- layoutId: SMES
- type: Machine
board: SMESMachineCircuitboard
- type: StationInfiniteBatteryTarget
diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml
index 94de12be1859e0..4bd0bec5ea05d2 100644
--- a/Resources/Prototypes/Entities/Structures/Power/substation.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml
@@ -92,9 +92,6 @@
intensitySlope: 2
totalIntensity: 200
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-substation
- layoutId: Substation
- type: Machine
board: SubstationMachineCircuitboard
- type: StationInfiniteBatteryTarget
diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml
index 99574ab7be18d0..c7b3e8ab5d4936 100644
--- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml
+++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml
@@ -123,11 +123,11 @@
castShadows: false
- type: GravityAnomaly
- type: GravityWell
- - type: RadiationSource
+ - type: RadiationSource
- type: Physics
bodyType: Dynamic
bodyStatus: InAir
- - type: CanMoveInAir
+ - type: CanMoveInAir
- type: RandomWalk
- type: SingularityDistortion
intensity: 1000
@@ -164,6 +164,8 @@
- type: Anomaly
corePrototype: AnomalyCoreFlesh
coreInertPrototype: AnomalyCoreFleshInert
+ minPulseLength: 180
+ maxPulseLength: 300
- type: Sprite
layers:
- state: anom5
@@ -355,6 +357,8 @@
- type: Anomaly
corePrototype: AnomalyCoreRock
coreInertPrototype: AnomalyCoreRockInert
+ minPulseLength: 180
+ maxPulseLength: 300
- type: Sprite
layers:
- state: anom6
@@ -605,6 +609,8 @@
offset: 0, 0
corePrototype: AnomalyCoreFlora
coreInertPrototype: AnomalyCoreFloraInert
+ minPulseLength: 60
+ maxPulseLength: 120
anomalyContactDamage:
types:
Slash: 0
@@ -709,6 +715,8 @@
- type: Anomaly
corePrototype: AnomalyCoreLiquid
coreInertPrototype: AnomalyCoreLiquidInert
+ minPulseLength: 60
+ maxPulseLength: 120
anomalyContactDamage:
types:
Slash: 1
@@ -822,6 +830,8 @@
- type: Anomaly
corePrototype: AnomalyCoreShadow
coreInertPrototype: AnomalyCoreShadowInert
+ minPulseLength: 60
+ maxPulseLength: 120
anomalyContactDamage:
types:
Cold: 10
diff --git a/Resources/Prototypes/Entities/Structures/hydro_tray.yml b/Resources/Prototypes/Entities/Structures/hydro_tray.yml
index 1ab1fd5b2fdb8e..8ea7172d8b419e 100644
--- a/Resources/Prototypes/Entities/Structures/hydro_tray.yml
+++ b/Resources/Prototypes/Entities/Structures/hydro_tray.yml
@@ -81,9 +81,6 @@
- type: Machine
board: HydroponicsTrayMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-hydroponicstray
- layoutId: HydroponicsTray
- type: AmbientSound
volume: -9
range: 5
diff --git a/Resources/Textures/Objects/Magic/spellbooks.rsi/bookfireball.png b/Resources/Textures/Objects/Magic/spellbooks.rsi/bookfireball.png
deleted file mode 100644
index ed18010a728992..00000000000000
Binary files a/Resources/Textures/Objects/Magic/spellbooks.rsi/bookfireball.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Magic/spellbooks.rsi/bookforcewall.png b/Resources/Textures/Objects/Magic/spellbooks.rsi/bookforcewall.png
deleted file mode 100644
index 3f355989536165..00000000000000
Binary files a/Resources/Textures/Objects/Magic/spellbooks.rsi/bookforcewall.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Magic/spellbooks.rsi/bookknock.png b/Resources/Textures/Objects/Magic/spellbooks.rsi/bookknock.png
deleted file mode 100644
index 9f5d68af7d5b61..00000000000000
Binary files a/Resources/Textures/Objects/Magic/spellbooks.rsi/bookknock.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Magic/spellbooks.rsi/meta.json b/Resources/Textures/Objects/Magic/spellbooks.rsi/meta.json
deleted file mode 100644
index f9f1703f24c012..00000000000000
--- a/Resources/Textures/Objects/Magic/spellbooks.rsi/meta.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "version": 1,
- "license": "CC-BY-SA-3.0",
- "copyright": "https://github.com/Citadel-Station-13/Citadel-Station-13/commit/f3e328af032f0ba0234b866c24ccb0003e1a4993",
- "size": {
- "x": 32,
- "y": 32
- },
- "states": [
- {
- "name": "bookfireball",
- "delays": [
- [
- 0.1,
- 0.1,
- 0.1,
- 0.1
- ]
- ]
- },
- {
- "name": "bookforcewall",
- "delays": [
- [
- 0.1,
- 0.1
- ]
- ]
- },
- {
- "name": "bookknock",
- "delays": [
- [
- 0.1,
- 0.1,
- 0.1,
- 0.1,
- 0.1,
- 0.1
- ]
- ]
- },
- {
- "name": "spellbook"
- }
- ]
-}
\ No newline at end of file
diff --git a/Resources/Textures/Objects/Magic/spellbooks.rsi/spellbook.png b/Resources/Textures/Objects/Magic/spellbooks.rsi/spellbook.png
deleted file mode 100644
index d24f198f949f09..00000000000000
Binary files a/Resources/Textures/Objects/Magic/spellbooks.rsi/spellbook.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_aurora.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_aurora.png
deleted file mode 100644
index 0e342581380214..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_aurora.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_cafe.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_cafe.png
deleted file mode 100644
index 7a3b6667cf8660..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_cafe.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_earth.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_earth.png
deleted file mode 100644
index 8e29c3880a48af..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_earth.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_antarctica.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_antarctica.png
deleted file mode 100644
index 3843e200696334..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_antarctica.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_arctic.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_arctic.png
deleted file mode 100644
index ace42ee7dcb82d..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_arctic.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_city.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_city.png
deleted file mode 100644
index abd76a54704c2f..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_city.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_desert.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_desert.png
deleted file mode 100644
index 9a2d2ad6587d53..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_desert.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_mountain.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_mountain.png
deleted file mode 100644
index ee26df9e9ab6c3..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_mountain.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_ocean.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_ocean.png
deleted file mode 100644
index d70795ebd40ee6..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_ocean.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_ranch.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_ranch.png
deleted file mode 100644
index 7f6b3e86ddc47a..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_ranch.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_wolfpup.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_wolfpup.png
deleted file mode 100644
index df0b2350ae7c58..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_ian_wolfpup.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_journ_mount.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_journ_mount.png
deleted file mode 100644
index f266a2f0d9acb5..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_journ_mount.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_map.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_map.png
deleted file mode 100644
index fb880d9703802b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_map.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_medical.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_medical.png
deleted file mode 100644
index e94b6789fb54ce..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_medical.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_morgue.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_morgue.png
deleted file mode 100644
index 6b6c86cf0866e4..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_morgue.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_names.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_names.png
deleted file mode 100644
index f2396ac5279324..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_names.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_narsie_legend.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_narsie_legend.png
deleted file mode 100644
index fe7659f396f1f3..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_narsie_legend.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_possum.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_possum.png
deleted file mode 100644
index b169c180be074f..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_possum.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_rufus.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_rufus.png
deleted file mode 100644
index 22e936fb3f4aec..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_rufus.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scmmd.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scmmd.png
deleted file mode 100644
index 2430e1429079dc..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scmmd.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scpz.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scpz.png
deleted file mode 100644
index 0e09bb8f09fde7..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scpz.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scsss.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scsss.png
deleted file mode 100644
index 1262f51118ca08..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_scsss.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_struck.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_struck.png
deleted file mode 100644
index 144bef30ee3d47..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_struck.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_sun.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_sun.png
deleted file mode 100644
index 5e7c0fa9bcf75c..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_sun.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_temple.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_temple.png
deleted file mode 100644
index 6f68c1c2e239a5..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_temple.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_truth.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_truth.png
deleted file mode 100644
index 6f076f2ef00ec9..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_truth.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_watched.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_watched.png
deleted file mode 100644
index 693a4141abaeea..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_watched.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_world.png b/Resources/Textures/Objects/Misc/authorbooks.rsi/book_world.png
deleted file mode 100644
index 8793ef8dfa2ede..00000000000000
Binary files a/Resources/Textures/Objects/Misc/authorbooks.rsi/book_world.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/authorbooks.rsi/meta.json b/Resources/Textures/Objects/Misc/authorbooks.rsi/meta.json
deleted file mode 100644
index 0d8639d44fa7ca..00000000000000
--- a/Resources/Textures/Objects/Misc/authorbooks.rsi/meta.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- "version": 1,
- "license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/37fb6bc6dd20005775dde8d886f48f7722606b77 and modified by Kit0vras#5869 (Discord) / Kit0vras (Github)",
- "size": {
- "x": 32,
- "y": 32
- },
- "states": [
- {
- "name": "book_aurora"
- },
- {
- "name": "book_cafe"
- },
- {
- "name": "book_earth"
- },
- {
- "name": "book_temple"
- },
- {
- "name": "book_ian_antarctica"
- },
- {
- "name": "book_ian_arctic"
- },
- {
- "name": "book_ian_city"
- },
- {
- "name": "book_ian_desert"
- },
- {
- "name": "book_ian_mountain"
- },
- {
- "name": "book_ian_ocean"
- },
- {
- "name": "book_ian_ranch"
- },
- {
- "name": "book_ian_wolfpup"
- },
- {
- "name": "book_journ_mount"
- },
- {
- "name": "book_scmmd"
- },
- {
- "name": "book_medical"
- },
- {
- "name": "book_morgue"
- },
- {
- "name": "book_names"
- },
- {
- "name": "book_narsie_legend"
- },
- {
- "name": "book_possum"
- },
- {
- "name": "book_rufus"
- },
- {
- "name": "book_scsss"
- },
- {
- "name": "book_scpz"
- },
- {
- "name": "book_struck"
- },
- {
- "name": "book_sun"
- },
- {
- "name": "book_map"
- },
- {
- "name": "book_truth"
- },
- {
- "name": "book_watched"
- },
- {
- "name": "book_world"
- }
- ]
-}
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book0.png b/Resources/Textures/Objects/Misc/books.rsi/book0.png
deleted file mode 100644
index 0cc314ef9e03de..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book0.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book1.png b/Resources/Textures/Objects/Misc/books.rsi/book1.png
deleted file mode 100644
index ee3d9f91f01447..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book1.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book2.png b/Resources/Textures/Objects/Misc/books.rsi/book2.png
deleted file mode 100644
index 614791ac70e11b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book2.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book3.png b/Resources/Textures/Objects/Misc/books.rsi/book3.png
deleted file mode 100644
index ce11a89b0e39cc..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book3.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book4.png b/Resources/Textures/Objects/Misc/books.rsi/book4.png
deleted file mode 100644
index c5f1aba4f88fb3..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book4.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book5.png b/Resources/Textures/Objects/Misc/books.rsi/book5.png
deleted file mode 100644
index 18172241ccf543..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book5.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book6.png b/Resources/Textures/Objects/Misc/books.rsi/book6.png
deleted file mode 100644
index 1c95940aee796b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book6.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book7.png b/Resources/Textures/Objects/Misc/books.rsi/book7.png
deleted file mode 100644
index eee791db78f65d..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book7.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book8.png b/Resources/Textures/Objects/Misc/books.rsi/book8.png
deleted file mode 100644
index 6ba69a8c482c52..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book8.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_bar.png b/Resources/Textures/Objects/Misc/books.rsi/book_bar.png
deleted file mode 100644
index f522b7fd9b99b4..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_bar.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_boneworking.png b/Resources/Textures/Objects/Misc/books.rsi/book_boneworking.png
deleted file mode 100644
index 634a1c6f0af51e..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_boneworking.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_borg.png b/Resources/Textures/Objects/Misc/books.rsi/book_borg.png
deleted file mode 100644
index 8ba4772575f76b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_borg.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_chemistry.png b/Resources/Textures/Objects/Misc/books.rsi/book_chemistry.png
deleted file mode 100644
index 8ba953d4dedb46..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_chemistry.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_cloning.png b/Resources/Textures/Objects/Misc/books.rsi/book_cloning.png
deleted file mode 100644
index 52704aa249593d..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_cloning.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_cooking.png b/Resources/Textures/Objects/Misc/books.rsi/book_cooking.png
deleted file mode 100644
index 07433741fe2675..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_cooking.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_demonomicon.png b/Resources/Textures/Objects/Misc/books.rsi/book_demonomicon.png
deleted file mode 100644
index 607b144e8eb84b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_demonomicon.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_detective.png b/Resources/Textures/Objects/Misc/books.rsi/book_detective.png
deleted file mode 100644
index bc280e2d6a3f7e..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_detective.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_engineering.png b/Resources/Textures/Objects/Misc/books.rsi/book_engineering.png
deleted file mode 100644
index 9808e2d97fec7b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_engineering.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_engineering2.png b/Resources/Textures/Objects/Misc/books.rsi/book_engineering2.png
deleted file mode 100644
index 853eb6cca42712..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_engineering2.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_fish.png b/Resources/Textures/Objects/Misc/books.rsi/book_fish.png
deleted file mode 100644
index ab1fc080bf77bd..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_fish.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_hacking.png b/Resources/Textures/Objects/Misc/books.rsi/book_hacking.png
deleted file mode 100644
index 1642063f7e4bb3..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_hacking.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_hydroponics_pod_people.png b/Resources/Textures/Objects/Misc/books.rsi/book_hydroponics_pod_people.png
deleted file mode 100644
index df41d9621411fe..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_hydroponics_pod_people.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_icon.png b/Resources/Textures/Objects/Misc/books.rsi/book_icon.png
new file mode 100644
index 00000000000000..e3e77759dc915d
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/book_icon.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_infections.png b/Resources/Textures/Objects/Misc/books.rsi/book_infections.png
deleted file mode 100644
index 3f79f462371c5b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_infections.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_medical.png b/Resources/Textures/Objects/Misc/books.rsi/book_medical.png
deleted file mode 100644
index 7152cfe51c66ab..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_medical.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_nuclear.png b/Resources/Textures/Objects/Misc/books.rsi/book_nuclear.png
deleted file mode 100644
index dbf95833fdd79e..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_nuclear.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_origami.png b/Resources/Textures/Objects/Misc/books.rsi/book_origami.png
deleted file mode 100644
index 63344d2bf41e39..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_origami.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_particle_accelerator.png b/Resources/Textures/Objects/Misc/books.rsi/book_particle_accelerator.png
deleted file mode 100644
index a0fc564a6889db..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_particle_accelerator.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_science.png b/Resources/Textures/Objects/Misc/books.rsi/book_science.png
deleted file mode 100644
index 47047c958a032b..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_science.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_security.png b/Resources/Textures/Objects/Misc/books.rsi/book_security.png
deleted file mode 100644
index fb1a4028e8f4ac..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_security.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/book_space_law.png b/Resources/Textures/Objects/Misc/books.rsi/book_space_law.png
deleted file mode 100644
index 524f10b76c4719..00000000000000
Binary files a/Resources/Textures/Objects/Misc/books.rsi/book_space_law.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/cover_base.png b/Resources/Textures/Objects/Misc/books.rsi/cover_base.png
new file mode 100644
index 00000000000000..4f6f819a3a1169
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/cover_base.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/cover_old.png b/Resources/Textures/Objects/Misc/books.rsi/cover_old.png
new file mode 100644
index 00000000000000..7ad4bdf685c69d
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/cover_old.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/cover_strong.png b/Resources/Textures/Objects/Misc/books.rsi/cover_strong.png
new file mode 100644
index 00000000000000..61baf7b5778f12
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/cover_strong.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_bottom.png b/Resources/Textures/Objects/Misc/books.rsi/decor_bottom.png
new file mode 100644
index 00000000000000..65ce4aa6267bff
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_bottom.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_diagonal.png b/Resources/Textures/Objects/Misc/books.rsi/decor_diagonal.png
new file mode 100644
index 00000000000000..50f6f591834c15
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_diagonal.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_middle.png b/Resources/Textures/Objects/Misc/books.rsi/decor_middle.png
new file mode 100644
index 00000000000000..ca4ca82114c9c8
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_middle.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_spine.png b/Resources/Textures/Objects/Misc/books.rsi/decor_spine.png
new file mode 100644
index 00000000000000..5ebd7c769dc3da
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_spine.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_vertical_middle.png b/Resources/Textures/Objects/Misc/books.rsi/decor_vertical_middle.png
new file mode 100644
index 00000000000000..75f141ce40d4f6
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_vertical_middle.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_wingette.png b/Resources/Textures/Objects/Misc/books.rsi/decor_wingette.png
new file mode 100644
index 00000000000000..048a29388c6366
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_wingette.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_wingette_circle.png b/Resources/Textures/Objects/Misc/books.rsi/decor_wingette_circle.png
new file mode 100644
index 00000000000000..a9d9afc120782b
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_wingette_circle.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/decor_wingette_flat.png b/Resources/Textures/Objects/Misc/books.rsi/decor_wingette_flat.png
new file mode 100644
index 00000000000000..0ca0a4de6fd04f
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/decor_wingette_flat.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/detail_bookmark.png b/Resources/Textures/Objects/Misc/books.rsi/detail_bookmark.png
new file mode 100644
index 00000000000000..4541f8bc1d3a61
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/detail_bookmark.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/detail_rivets.png b/Resources/Textures/Objects/Misc/books.rsi/detail_rivets.png
new file mode 100644
index 00000000000000..53a4c8bef4ca75
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/detail_rivets.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_apple.png b/Resources/Textures/Objects/Misc/books.rsi/icon_apple.png
new file mode 100644
index 00000000000000..2316fb4e55c73b
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_apple.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_atmos.png b/Resources/Textures/Objects/Misc/books.rsi/icon_atmos.png
new file mode 100644
index 00000000000000..518623069e8e56
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_atmos.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_aurora.png b/Resources/Textures/Objects/Misc/books.rsi/icon_aurora.png
new file mode 100644
index 00000000000000..a0179d31be9b68
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_aurora.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_banana.png b/Resources/Textures/Objects/Misc/books.rsi/icon_banana.png
new file mode 100644
index 00000000000000..2c2a65741290b7
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_banana.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_bar.png b/Resources/Textures/Objects/Misc/books.rsi/icon_bar.png
new file mode 100644
index 00000000000000..3bb7e7631f9268
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_bar.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_biohazard.png b/Resources/Textures/Objects/Misc/books.rsi/icon_biohazard.png
new file mode 100644
index 00000000000000..a3ad873f614cd7
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_biohazard.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_borg.png b/Resources/Textures/Objects/Misc/books.rsi/icon_borg.png
new file mode 100644
index 00000000000000..4781ff3fe807ef
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_borg.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_briefcase.png b/Resources/Textures/Objects/Misc/books.rsi/icon_briefcase.png
new file mode 100644
index 00000000000000..cbbe1a74d91105
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_briefcase.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_bucket.png b/Resources/Textures/Objects/Misc/books.rsi/icon_bucket.png
new file mode 100644
index 00000000000000..df76b0550de759
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_bucket.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_cabbage.png b/Resources/Textures/Objects/Misc/books.rsi/icon_cabbage.png
new file mode 100644
index 00000000000000..e9c806f92e25fd
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_cabbage.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_chemical.png b/Resources/Textures/Objects/Misc/books.rsi/icon_chemical.png
new file mode 100644
index 00000000000000..3714784dac7f06
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_chemical.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_corner.png b/Resources/Textures/Objects/Misc/books.rsi/icon_corner.png
new file mode 100644
index 00000000000000..70b68d327ccd07
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_corner.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_diamond.png b/Resources/Textures/Objects/Misc/books.rsi/icon_diamond.png
new file mode 100644
index 00000000000000..268a659194e695
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_diamond.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_dna.png b/Resources/Textures/Objects/Misc/books.rsi/icon_dna.png
new file mode 100644
index 00000000000000..d8c1bb07b9b185
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_dna.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_eye.png b/Resources/Textures/Objects/Misc/books.rsi/icon_eye.png
new file mode 100644
index 00000000000000..11e47cd11d39a7
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_eye.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_fish.png b/Resources/Textures/Objects/Misc/books.rsi/icon_fish.png
new file mode 100644
index 00000000000000..7baaa1318568ee
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_fish.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_glow.png b/Resources/Textures/Objects/Misc/books.rsi/icon_glow.png
new file mode 100644
index 00000000000000..030f8188773d6e
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_glow.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_hacking.png b/Resources/Textures/Objects/Misc/books.rsi/icon_hacking.png
new file mode 100644
index 00000000000000..bd3602c4186f55
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_hacking.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_ian.png b/Resources/Textures/Objects/Misc/books.rsi/icon_ian.png
new file mode 100644
index 00000000000000..04109c50364105
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_ian.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_law.png b/Resources/Textures/Objects/Misc/books.rsi/icon_law.png
new file mode 100644
index 00000000000000..3843f9c4ad0efa
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_law.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_letter_N.png b/Resources/Textures/Objects/Misc/books.rsi/icon_letter_N.png
new file mode 100644
index 00000000000000..7b1888e8c6aa60
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_letter_N.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_letter_P.png b/Resources/Textures/Objects/Misc/books.rsi/icon_letter_P.png
new file mode 100644
index 00000000000000..12da61a0701403
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_letter_P.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_lightning.png b/Resources/Textures/Objects/Misc/books.rsi/icon_lightning.png
new file mode 100644
index 00000000000000..92a115d2b6bf25
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_lightning.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_magic.png b/Resources/Textures/Objects/Misc/books.rsi/icon_magic.png
new file mode 100644
index 00000000000000..80e61b35ad38ba
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_magic.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_magic_fireball.png b/Resources/Textures/Objects/Misc/books.rsi/icon_magic_fireball.png
new file mode 100644
index 00000000000000..79a1370ddfa068
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_magic_fireball.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_magic_forcewall.png b/Resources/Textures/Objects/Misc/books.rsi/icon_magic_forcewall.png
new file mode 100644
index 00000000000000..45e1ceb3c5cdfd
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_magic_forcewall.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_magic_knock.png b/Resources/Textures/Objects/Misc/books.rsi/icon_magic_knock.png
new file mode 100644
index 00000000000000..506dfdeaee7111
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_magic_knock.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_magnifier.png b/Resources/Textures/Objects/Misc/books.rsi/icon_magnifier.png
new file mode 100644
index 00000000000000..953d2f93efdcc8
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_magnifier.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_medical.png b/Resources/Textures/Objects/Misc/books.rsi/icon_medical.png
new file mode 100644
index 00000000000000..36799b2f95eb42
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_medical.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_medical_cross.png b/Resources/Textures/Objects/Misc/books.rsi/icon_medical_cross.png
new file mode 100644
index 00000000000000..970b6d3b4b65c2
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_medical_cross.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_mount.png b/Resources/Textures/Objects/Misc/books.rsi/icon_mount.png
new file mode 100644
index 00000000000000..399560fdf65cbe
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_mount.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_nuclear.png b/Resources/Textures/Objects/Misc/books.rsi/icon_nuclear.png
new file mode 100644
index 00000000000000..883fe5411e139d
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_nuclear.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_origami.png b/Resources/Textures/Objects/Misc/books.rsi/icon_origami.png
new file mode 100644
index 00000000000000..9eb0e542e8bd4d
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_origami.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_pentagramm.png b/Resources/Textures/Objects/Misc/books.rsi/icon_pentagramm.png
new file mode 100644
index 00000000000000..3804e3f4890e45
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_pentagramm.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_planet.png b/Resources/Textures/Objects/Misc/books.rsi/icon_planet.png
new file mode 100644
index 00000000000000..784dcd088276c9
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_planet.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_possum.png b/Resources/Textures/Objects/Misc/books.rsi/icon_possum.png
new file mode 100644
index 00000000000000..5d25c82a913203
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_possum.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_question.png b/Resources/Textures/Objects/Misc/books.rsi/icon_question.png
new file mode 100644
index 00000000000000..fda304af04a7db
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_question.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_scmmd.png b/Resources/Textures/Objects/Misc/books.rsi/icon_scmmd.png
new file mode 100644
index 00000000000000..d64e9bdd85d4cd
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_scmmd.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_skull.png b/Resources/Textures/Objects/Misc/books.rsi/icon_skull.png
new file mode 100644
index 00000000000000..96793050fb9466
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_skull.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_stars.png b/Resources/Textures/Objects/Misc/books.rsi/icon_stars.png
new file mode 100644
index 00000000000000..0970ada3f314c9
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_stars.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_stars2.png b/Resources/Textures/Objects/Misc/books.rsi/icon_stars2.png
new file mode 100644
index 00000000000000..a88d168a447ec5
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_stars2.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_stunbaton.png b/Resources/Textures/Objects/Misc/books.rsi/icon_stunbaton.png
new file mode 100644
index 00000000000000..d247b9163c5ec9
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_stunbaton.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_temple.png b/Resources/Textures/Objects/Misc/books.rsi/icon_temple.png
new file mode 100644
index 00000000000000..54bb81a404bc96
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_temple.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_text.png b/Resources/Textures/Objects/Misc/books.rsi/icon_text.png
new file mode 100644
index 00000000000000..8f7b3158d2bbb2
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_text.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_text2.png b/Resources/Textures/Objects/Misc/books.rsi/icon_text2.png
new file mode 100644
index 00000000000000..c87370e75da7ab
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_text2.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_text3.png b/Resources/Textures/Objects/Misc/books.rsi/icon_text3.png
new file mode 100644
index 00000000000000..ef03b24174fb8f
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_text3.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_time.png b/Resources/Textures/Objects/Misc/books.rsi/icon_time.png
new file mode 100644
index 00000000000000..13f0267eb5e36c
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_time.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_tree.png b/Resources/Textures/Objects/Misc/books.rsi/icon_tree.png
new file mode 100644
index 00000000000000..cfbebb9795c564
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_tree.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/icon_wrench.png b/Resources/Textures/Objects/Misc/books.rsi/icon_wrench.png
new file mode 100644
index 00000000000000..99bed38d3c63fa
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/icon_wrench.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/meta.json b/Resources/Textures/Objects/Misc/books.rsi/meta.json
index 514e4075822060..96320ce6ac5a43 100644
--- a/Resources/Textures/Objects/Misc/books.rsi/meta.json
+++ b/Resources/Textures/Objects/Misc/books.rsi/meta.json
@@ -1,71 +1,74 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "https://github.com/tgstation/tgstation/commit/37fb6bc6dd20005775dde8d886f48f7722606b77",
+ "copyright": "Base sprite taken at: https://github.com/tgstation/tgstation/commit/37fb6bc6dd20005775dde8d886f48f7722606b77 , splitted on layers by TheShuEd (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
- "name": "book0"
+ "name": "book_icon"
},
{
- "name": "book1"
+ "name": "cover_base"
},
{
- "name": "book2"
+ "name": "cover_old"
},
{
- "name": "book3"
+ "name": "cover_strong"
},
{
- "name": "book4"
+ "name": "decor_wingette"
},
{
- "name": "book5"
+ "name": "decor_wingette_flat"
},
{
- "name": "book6"
+ "name": "decor_wingette_circle"
},
{
- "name": "book7"
+ "name": "decor_bottom"
},
{
- "name": "book8"
+ "name": "decor_diagonal"
},
{
- "name": "book_infections"
+ "name": "decor_middle"
},
{
- "name": "book_cooking"
+ "name": "decor_spine"
},
{
- "name": "book_engineering"
+ "name": "decor_vertical_middle"
},
{
- "name": "book_engineering2"
+ "name": "detail_bookmark"
},
{
- "name": "book_hacking"
+ "name": "detail_rivets"
},
{
- "name": "book_detective"
+ "name": "icon_apple"
},
{
- "name": "book_nuclear"
+ "name": "icon_atmos"
},
{
- "name": "book_particle_accelerator"
+ "name": "icon_aurora"
},
{
- "name": "book_cloning"
+ "name": "icon_banana"
},
{
- "name": "book_hydroponics_pod_people"
+ "name": "icon_bar"
},
{
- "name": "book_borg",
+ "name": "icon_biohazard"
+ },
+ {
+ "name": "icon_borg",
"delays": [
[
6,
@@ -74,19 +77,83 @@
]
},
{
- "name": "book_chemistry"
+ "name": "icon_briefcase"
+ },
+ {
+ "name": "icon_bucket"
+ },
+ {
+ "name": "icon_cabbage"
+ },
+ {
+ "name": "icon_chemical"
+ },
+ {
+ "name": "icon_corner"
+ },
+ {
+ "name": "icon_diamond"
+ },
+ {
+ "name": "icon_dna"
+ },
+ {
+ "name": "icon_eye"
+ },
+ {
+ "name": "icon_fish"
+ },
+ {
+ "name": "icon_glow"
+ },
+ {
+ "name": "icon_hacking"
+ },
+ {
+ "name": "icon_ian"
+ },
+ {
+ "name": "icon_law"
+ },
+ {
+ "name": "icon_letter_N"
},
{
- "name": "book_bar"
+ "name": "icon_letter_P"
},
{
- "name": "book_space_law"
+ "name": "icon_lightning"
},
{
- "name": "book_demonomicon",
+ "name": "icon_magic"
+ },
+ {
+ "name": "icon_magic_fireball",
"delays": [
[
- 0.5,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
+ {
+ "name": "icon_magic_forcewall",
+ "delays": [
+ [
+ 0.3,
+ 0.3
+ ]
+ ]
+ },
+ {
+ "name": "icon_magic_knock",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
0.1,
0.1,
0.1
@@ -94,22 +161,93 @@
]
},
{
- "name": "book_origami"
+ "name": "icon_magnifier"
},
{
- "name": "book_boneworking"
+ "name": "icon_medical"
},
{
- "name": "book_fish"
+ "name": "icon_medical_cross"
},
{
- "name": "book_science"
+ "name": "icon_mount"
},
{
- "name": "book_medical"
+ "name": "icon_nuclear"
},
{
- "name": "book_security"
+ "name": "icon_origami"
+ },
+ {
+ "name": "icon_pentagramm"
+ },
+ {
+ "name": "icon_planet"
+ },
+ {
+ "name": "icon_possum"
+ },
+ {
+ "name": "icon_question"
+ },
+ {
+ "name": "icon_scmmd"
+ },
+ {
+ "name": "icon_skull"
+ },
+ {
+ "name": "icon_stars"
+ },
+ {
+ "name": "icon_stars2"
+ },
+ {
+ "name": "icon_stunbaton"
+ },
+ {
+ "name": "icon_temple"
+ },
+ {
+ "name": "icon_text"
+ },
+ {
+ "name": "icon_text2"
+ },
+ {
+ "name": "icon_text3"
+ },
+ {
+ "name": "icon_time"
+ },
+ {
+ "name": "icon_tree"
+ },
+ {
+ "name": "icon_wrench"
+ },
+ {
+ "name": "overlay_blood"
+ },
+ {
+ "name": "overlay_dirt"
+ },
+ {
+ "name": "overlay_null"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "paper_blood",
+ "delays": [
+ [
+ 5,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
}
]
}
diff --git a/Resources/Textures/Objects/Misc/books.rsi/overlay_blood.png b/Resources/Textures/Objects/Misc/books.rsi/overlay_blood.png
new file mode 100644
index 00000000000000..c497b9e8f30aaa
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/overlay_blood.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/overlay_dirt.png b/Resources/Textures/Objects/Misc/books.rsi/overlay_dirt.png
new file mode 100644
index 00000000000000..43d2d741d7b1b0
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/overlay_dirt.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/overlay_null.png b/Resources/Textures/Objects/Misc/books.rsi/overlay_null.png
new file mode 100644
index 00000000000000..7244b37f5c785d
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/overlay_null.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/paper.png b/Resources/Textures/Objects/Misc/books.rsi/paper.png
new file mode 100644
index 00000000000000..8309d99db7d75d
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/paper.png differ
diff --git a/Resources/Textures/Objects/Misc/books.rsi/paper_blood.png b/Resources/Textures/Objects/Misc/books.rsi/paper_blood.png
new file mode 100644
index 00000000000000..b0ed27ad528221
Binary files /dev/null and b/Resources/Textures/Objects/Misc/books.rsi/paper_blood.png differ
diff --git a/Resources/migration.yml b/Resources/migration.yml
index eadb76305c74bc..209434d1db8de6 100644
--- a/Resources/migration.yml
+++ b/Resources/migration.yml
@@ -227,7 +227,20 @@ Observationskit: null
# 2024-02-26
CrateBaseWeldable: CrateGenericSteel
-# 2024-03-7
+# 2024-03-05
+BookBotanicalTextbook: BookRandomStory
+BookEscalation: BookRandomStory
+BookEscalationSecurity: BookRandomStory
+BookDemonomiconRandom: BookRandomStory
+BookDemonomicon1: BookRandomStory
+BookDemonomicon2: BookRandomStory
+BookDemonomicon3: BookRandomStory
+BookChemistryInsane: BookRandomStory
+BookGnominomicon: BookRandomStory
+BookFishing: BookRandomStory
+BookDetective: BookRandomStory
+
+# 2024-03-07
AirlockExternalEasyPry: AirlockExternal
AirlockExternalGlassEasyPry: AirlockExternalGlass
AirlockGlassShuttleEasyPry: AirlockGlassShuttle