mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 18:31:17 +03:00
Merge remote-tracking branch 'upstream/master' into upstream-sync
# Conflicts: # Content.Client/Links/UILinks.cs # Content.Server/Entry/EntryPoint.cs # Content.Server/IoC/ServerContentIoC.cs # Content.Shared/CCVar/CCVars.cs # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/icon.png # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/off-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/off-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/off-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/icon.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/light-icon.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/on-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/on-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/orange.rsi/on-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/icon.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/icon.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/light-icon.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/icon.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-inhand-right.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-equipped-HELMET.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-inhand-left.png # Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-inhand-right.png # Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING.png # Resources/Textures/Clothing/Uniforms/Jumpsuit/atmos.rsi/equipped-INNERCLOTHING.png # Resources/Textures/Clothing/Uniforms/Jumpsuit/ce.rsi/equipped-INNERCLOTHING.png # Resources/Textures/Clothing/Uniforms/Jumpsuit/engineering.rsi/equipped-INNERCLOTHING.png # Resources/Textures/Clothing/Uniforms/Jumpsuit/engineering_hazard.rsi/equipped-INNERCLOTHING.png
This commit is contained in:
commit
612d79c8fa
43 changed files with 522 additions and 163 deletions
|
|
@ -1,4 +1,5 @@
|
|||
using Content.Shared.CartridgeLoader;
|
||||
using Content.Client.UserInterface.Fragments;
|
||||
using Content.Shared.CartridgeLoader;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
|
|
@ -10,7 +11,7 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface
|
|||
[Dependency] private readonly IEntityManager? _entityManager = default!;
|
||||
|
||||
private EntityUid? _activeProgram;
|
||||
private CartridgeUI? _activeCartridgeUI;
|
||||
private UIFragment? _activeCartridgeUI;
|
||||
private Control? _activeUiFragment;
|
||||
|
||||
protected CartridgeLoaderBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey)
|
||||
|
|
@ -127,9 +128,9 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface
|
|||
SendMessage(message);
|
||||
}
|
||||
|
||||
private CartridgeUI? RetrieveCartridgeUI(EntityUid? cartridgeUid)
|
||||
private UIFragment? RetrieveCartridgeUI(EntityUid? cartridgeUid)
|
||||
{
|
||||
var component = _entityManager?.GetComponentOrNull<CartridgeUiComponent>(cartridgeUid);
|
||||
var component = _entityManager?.GetComponentOrNull<UIFragmentComponent>(cartridgeUid);
|
||||
component?.Ui?.Setup(this);
|
||||
return component?.Ui;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
|
||||
namespace Content.Client.CartridgeLoader;
|
||||
|
||||
/// <summary>
|
||||
/// The component used for defining which ui fragment to use for a cartridge
|
||||
/// </summary>
|
||||
/// <seealso cref="CartridgeUI"/>
|
||||
/// <seealso cref="CartridgeUISerializer"/>
|
||||
[RegisterComponent]
|
||||
public sealed class CartridgeUiComponent : Component
|
||||
{
|
||||
[DataField("ui", true)]
|
||||
public CartridgeUI? Ui = default;
|
||||
}
|
||||
|
|
@ -1,10 +1,11 @@
|
|||
using Content.Shared.CartridgeLoader.Cartridges;
|
||||
using Content.Client.UserInterface.Fragments;
|
||||
using Content.Shared.CartridgeLoader.Cartridges;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
namespace Content.Client.CartridgeLoader.Cartridges;
|
||||
|
||||
public sealed class NetProbeUi : CartridgeUI
|
||||
public sealed class NetProbeUi : UIFragment
|
||||
{
|
||||
private NetProbeUiFragment? _fragment;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
using Content.Shared.CartridgeLoader;
|
||||
using Content.Client.UserInterface.Fragments;
|
||||
using Content.Shared.CartridgeLoader;
|
||||
using Content.Shared.CartridgeLoader.Cartridges;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
namespace Content.Client.CartridgeLoader.Cartridges;
|
||||
|
||||
public sealed class NotekeeperUi : CartridgeUI
|
||||
public sealed class NotekeeperUi : UIFragment
|
||||
{
|
||||
private NotekeeperUiFragment? _fragment;
|
||||
|
||||
|
||||
public override Control GetUIFragmentRoot()
|
||||
{
|
||||
return _fragment!;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Client.Links;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Client.AutoGenerated;
|
||||
|
|
@ -68,7 +67,8 @@ namespace Content.Client.Credits
|
|||
|
||||
// Do not show "become a patron" button on Steam builds
|
||||
// since Patreon violates Valve's rules about alternative storefronts.
|
||||
if (!_cfg.GetCVar(CCVars.BrandingSteam))
|
||||
var linkPatreon = _cfg.GetCVar(CCVars.InfoLinksPatreon);
|
||||
if (!_cfg.GetCVar(CCVars.BrandingSteam) && linkPatreon != "")
|
||||
{
|
||||
Button patronButton;
|
||||
patronsContainer.AddChild(patronButton = new Button
|
||||
|
|
@ -78,7 +78,7 @@ namespace Content.Client.Credits
|
|||
});
|
||||
|
||||
patronButton.OnPressed +=
|
||||
_ => IoCManager.Resolve<IUriOpener>().OpenUri(UILinks.Patreon);
|
||||
_ => IoCManager.Resolve<IUriOpener>().OpenUri(linkPatreon);
|
||||
}
|
||||
|
||||
var first = true;
|
||||
|
|
@ -158,8 +158,13 @@ namespace Content.Client.Credits
|
|||
AddSection(Loc.GetString("credits-window-original-remake-team-section-title"), "OriginalRemake.txt");
|
||||
AddSection(Loc.GetString("credits-window-special-thanks-section-title"), "SpecialThanks.txt", true);
|
||||
|
||||
var linkGithub = _cfg.GetCVar(CCVars.InfoLinksGithub);
|
||||
|
||||
contributeButton.OnPressed += _ =>
|
||||
IoCManager.Resolve<IUriOpener>().OpenUri(UILinks.GitHub);
|
||||
IoCManager.Resolve<IUriOpener>().OpenUri(linkGithub);
|
||||
|
||||
if (linkGithub == "")
|
||||
contributeButton.Visible = false;
|
||||
}
|
||||
|
||||
private sealed class PatronEntry
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
using Content.Client.Changelog;
|
||||
using Content.Client.Credits;
|
||||
using Content.Client.Links;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -19,13 +20,18 @@ namespace Content.Client.Info
|
|||
AddChild(buttons);
|
||||
|
||||
var uriOpener = IoCManager.Resolve<IUriOpener>();
|
||||
var cfg = IoCManager.Resolve<IConfigurationManager>();
|
||||
|
||||
var reportButton = new Button {Text = Loc.GetString("server-info-report-button")};
|
||||
reportButton.OnPressed += args => uriOpener.OpenUri(UILinks.BugReport);
|
||||
var bugReport = cfg.GetCVar(CCVars.InfoLinksBugReport);
|
||||
if (bugReport != "")
|
||||
{
|
||||
var reportButton = new Button {Text = Loc.GetString("server-info-report-button")};
|
||||
reportButton.OnPressed += args => uriOpener.OpenUri(bugReport);
|
||||
buttons.AddChild(reportButton);
|
||||
}
|
||||
|
||||
var creditsButton = new Button {Text = Loc.GetString("server-info-credits-button")};
|
||||
creditsButton.OnPressed += args => new CreditsWindow().Open();
|
||||
buttons.AddChild(reportButton);
|
||||
buttons.AddChild(creditsButton);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
using Content.Client.Changelog;
|
||||
using Content.Client.Credits;
|
||||
using Content.Client.Links;
|
||||
using Content.Client.UserInterface.Systems.EscapeMenu;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -21,25 +22,31 @@ namespace Content.Client.Info
|
|||
AddChild(buttons);
|
||||
|
||||
var uriOpener = IoCManager.Resolve<IUriOpener>();
|
||||
var cfg = IoCManager.Resolve<IConfigurationManager>();
|
||||
|
||||
var rulesButton = new Button() {Text = Loc.GetString("server-info-rules-button")};
|
||||
rulesButton.OnPressed += args => new RulesAndInfoWindow().Open();
|
||||
buttons.AddChild(rulesButton);
|
||||
|
||||
var discordButton = new Button {Text = Loc.GetString("server-info-discord-button")};
|
||||
discordButton.OnPressed += args => uriOpener.OpenUri(UILinks.Discord);
|
||||
AddInfoButton("server-info-discord-button", CCVars.InfoLinksDiscord);
|
||||
AddInfoButton("server-info-website-button", CCVars.InfoLinksWebsite);
|
||||
AddInfoButton("server-info-wiki-button", CCVars.InfoLinksWiki);
|
||||
AddInfoButton("server-info-forum-button", CCVars.InfoLinksForum);
|
||||
|
||||
var websiteButton = new Button {Text = Loc.GetString("server-info-website-button")};
|
||||
websiteButton.OnPressed += args => uriOpener.OpenUri(UILinks.Website);
|
||||
|
||||
var wikiButton = new Button {Text = Loc.GetString("server-info-wiki-button")};
|
||||
wikiButton.OnPressed += args => uriOpener.OpenUri(UILinks.Wiki);
|
||||
var changelogButton = new ChangelogButton();
|
||||
changelogButton.OnPressed += args => UserInterfaceManager.GetUIController<ChangelogUIController>().ToggleWindow();
|
||||
buttons.AddChild(changelogButton);
|
||||
buttons.AddChild(rulesButton);
|
||||
buttons.AddChild(discordButton);
|
||||
buttons.AddChild(websiteButton);
|
||||
buttons.AddChild(wikiButton);
|
||||
|
||||
void AddInfoButton(string loc, CVarDef<string> cVar)
|
||||
{
|
||||
var link = cfg.GetCVar(cVar);
|
||||
if (link == "")
|
||||
return;
|
||||
|
||||
var button = new Button { Text = Loc.GetString(loc) };
|
||||
button.OnPressed += _ => uriOpener.OpenUri(link);
|
||||
buttons.AddChild(button);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using Content.Client.Changelog;
|
||||
using Content.Client.Credits;
|
||||
using Content.Client.Links;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.IoC;
|
||||
|
|
|
|||
|
|
@ -65,12 +65,18 @@
|
|||
VerticalExpand="True">
|
||||
</BoxContainer>
|
||||
</ScrollContainer>
|
||||
<LineEdit
|
||||
Name="AmountLineEdit"
|
||||
PlaceHolder="{Loc 'lathe-menu-search-amount'}"
|
||||
Text="1"
|
||||
HorizontalExpand="True">
|
||||
</LineEdit>
|
||||
<BoxContainer
|
||||
Orientation="Horizontal"
|
||||
HorizontalExpand="True"
|
||||
VerticalExpand="True"
|
||||
SizeFlagsStretchRatio="1">
|
||||
<Label Margin="8 0 8 0" Text="{Loc 'lathe-menu-amount'}"/>
|
||||
<LineEdit
|
||||
Name="AmountLineEdit"
|
||||
PlaceHolder="0"
|
||||
Text="1"
|
||||
HorizontalExpand="True" />
|
||||
</BoxContainer>
|
||||
<ItemList
|
||||
Name="Materials"
|
||||
VerticalExpand="True"
|
||||
|
|
|
|||
|
|
@ -1,13 +1 @@
|
|||
namespace Content.Client.Links
|
||||
{
|
||||
public static class UILinks
|
||||
{
|
||||
public const string GitHub = "https://github.com/space-syndicate/space-station-14/";
|
||||
public const string Patreon = "https://boosty.to/corvax";
|
||||
|
||||
public const string Discord = "https://discord.com/invite/F9bNgSYfX5";
|
||||
public const string BugReport = "https://github.com/space-syndicate/space-station-14/issues/new/choose";
|
||||
public const string Website = "https://station14.ru";
|
||||
public const string Wiki = "https://wiki.station14.ru";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2,7 +2,7 @@ using Content.Shared.DeviceNetwork;
|
|||
using Robust.Client.Graphics;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Utility;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
namespace Content.Client.NetworkConfigurator;
|
||||
|
||||
|
|
@ -48,6 +48,12 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay
|
|||
}
|
||||
|
||||
var sourceTransform = _entityManager.GetComponent<TransformComponent>(tracker.Owner);
|
||||
if (sourceTransform.MapID == MapId.Nullspace)
|
||||
{
|
||||
// Can happen if the item is outside the client's view. In that case,
|
||||
// we don't have a sensible transform to draw, so we need to skip it.
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var device in _deviceListSystem.GetAllDevices(tracker.Owner, deviceList))
|
||||
{
|
||||
|
|
@ -57,6 +63,10 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay
|
|||
}
|
||||
|
||||
var linkTransform = _entityManager.GetComponent<TransformComponent>(device);
|
||||
if (linkTransform.MapID == MapId.Nullspace)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
args.WorldHandle.DrawLine(sourceTransform.WorldPosition, linkTransform.WorldPosition, _colors[tracker.Owner]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
namespace Content.Client.CartridgeLoader;
|
||||
namespace Content.Client.UserInterface.Fragments;
|
||||
|
||||
/// <summary>
|
||||
/// Cartridge ui fragments need to inherit this class. The subclass is then used in yaml to tell the cartridge loader ui to use it as the cartridges ui fragment.
|
||||
/// Specific ui fragments need to inherit this class. The subclass is then used in yaml to tell a main ui to use it as a ui fragment.
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// This is an example from the yaml definition from the notekeeper ui
|
||||
|
|
@ -14,7 +14,7 @@ namespace Content.Client.CartridgeLoader;
|
|||
/// </code>
|
||||
/// </example>
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
public abstract class CartridgeUI
|
||||
public abstract class UIFragment
|
||||
{
|
||||
public abstract Control GetUIFragmentRoot();
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
namespace Content.Client.UserInterface.Fragments;
|
||||
|
||||
/// <summary>
|
||||
/// The component used for defining a ui fragment to attach to an entity
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is used primarily for PDA cartridges.
|
||||
/// </remarks>
|
||||
/// <seealso cref="UIFragment"/>
|
||||
[RegisterComponent]
|
||||
public sealed class UIFragmentComponent : Component
|
||||
{
|
||||
[DataField("ui", true)]
|
||||
public UIFragment? Ui;
|
||||
}
|
||||
|
|
@ -168,6 +168,7 @@ public partial class ChatBox : UIWidget
|
|||
if (args.Function == EngineKeyFunctions.TextReleaseFocus)
|
||||
{
|
||||
ChatInput.Input.ReleaseKeyboardFocus();
|
||||
ChatInput.Input.Clear();
|
||||
args.Handle();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
using Content.Client.Gameplay;
|
||||
using Content.Client.Info;
|
||||
using Content.Client.Links;
|
||||
using Content.Client.UserInterface.Controls;
|
||||
using Content.Client.UserInterface.Systems.Info;
|
||||
using Content.Shared.CCVar;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.Console;
|
||||
using Robust.Client.Input;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controllers;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Input;
|
||||
using Robust.Shared.Input.Binding;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -20,6 +21,7 @@ public sealed class EscapeUIController : UIController, IOnStateEntered<GameplayS
|
|||
{
|
||||
[Dependency] private readonly IClientConsoleHost _console = default!;
|
||||
[Dependency] private readonly IUriOpener _uri = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
[Dependency] private readonly ChangelogUIController _changelog = default!;
|
||||
[Dependency] private readonly InfoUIController _info = default!;
|
||||
[Dependency] private readonly OptionsUIController _options = default!;
|
||||
|
|
@ -93,9 +95,12 @@ public sealed class EscapeUIController : UIController, IOnStateEntered<GameplayS
|
|||
|
||||
_escapeWindow.WikiButton.OnPressed += _ =>
|
||||
{
|
||||
_uri.OpenUri(UILinks.Wiki);
|
||||
_uri.OpenUri(_cfg.GetCVar(CCVars.InfoLinksWiki));
|
||||
};
|
||||
|
||||
// Hide wiki button if we don't have a link for it.
|
||||
_escapeWindow.WikiButton.Visible = _cfg.GetCVar(CCVars.InfoLinksWiki) != "";
|
||||
|
||||
CommandBinds.Builder
|
||||
.Bind(EngineKeyFunctions.EscapeMenu,
|
||||
InputCmdHandler.FromDelegate(_ => ToggleWindow()))
|
||||
|
|
|
|||
|
|
@ -23,11 +23,6 @@ namespace Content.Server.Body.Commands
|
|||
public void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
var player = shell.Player as IPlayerSession;
|
||||
if (args.Length > 1)
|
||||
{
|
||||
shell.WriteLine(Help);
|
||||
return;
|
||||
}
|
||||
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using Content.Server.Maps;
|
|||
using Content.Server.NodeContainer.NodeGroups;
|
||||
using Content.Server.Players.PlayTimeTracking;
|
||||
using Content.Server.Preferences.Managers;
|
||||
using Content.Server.ServerInfo;
|
||||
using Content.Server.ServerUpdates;
|
||||
using Content.Server.Voting.Managers;
|
||||
using Content.Shared.Administration;
|
||||
|
|
@ -102,6 +103,7 @@ namespace Content.Server.Entry
|
|||
IoCManager.Resolve<SponsorsManager>().Initialize(); // Corvax-Sponsors
|
||||
IoCManager.Resolve<JoinQueueManager>().Initialize(); // Corvax-Queue
|
||||
IoCManager.Resolve<JoinPlayTimeManager>().Initialize(); // Corvax-JoinPlaytime
|
||||
IoCManager.Resolve<ServerInfoManager>().Initialize();
|
||||
|
||||
_voteManager.Initialize();
|
||||
_updateManager.Initialize();
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Content.Server.Entry
|
|||
"ClientEntitySpawner",
|
||||
"HandheldGPS",
|
||||
"CableVisualizer",
|
||||
"CartridgeUi",
|
||||
"UIFragment",
|
||||
"PDABorderColor",
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using Content.Server.Objectives;
|
|||
using Content.Server.Objectives.Interfaces;
|
||||
using Content.Server.Players.PlayTimeTracking;
|
||||
using Content.Server.Preferences.Managers;
|
||||
using Content.Server.ServerInfo;
|
||||
using Content.Server.ServerUpdates;
|
||||
using Content.Server.Voting.Managers;
|
||||
using Content.Shared.Administration;
|
||||
|
|
@ -61,6 +62,7 @@ namespace Content.Server.IoC
|
|||
IoCManager.Register<SponsorsManager>(); // Corvax-Sponsors
|
||||
IoCManager.Register<JoinQueueManager>(); // Corvax-Queue
|
||||
IoCManager.Register<JoinPlayTimeManager>(); // Corvax-JoinPlaytime
|
||||
IoCManager.Register<ServerInfoManager>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -261,6 +261,11 @@ namespace Content.Server.Nutrition.EntitySystems
|
|||
// logging
|
||||
_adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(user):user} is forcing {ToPrettyString(target):target} to drink {ToPrettyString(drink.Owner):drink} {SolutionContainerSystem.ToPrettyString(drinkSolution)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// log voluntary drinking
|
||||
_adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(target):target} is drinking {ToPrettyString(drink.Owner):drink} {SolutionContainerSystem.ToPrettyString(drinkSolution)}");
|
||||
}
|
||||
|
||||
drink.CancelToken = new CancellationTokenSource();
|
||||
var moveBreak = user != target;
|
||||
|
|
@ -351,6 +356,9 @@ namespace Content.Server.Nutrition.EntitySystems
|
|||
_popupSystem.PopupEntity(
|
||||
Loc.GetString("drink-component-force-feed-success-user", ("target", targetName)),
|
||||
args.User, Filter.Entities(args.User));
|
||||
|
||||
// log successful forced drinking
|
||||
_adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(uid):user} forced {ToPrettyString(args.User):target} to drink {ToPrettyString(args.Drink.Owner):drink}");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -359,6 +367,9 @@ namespace Content.Server.Nutrition.EntitySystems
|
|||
Filter.Entities(args.User));
|
||||
_popupSystem.PopupEntity(
|
||||
Loc.GetString("drink-component-try-use-drink-success-slurp"), args.User, Filter.PvsExcept(args.User));
|
||||
|
||||
// log successful voluntary drinking
|
||||
_adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(args.User):target} drank {ToPrettyString(args.Drink.Owner):drink}");
|
||||
}
|
||||
|
||||
SoundSystem.Play(args.Drink.UseSound.GetSound(), Filter.Pvs(uid), uid, AudioParams.Default.WithVolume(-2f));
|
||||
|
|
|
|||
|
|
@ -125,6 +125,11 @@ namespace Content.Server.Nutrition.EntitySystems
|
|||
// logging
|
||||
_adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(user):user} is forcing {ToPrettyString(target):target} to eat {ToPrettyString(food.Owner):food} {SolutionContainerSystem.ToPrettyString(foodSolution)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// log voluntary eating
|
||||
_adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(target):target} is eating {ToPrettyString(food.Owner):food} {SolutionContainerSystem.ToPrettyString(foodSolution)}");
|
||||
}
|
||||
|
||||
var moveBreak = user != target;
|
||||
|
||||
|
|
@ -193,10 +198,16 @@ namespace Content.Server.Nutrition.EntitySystems
|
|||
|
||||
_popupSystem.PopupEntity(Loc.GetString("food-system-force-feed-success-user", ("target", targetName)),
|
||||
args.User, Filter.Entities(args.User));
|
||||
|
||||
// log successful force feed
|
||||
_adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(uid):user} forced {ToPrettyString(args.User):target} to eat {ToPrettyString(args.Food.Owner):food}");
|
||||
}
|
||||
else
|
||||
{
|
||||
_popupSystem.PopupEntity(Loc.GetString(args.Food.EatMessage, ("food", args.Food.Owner), ("flavors", flavors)), args.User, Filter.Entities(args.User));
|
||||
|
||||
// log successful voluntary eating
|
||||
_adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(args.User):target} ate {ToPrettyString(args.Food.Owner):food}");
|
||||
}
|
||||
|
||||
SoundSystem.Play(args.Food.UseSound.GetSound(), Filter.Pvs(uid), uid, AudioParams.Default.WithVolume(-1f));
|
||||
|
|
|
|||
44
Content.Server/ServerInfo/ServerInfoManager.cs
Normal file
44
Content.Server/ServerInfo/ServerInfoManager.cs
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
using System.Text.Json.Nodes;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Server.ServerStatus;
|
||||
using Robust.Shared.Configuration;
|
||||
|
||||
namespace Content.Server.ServerInfo;
|
||||
|
||||
/// <summary>
|
||||
/// Adds additional data like info links to the server info endpoint
|
||||
/// </summary>
|
||||
public sealed class ServerInfoManager
|
||||
{
|
||||
private static readonly (CVarDef<string> cVar, string icon, string name)[] Vars =
|
||||
{
|
||||
// @formatter:off
|
||||
(CCVars.InfoLinksDiscord, "discord", "info-link-discord"),
|
||||
(CCVars.InfoLinksForum, "forum", "info-link-forum"),
|
||||
(CCVars.InfoLinksGithub, "github", "info-link-github"),
|
||||
(CCVars.InfoLinksWebsite, "web", "info-link-website"),
|
||||
(CCVars.InfoLinksWiki, "wiki", "info-link-wiki")
|
||||
// @formatter:on
|
||||
};
|
||||
|
||||
[Dependency] private readonly IStatusHost _statusHost = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
[Dependency] private readonly ILocalizationManager _loc = default!;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
_statusHost.OnInfoRequest += OnInfoRequest;
|
||||
}
|
||||
|
||||
private void OnInfoRequest(JsonNode json)
|
||||
{
|
||||
foreach (var (cVar, icon, name) in Vars)
|
||||
{
|
||||
var url = _cfg.GetCVar(cVar);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
continue;
|
||||
|
||||
StatusHostHelpers.AddLink(json, _loc.GetString(name), url, icon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1361,6 +1361,52 @@ namespace Content.Shared.CCVar
|
|||
public static readonly CVarDef<float>
|
||||
PlayTimeSaveInterval = CVarDef.Create("playtime.save_interval", 900f, CVar.SERVERONLY);
|
||||
|
||||
/*
|
||||
* INFOLINKS
|
||||
*/
|
||||
|
||||
/// <summary>
|
||||
/// Link to Discord server to show in the launcher.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksDiscord =
|
||||
CVarDef.Create("infolinks.discord", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// Link to website to show in the launcher.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksForum =
|
||||
CVarDef.Create("infolinks.forum", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// Link to GitHub page to show in the launcher.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksGithub =
|
||||
CVarDef.Create("infolinks.github", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// Link to website to show in the launcher.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksWebsite =
|
||||
CVarDef.Create("infolinks.website", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// Link to wiki to show in the launcher.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksWiki =
|
||||
CVarDef.Create("infolinks.wiki", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// Link to Patreon. Not shown in the launcher currently.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksPatreon =
|
||||
CVarDef.Create("infolinks.patreon", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// Link to the bug report form.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> InfoLinksBugReport =
|
||||
CVarDef.Create("infolinks.bug_report", "", CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/**
|
||||
* Corvax | Sponsors
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,26 +1,4 @@
|
|||
Entries:
|
||||
- author: JustinTrotter
|
||||
changes:
|
||||
- {message: Increased stripping menu height and reordered inventory, type: Tweak}
|
||||
id: 2213
|
||||
time: '2022-09-01T02:21:02.0000000+00:00'
|
||||
- author: 20kdc
|
||||
changes:
|
||||
- {message: 'Salvages now spawn somewhere near the salvage magnet, rather than directly
|
||||
in front of it.', type: Tweak}
|
||||
id: 2214
|
||||
time: '2022-09-01T02:25:05.0000000+00:00'
|
||||
- author: JustinTrotter
|
||||
changes:
|
||||
- {message: Bots can now be stuffed into closets, type: Tweak}
|
||||
id: 2215
|
||||
time: '2022-09-01T02:40:16.0000000+00:00'
|
||||
- author: EmoGarbage404
|
||||
changes:
|
||||
- {message: Added a poster celebrating the current state of our forthcoming server.,
|
||||
type: Add}
|
||||
id: 2216
|
||||
time: '2022-09-01T02:56:27.0000000+00:00'
|
||||
- author: Peptide90
|
||||
changes:
|
||||
- {message: Mini Jetpack now fits in your suit storage slot., type: Tweak}
|
||||
|
|
@ -2949,3 +2927,27 @@ Entries:
|
|||
- {message: Kick AFK players, type: Add}
|
||||
id: 2712
|
||||
time: '2022-12-01T16:38:20.0000000+00:00'
|
||||
- author: jick
|
||||
changes:
|
||||
- {message: Escape key clears chat input, type: Tweak}
|
||||
id: 2713
|
||||
time: '2022-12-03T01:15:59.0000000+00:00'
|
||||
- author: deltanedas
|
||||
changes:
|
||||
- {message: Weld modular mines and grenades to salvage them, type: Tweak}
|
||||
id: 2714
|
||||
time: '2022-12-03T01:20:38.0000000+00:00'
|
||||
- author: Flareguy
|
||||
changes:
|
||||
- {message: Updated all Engineering jumpsuit sprites, type: Tweak}
|
||||
- {message: Updated the Emergency Firesuit's sprite, type: Tweak}
|
||||
- {message: Partially resprited most hardhats, type: Tweak}
|
||||
- {message: Added the orange hardhat to the engidrobe vendor, type: Tweak}
|
||||
id: 2715
|
||||
time: '2022-12-03T01:41:06.0000000+00:00'
|
||||
- author: GoodWheatley
|
||||
changes:
|
||||
- {message: The Syndicate has adjusted the price of several uplink items to encourage
|
||||
traitors to use more diverse strategies., type: Add}
|
||||
id: 2716
|
||||
time: '2022-12-03T01:48:25.0000000+00:00'
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ ban-banned-1 = You, or another user of this computer or connection, are banned f
|
|||
ban-banned-2 = The ban reason is: "{$reason}"
|
||||
|
||||
soft-player-cap-full = The server is full!
|
||||
panic-bunker-account-denied = This server is in Panic mode and you were rejected. Contact the server administrator for help.
|
||||
panic-bunker-account-denied-reason = This server is in Panic mode and you were rejected. Reason: "{$reason}"
|
||||
panic-bunker-account-reason-account = Age of account must be more that {$minutes} minutes
|
||||
panic-bunker-account-reason-overall = Minimum required overall playing time {$hours} hours
|
||||
panic-bunker-account-denied = This server is in panic bunker mode. New connections are not being accepted at this time. Try again later
|
||||
panic-bunker-account-denied-reason = This server is in panic bunker mode and you were rejected. Reason: "{$reason}"
|
||||
panic-bunker-account-reason-account = The account's age must be older than {$minutes} minutes
|
||||
panic-bunker-account-reason-overall = The account's overall playtime must be greater than {$hours} hours
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@ server-info-rules-button = Rules
|
|||
server-info-discord-button = Discord
|
||||
server-info-website-button = Website
|
||||
server-info-wiki-button = Wiki
|
||||
server-info-forum-button = Forum
|
||||
server-info-report-button = Report Bugs
|
||||
server-info-credits-button = Credits
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ lathe-menu-server-list = Server list
|
|||
lathe-menu-sync = Sync
|
||||
lathe-menu-search-designs = Search designs
|
||||
lathe-menu-search-filter = Filter
|
||||
lathe-menu-search-amount = Amount
|
||||
lathe-menu-material-display = {$material} {$amount} cm³
|
||||
lathe-menu-amount = Amount:
|
||||
lathe-menu-material-display = {$material} {$amount} cm³
|
||||
|
|
|
|||
|
|
@ -17,4 +17,7 @@ ent-EngineeringJetpack = { ent-CrateEngineeringJetpack }
|
|||
.desc = { ent-CrateEngineeringJetpack.desc }
|
||||
|
||||
ent-EngineeringMiniJetpack = { ent-CrateEngineeringMiniJetpack }
|
||||
.desc = { ent-CrateEngineeringMiniJetpack.desc }
|
||||
.desc = { ent-CrateEngineeringMiniJetpack.desc }
|
||||
|
||||
ent-AirlockKit = { ent-CrateAirlockKit }
|
||||
.desc = { ent-CrateAirlockKit.desc }
|
||||
|
|
@ -3,3 +3,21 @@ ent-MedicalSupplies = { ent-CrateMedicalSupplies }
|
|||
|
||||
ent-MedicalChemistrySupplies = { ent-CrateChemistrySupplies }
|
||||
.desc = { ent-CrateChemistrySupplies.desc }
|
||||
|
||||
ent-EmergencyBurnKit = { ent-CrateEmergencyBurnKit }
|
||||
.desc = { ent-CrateEmergencyBurnKit.desc }
|
||||
|
||||
ent-EmergencyToxinKit = { ent-CrateEmergencyToxinKit }
|
||||
.desc = { ent-CrateEmergencyToxinKit.desc }
|
||||
|
||||
ent-EmergencyO2Kit = { ent-CrateEmergencyO2Kit }
|
||||
.desc = { ent-CrateEmergencyO2Kit.desc }
|
||||
|
||||
ent-EmergencyBruteKit = { ent-CrateEmergencyBruteKit }
|
||||
.desc = { ent-CrateEmergencyBruteKit.desc }
|
||||
|
||||
ent-EmergencyAdvancedKit = { ent-CrateEmergencyAdvancedKit }
|
||||
.desc = { ent-CrateEmergencyAdvancedKit.desc }
|
||||
|
||||
ent-EmergencyRadiationKit = { ent-CrateEmergencyRadiationKit }
|
||||
.desc = { ent-CrateEmergencyRadiationKit.desc }
|
||||
|
|
@ -26,4 +26,7 @@ ent-CrateEngineeringJetpack = Jetpack crate
|
|||
.desc = Two jetpacks for those who don't know how to use fire extinguishers.
|
||||
|
||||
ent-CrateEngineeringMiniJetpack = Mini jetpack crate
|
||||
.desc = Two mini jetpacks for those who want an extra challenge.
|
||||
.desc = Two mini jetpacks for those who want an extra challenge.
|
||||
|
||||
ent-CrateAirlockKit = Airlock kit
|
||||
.desc = A kit for building 6 airlocks, doesn't include tools.
|
||||
|
|
|
|||
|
|
@ -11,3 +11,21 @@ ent-CrateMedicalSurgery = Surgical supplies crate
|
|||
|
||||
ent-CrateMedicalScrubs = Medical scrubs crate
|
||||
.desc = Medical clothings.
|
||||
|
||||
ent-CrateEmergencyBurnKit = Emergency burn kit
|
||||
.desc = Crate filled with four burn treatment kits
|
||||
|
||||
ent-CrateEmergencyToxinKit = Emergency toxin kit
|
||||
.desc = Crate filled with four toxin treatment kits
|
||||
|
||||
ent-CrateEmergencyO2Kit = Emergency O2 kit
|
||||
.desc = Crate filled with four O2 treatment kits
|
||||
|
||||
ent-CrateEmergencyBruteKit = Emergency brute kit
|
||||
.desc = Crate filled with four brute treatment kits
|
||||
|
||||
ent-CrateEmergencyAdvancedKit = Emergency advanced kit
|
||||
.desc = Crate filled with four advanced treatment kits
|
||||
|
||||
ent-CrateEmergencyRadiationKit = Emergency radiation kit
|
||||
.desc = Crate filled with four radiation treatment kits
|
||||
7
Resources/Locale/en-US/server-info/info-links.ftl
Normal file
7
Resources/Locale/en-US/server-info/info-links.ftl
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
### Strings for link buttons shown in the launcher's server description.
|
||||
|
||||
info-link-discord = Discord
|
||||
info-link-forum = Forum
|
||||
info-link-github = GitHub
|
||||
info-link-website = Website
|
||||
info-link-wiki = Wiki
|
||||
|
|
@ -486,7 +486,7 @@ entities:
|
|||
components:
|
||||
- type: MetaData
|
||||
- pos: 0.4558292,0.42837813
|
||||
parent: null
|
||||
parent: 943
|
||||
type: Transform
|
||||
- chunks:
|
||||
0,-1:
|
||||
|
|
@ -557,7 +557,7 @@ entities:
|
|||
tiles: SwAAA0sAAABLAAADSwAAAksAAAJYAAAAAAAAAAAAAABYAAAASAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAEsAAAJLAAABSwAAA0sAAANLAAAAWAAAAAAAAAAAAAAAWAAAAEgAAABYAAAAWAAAAFUAAAJYAAAAWAAAAFcAAABQAAAAUAAAAEsAAANLAAACSwAAAlgAAAAAAAAAAAAAAFgAAABIAAAAWAAAAFgAAABYAAAAVQAAA1gAAABXAAAAUAAAAFAAAAJLAAACSwAAAksAAAJYAAAAVwAAAAAAAABYAAAASAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAFAAAABQAAAASwAAAUsAAANLAAADWAAAAAAAAAAAAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAABLAAAASwAAAUsAAAFLAAADSwAAAFgAAAAAAAAAAAAAAFgAAABIAAAAWAAAAFgAAABVAAADWAAAAFgAAABXAAAASwAAAUsAAAJLAAAASwAAAksAAANYAAAAVwAAAFcAAABYAAAASAAAAFgAAABYAAAAVQAAAlUAAAJYAAAAVwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAABLAAACSwAAAEsAAAFLAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAWAAAAAAAAABXAAAASwAAAksAAAFLAAAASwAAAFgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAFgAAAAAAAAAVwAAAEsAAABLAAABSwAAAksAAAJYAAAASAAAAFgAAABIAAAASAAAAEgAAABIAAAAWAAAAFcAAABYAAAAAAAAAFcAAABLAAABSwAAA0sAAANLAAABWAAAAEgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAABXAAAAWAAAAAAAAABXAAAAWAAAAFgAAABYAAAAWAAAAFgAAABIAAAAWAAAAFgAAABIAAAAWAAAAFgAAABYAAAAVwAAAFgAAAAAAAAAVwAAAEsAAABLAAAAWAAAAAAAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAAAAAAAAAAAAAFcAAABLAAABSwAAAlgAAAAAAAAAVwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAAAAAAAAAAABXAAAASwAAAUsAAANYAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAAAAAAAAAVwAAAA==
|
||||
2,-1:
|
||||
ind: 2,-1
|
||||
tiles: WAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABLAAACSwAAAUsAAANLAAACWAAAAEsAAAFLAAAASwAAAUsAAANLAAAAWAAAADYAAAA2AAAANgAAADYAAABYAAAASwAAAksAAAFLAAABWAAAABUAAAFLAAABSwAAAUsAAAJLAAABSwAAAVgAAAA2AAAANgAAADYAAAA2AAAANgAAAEsAAANQAAAASwAAABUAAAEVAAAASwAAAksAAAJLAAACSwAAAEsAAAFYAAAANgAAADYAAAA2AAAANgAAAFgAAABLAAAASwAAAksAAANYAAAAFQAAAFgAAAAVAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAASwAAAksAAAJLAAABWAAAAFgAAAAVAAADFQAAABUAAAJYAAAAFQAAAxUAAAIVAAABFQAAAxUAAAMVAAABWAAAAEsAAAJLAAADSwAAAlgAAABLAAAAFQAAAxUAAAAVAAADWAAAABUAAAAVAAADFQAAAxUAAAEVAAABFQAAAhUAAANLAAACUAAAA0sAAANLAAABSwAAAFgAAABYAAAAWAAAAFgAAAAVAAABFQAAABUAAAMVAAADFQAAABUAAABYAAAASwAAA0sAAABLAAADWAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAFQAAAxUAAAIVAAABFQAAABUAAAEVAAACWAAAAFgAAABLAAABWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAFQAAARUAAAAVAAADFQAAARUAAAIVAAADFQAAAlgAAABYAAAAWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAAAVAAACFQAAABUAAAAVAAAAFQAAARUAAABYAAAAWAAAAEgAAABIAAAASAAAAEgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABIAAAASAAAAEgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAABUAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAPgAAAD4AAAM+AAACPgAAAz4AAAM+AAAAFQAAAD4AAAEVAAADPgAAAT4AAAI+AAACWAAAAFgAAABYAAAAWAAAAD4AAAI+AAADPgAAAD4AAAA+AAAAPgAAAhUAAAA+AAADFQAAAD4AAAE+AAABPgAAAQ==
|
||||
tiles: WAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABLAAACSwAAAUsAAANLAAACWAAAAEsAAAFLAAAASwAAAUsAAANLAAAAWAAAADYAAAA2AAAANgAAADYAAABYAAAASwAAAksAAAFLAAABWAAAABUAAAFLAAABSwAAAUsAAAJLAAABSwAAAVgAAAA2AAAANgAAADYAAAA2AAAANgAAAEsAAANLAAAASwAAABUAAAEVAAAASwAAAksAAAJLAAACSwAAAEsAAAFYAAAANgAAADYAAAA2AAAANgAAAFgAAABLAAAASwAAAksAAANYAAAAFQAAAFgAAAAVAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAASwAAAksAAAJLAAABWAAAAFgAAAAVAAADFQAAABUAAAJYAAAAFQAAAxUAAAIVAAABFQAAAxUAAAMVAAABWAAAAEsAAAJLAAADSwAAAlgAAABLAAAAFQAAAxUAAAAVAAADWAAAABUAAAAVAAADFQAAAxUAAAEVAAABFQAAAhUAAANLAAACSwAAAEsAAANLAAABSwAAAFgAAABYAAAAWAAAAFgAAAAVAAABFQAAABUAAAMVAAADFQAAABUAAABYAAAASwAAA0sAAABLAAADWAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAFQAAAxUAAAIVAAABFQAAABUAAAEVAAACWAAAAFgAAABLAAABWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAFQAAARUAAAAVAAADFQAAARUAAAIVAAADFQAAAlgAAABYAAAAWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAAAVAAACFQAAABUAAAAVAAAAFQAAARUAAABYAAAAWAAAAEgAAABIAAAASAAAAEgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABIAAAASAAAAEgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAABUAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAPgAAAD4AAAM+AAACPgAAAz4AAAM+AAAAFQAAAD4AAAEVAAADPgAAAT4AAAI+AAACWAAAAFgAAABYAAAAWAAAAD4AAAI+AAADPgAAAD4AAAA+AAAAPgAAAhUAAAA+AAADFQAAAD4AAAE+AAABPgAAAQ==
|
||||
3,-1:
|
||||
ind: 3,-1
|
||||
tiles: WAAAAFgAAABLAAADAAAAAFcAAABYAAAAWAAAAEEAAABBAAAAWAAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAABUAAAIVAAAAWAAAAAAAAABXAAAAWAAAAFgAAABYAAAAQQAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAAAVAAABFQAAAFgAAAAAAAAAVwAAAFgAAABYAAAAQQAAAFgAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAAFQAAARUAAABYAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAABLAAADSwAAAEsAAAJYAAAASAAAAFgAAABYAAAAWAAAAEEAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAASwAAAUsAAAJLAAADWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAAAAAAAAAAAAAAAAAAAAAAAAVwAAAEsAAANLAAAASwAAAlgAAABIAAAAWAAAAFgAAABBAAAAQQAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAASAAAAFgAAABYAAAAQQAAAEEAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABBAAAAWAAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABBAAAAWAAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAASAAAAEgAAABYAAAAWAAAAFgAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAADPgAAAD4AAAE+AAABWAAAAFgAAABYAAAAWAAAAFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAz4AAAI+AAABPgAAAlgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
|
|
@ -32352,6 +32352,15 @@ entities:
|
|||
type: Transform
|
||||
- color: '#0335FCFF'
|
||||
type: AtmosPipeColor
|
||||
- uid: 943
|
||||
components:
|
||||
- type: MetaData
|
||||
- type: Transform
|
||||
- index: 4
|
||||
type: Map
|
||||
- type: PhysicsMap
|
||||
- type: Broadphase
|
||||
- type: OccluderTree
|
||||
- uid: 944
|
||||
type: ScalpelLaser
|
||||
components:
|
||||
|
|
@ -34382,9 +34391,9 @@ entities:
|
|||
parent: 60
|
||||
type: Transform
|
||||
- uid: 1201
|
||||
type: TableReinforced
|
||||
type: TransmitterSubspaceStockPart
|
||||
components:
|
||||
- pos: -67.5,9.5
|
||||
- pos: -63.585518,9.577888
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 1202
|
||||
|
|
@ -52221,6 +52230,9 @@ entities:
|
|||
- pos: 48.5,-39.5
|
||||
parent: 60
|
||||
type: Transform
|
||||
- SecondsUntilStateChange: -37666.23
|
||||
state: Opening
|
||||
type: Door
|
||||
- uid: 3729
|
||||
type: PoweredSmallLight
|
||||
components:
|
||||
|
|
@ -55988,7 +56000,7 @@ entities:
|
|||
- uid: 4259
|
||||
type: Paper
|
||||
components:
|
||||
- desc: ''
|
||||
- desc: ""
|
||||
type: MetaData
|
||||
- pos: -48.414677,-15.437268
|
||||
parent: 60
|
||||
|
|
@ -85547,9 +85559,9 @@ entities:
|
|||
parent: 60
|
||||
type: Transform
|
||||
- uid: 8563
|
||||
type: SuperCapacitorStockPart
|
||||
type: TableReinforced
|
||||
components:
|
||||
- pos: -63.726524,9.579115
|
||||
- pos: -67.5,9.5
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 8564
|
||||
|
|
@ -113526,9 +113538,9 @@ entities:
|
|||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 13012
|
||||
type: QuadraticCapacitorStockPart
|
||||
type: DrinkGoldschlagerBottleFull
|
||||
components:
|
||||
- pos: -63.445274,9.579115
|
||||
- pos: 6.371938,-6.0707817
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13013
|
||||
|
|
@ -113538,15 +113550,15 @@ entities:
|
|||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13014
|
||||
type: SuperMatterBinStockPart
|
||||
type: MicroManipulatorStockPart
|
||||
components:
|
||||
- pos: -67.67991,9.5806675
|
||||
- pos: -66.58286,9.687263
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13015
|
||||
type: SuperMatterBinStockPart
|
||||
type: ScanningModuleStockPart
|
||||
components:
|
||||
- pos: -67.08533,9.845674
|
||||
- pos: -67.444885,9.609138
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13016
|
||||
|
|
@ -113556,9 +113568,9 @@ entities:
|
|||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13017
|
||||
type: UltraHighPowerMicroLaserStockPart
|
||||
type: ScanningModuleStockPart
|
||||
components:
|
||||
- pos: -66.61741,9.6119175
|
||||
- pos: -67.61676,9.687263
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13018
|
||||
|
|
@ -113670,23 +113682,20 @@ entities:
|
|||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13036
|
||||
type: HighPowerMicroLaserStockPart
|
||||
type: Poweredlight
|
||||
components:
|
||||
- pos: -66.27366,9.6119175
|
||||
- rot: 3.141592653589793 rad
|
||||
pos: -51.5,11.5
|
||||
parent: 60
|
||||
type: Transform
|
||||
- powerLoad: 0
|
||||
type: ApcPowerReceiver
|
||||
- uid: 13037
|
||||
type: WallSolid
|
||||
components:
|
||||
- pos: -63.5,42.5
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13038
|
||||
type: FemtoManipulatorStockPart
|
||||
components:
|
||||
- pos: -64.40966,9.65759
|
||||
parent: 60
|
||||
type: Transform
|
||||
- uid: 13039
|
||||
type: AirlockQuartermasterLocked
|
||||
components:
|
||||
|
|
@ -123899,6 +123908,9 @@ entities:
|
|||
- pos: 31.5,-19.5
|
||||
parent: 60
|
||||
type: Transform
|
||||
- SecondsUntilStateChange: -31179.133
|
||||
state: Closing
|
||||
type: Door
|
||||
- uid: 14524
|
||||
type: ReinforcedWindow
|
||||
components:
|
||||
|
|
@ -170573,7 +170585,7 @@ entities:
|
|||
- 21492
|
||||
- 21491
|
||||
- 18608
|
||||
- null
|
||||
- invalid
|
||||
- 18272
|
||||
- 18270
|
||||
- 18368
|
||||
|
|
@ -171347,7 +171359,7 @@ entities:
|
|||
- 18915
|
||||
- 18906
|
||||
- 18910
|
||||
- null
|
||||
- invalid
|
||||
- 18892
|
||||
- 18893
|
||||
type: DeviceList
|
||||
|
|
@ -171611,7 +171623,7 @@ entities:
|
|||
- 21568
|
||||
- 2370
|
||||
- 2360
|
||||
- null
|
||||
- invalid
|
||||
type: DeviceList
|
||||
- uid: 21568
|
||||
type: AirSensor
|
||||
|
|
@ -172380,7 +172392,7 @@ entities:
|
|||
- devices:
|
||||
- 21631
|
||||
- 7146
|
||||
- null
|
||||
- invalid
|
||||
- 6015
|
||||
- 5990
|
||||
- 21632
|
||||
|
|
@ -172603,7 +172615,7 @@ entities:
|
|||
- 21648
|
||||
- 16559
|
||||
- 16560
|
||||
- null
|
||||
- invalid
|
||||
type: DeviceList
|
||||
- uid: 21648
|
||||
type: AirSensor
|
||||
|
|
@ -172634,7 +172646,7 @@ entities:
|
|||
- 21648
|
||||
- 16559
|
||||
- 16560
|
||||
- null
|
||||
- invalid
|
||||
- 21655
|
||||
- 21656
|
||||
type: DeviceList
|
||||
|
|
|
|||
|
|
@ -67,3 +67,13 @@
|
|||
cost: 750
|
||||
category: Engineering
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: AirlockKit
|
||||
icon:
|
||||
sprite: Objects/Tools/Toolboxes/toolbox_yellow.rsi
|
||||
state: icon
|
||||
product: CrateAirlockKit
|
||||
cost: 1100
|
||||
category: Engineering
|
||||
group: market
|
||||
|
|
|
|||
|
|
@ -17,3 +17,63 @@
|
|||
cost: 750
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: EmergencyBurnKit
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/firstaidkits.rsi
|
||||
state: burnkit
|
||||
product: CrateEmergencyBurnKit
|
||||
cost: 2100
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: EmergencyToxinKit
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/firstaidkits.rsi
|
||||
state: toxinkit
|
||||
product: CrateEmergencyToxinKit
|
||||
cost: 700
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: EmergencyO2Kit
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/firstaidkits.rsi
|
||||
state: o2kit
|
||||
product: CrateEmergencyO2Kit
|
||||
cost: 1100
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: EmergencyBruteKit
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/firstaidkits.rsi
|
||||
state: brutekit
|
||||
product: CrateEmergencyBruteKit
|
||||
cost: 3600
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: EmergencyAdvancedKit
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/firstaidkits.rsi
|
||||
state: advkit
|
||||
product: CrateEmergencyAdvancedKit
|
||||
cost: 3700
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: EmergencyRadiationKit
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/firstaidkits.rsi
|
||||
state: radkit
|
||||
product: CrateEmergencyRadiationKit
|
||||
cost: 2500
|
||||
category: Medical
|
||||
group: market
|
||||
|
|
@ -105,3 +105,16 @@
|
|||
contents:
|
||||
- id: JetpackMini
|
||||
amount: 2
|
||||
|
||||
- type: entity
|
||||
id: CrateAirlockKit
|
||||
parent: CrateGenericSteel
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: SheetSteel
|
||||
amount: 1
|
||||
- id: CableApcStack
|
||||
amount: 1
|
||||
- id: DoorElectronics
|
||||
amount: 6
|
||||
|
|
|
|||
|
|
@ -82,3 +82,57 @@
|
|||
amount: 1
|
||||
- id: ClothingMaskSterile
|
||||
amount: 3
|
||||
|
||||
- type: entity
|
||||
id: CrateEmergencyBurnKit
|
||||
parent: CrateMedical
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: MedkitBurnFilled
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
id: CrateEmergencyToxinKit
|
||||
parent: CrateMedical
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: MedkitToxinFilled
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
id: CrateEmergencyO2Kit
|
||||
parent: CrateMedical
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: MedkitOxygenFilled
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
id: CrateEmergencyBruteKit
|
||||
parent: CrateMedical
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: MedkitBruteFilled
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
id: CrateEmergencyAdvancedKit
|
||||
parent: CrateMedical
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: MedkitAdvancedFilled
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
id: CrateEmergencyRadiationKit
|
||||
parent: CrateMedical
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: MedkitRadiationFilled
|
||||
amount: 4
|
||||
|
|
@ -11,5 +11,6 @@
|
|||
ClothingOuterVestHazard: 3
|
||||
ClothingShoesBootsWork: 3
|
||||
ClothingHeadHatHardhatYellow: 3
|
||||
ClothingHeadHatHardhatOrange: 3
|
||||
ClothingHeadsetEngineering: 3
|
||||
ClothingOuterWinterEngi: 2
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
description: A bolt action service rifle that has seen many wars. Not modern by any standard, hand loaded, and terrible recoil, but it is cheap.
|
||||
productEntity: WeaponSniperMosin
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkWeapons
|
||||
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
id: UplinkSyndieMiniBomb
|
||||
productEntity: SyndieMiniBomb
|
||||
cost:
|
||||
Telecrystal: 7
|
||||
Telecrystal: 6
|
||||
categories:
|
||||
- UplinkExplosives
|
||||
|
||||
|
|
@ -194,7 +194,7 @@
|
|||
description: A deep shoulder holster capable of holding many types of ballistics.
|
||||
productEntity: ClothingBeltSyndieHolster
|
||||
cost:
|
||||
Telecrystal: 2
|
||||
Telecrystal: 1
|
||||
categories:
|
||||
- UplinkUtility
|
||||
|
||||
|
|
@ -224,7 +224,7 @@
|
|||
description: A black jetpack. It allows you to fly around in space. Additional fuel not included.
|
||||
productEntity: JetpackBlack
|
||||
cost:
|
||||
Telecrystal: 5
|
||||
Telecrystal: 4
|
||||
categories:
|
||||
- UplinkUtility
|
||||
|
||||
|
|
@ -235,7 +235,7 @@
|
|||
productEntity: ReinforcementTeleporterSyndicate
|
||||
icon: Objects/Devices/communication.rsi/old-radio.png
|
||||
cost:
|
||||
Telecrystal: 25
|
||||
Telecrystal: 20
|
||||
categories:
|
||||
- UplinkUtility
|
||||
|
||||
|
|
@ -266,7 +266,7 @@
|
|||
description: A chemical hypospray disguised as a pen, capable of instantly injecting up to 15u of reagents. Starts empty.
|
||||
productEntity: Hypopen
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 6
|
||||
categories:
|
||||
- UplinkUtility
|
||||
|
||||
|
|
@ -276,7 +276,7 @@
|
|||
description: A gas mask that lets you adjust your voice to whoever you can think of.
|
||||
productEntity: ClothingMaskGasVoiceMasker
|
||||
cost:
|
||||
Telecrystal: 5
|
||||
Telecrystal: 4
|
||||
categories:
|
||||
- UplinkUtility
|
||||
|
||||
|
|
@ -458,7 +458,7 @@
|
|||
id: UplinkPowerSink
|
||||
productEntity: PowerSink
|
||||
cost:
|
||||
Telecrystal: 5
|
||||
Telecrystal: 8
|
||||
categories:
|
||||
- UplinkTools
|
||||
|
||||
|
|
@ -466,7 +466,7 @@
|
|||
id: UplinkCarpDehydrated
|
||||
productEntity: DehydratedSpaceCarp
|
||||
cost:
|
||||
Telecrystal: 3
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkTools
|
||||
|
||||
|
|
@ -477,7 +477,7 @@
|
|||
description: And who says guns don't grow on trees?
|
||||
productEntity: GatfruitSeeds
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 6
|
||||
categories:
|
||||
- UplinkJob
|
||||
conditions:
|
||||
|
|
@ -490,7 +490,7 @@
|
|||
description: An unholy book capable of summoning a demonic familiar.
|
||||
productEntity: BibleNecronomicon
|
||||
cost:
|
||||
Telecrystal: 6
|
||||
Telecrystal: 4
|
||||
categories:
|
||||
- UplinkJob
|
||||
conditions:
|
||||
|
|
@ -511,7 +511,7 @@
|
|||
productEntity: ClothingBackpackChameleonFill
|
||||
icon: /Textures/Clothing/Uniforms/Jumpsuit/rainbow.rsi/icon.png
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 6
|
||||
categories:
|
||||
- UplinkArmor
|
||||
|
||||
|
|
@ -539,7 +539,7 @@
|
|||
id: UplinkClothingOuterVestWeb
|
||||
productEntity: ClothingOuterVestWeb
|
||||
cost:
|
||||
Telecrystal: 5
|
||||
Telecrystal: 4
|
||||
categories:
|
||||
- UplinkArmor
|
||||
|
||||
|
|
@ -566,7 +566,7 @@
|
|||
description: A simple EVA suit that offers no protection other than what's needed to survive in space.
|
||||
productEntity: ClothingBackpackDuffelSyndicateEVABundle
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkArmor
|
||||
|
||||
|
|
@ -586,7 +586,7 @@
|
|||
description: Cybersun's legal department pen. Smells vaguely of hard-light and war profiteering.
|
||||
productEntity: CyberPen
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 3
|
||||
categories:
|
||||
- UplinkMisc
|
||||
|
||||
|
|
@ -624,14 +624,6 @@
|
|||
categories:
|
||||
- UplinkMisc
|
||||
|
||||
#- type: listing
|
||||
# id: UplinkCostumeCentcom
|
||||
# productEntity: ClothingBackpackDuffelSyndicateCostumeCentcom
|
||||
# cost:
|
||||
# Telecrystal: 4
|
||||
# categories:
|
||||
# - UplinkMisc
|
||||
|
||||
# - type: listing
|
||||
# id: UplinkGigacancerScanner
|
||||
# name: Ultragigacancer Health Analyzer
|
||||
|
|
|
|||
|
|
@ -110,17 +110,23 @@
|
|||
launchForwardsMultiplier: 6.0
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.2
|
||||
- type: Physics
|
||||
bodyType: Dynamic
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
id: "slips"
|
||||
hard: false
|
||||
layer:
|
||||
- SlipLayer
|
||||
- shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 20
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- SlipLayer
|
||||
- type: Construction
|
||||
graph: HonkBot
|
||||
node: bot
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
- type: Icon
|
||||
sprite: Objects/Devices/cartridge.rsi
|
||||
state: cart-y
|
||||
- type: CartridgeUi
|
||||
- type: UIFragment
|
||||
ui: !type:NotekeeperUi
|
||||
- type: Cartridge
|
||||
programName: notekeeper-program-name
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
- type: Icon
|
||||
sprite: Objects/Devices/cartridge.rsi
|
||||
state: cart-y
|
||||
- type: CartridgeUi
|
||||
- type: UIFragment
|
||||
ui: !type:NetProbeUi
|
||||
- type: Cartridge
|
||||
programName: net-probe-program-name
|
||||
|
|
|
|||
|
|
@ -21,6 +21,15 @@
|
|||
steps:
|
||||
- material: Cable
|
||||
doAfter: 0.5
|
||||
- to: start
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: SheetSteel1
|
||||
amount: 5
|
||||
- !type:DeleteEntity
|
||||
steps:
|
||||
- tool: Welding
|
||||
doAfter: 2
|
||||
|
||||
- node: wiredCase
|
||||
entity: ModularGrenade
|
||||
|
|
@ -80,4 +89,4 @@
|
|||
doAfter: 0.5
|
||||
completed:
|
||||
- !type:EmptyContainer
|
||||
container: payload
|
||||
container: payload
|
||||
|
|
|
|||
|
|
@ -23,6 +23,15 @@
|
|||
sprite: Objects/Misc/proximity_sensor.rsi
|
||||
state: icon
|
||||
name: proximity sensor
|
||||
- to: start
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: SheetSteel1
|
||||
amount: 5
|
||||
- !type:DeleteEntity
|
||||
steps:
|
||||
- tool: Welding
|
||||
doAfter: 2
|
||||
|
||||
- node: wiredCase
|
||||
entity: LandMineModular
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue