Merge remote-tracking branch 'refs/remotes/wizards/master'
# Conflicts: # Content.Server/GameTicking/GameTicker.StatusShell.cs # Content.Server/Implants/SubdermalImplantSystem.cs # Content.Server/Silicons/Borgs/BorgSystem.cs # Content.Shared/Preferences/HumanoidCharacterProfile.cs # Resources/Locale/en-US/_strings/advertisements/vending/smite.ftl # Resources/Maps/_Sunrise/Shuttles/wrecklaimer.yml # Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml # Resources/Prototypes/Entities/Stations/base.yml # Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml
|
|
@ -6,8 +6,7 @@
|
|||
xmlns:tabs="clr-namespace:Content.Client.Administration.UI.Tabs"
|
||||
xmlns:playerTab="clr-namespace:Content.Client.Administration.UI.Tabs.PlayerTab"
|
||||
xmlns:objectsTab="clr-namespace:Content.Client.Administration.UI.Tabs.ObjectsTab"
|
||||
xmlns:panic="clr-namespace:Content.Client.Administration.UI.Tabs.PanicBunkerTab"
|
||||
xmlns:baby="clr-namespace:Content.Client.Administration.UI.Tabs.BabyJailTab">
|
||||
xmlns:panic="clr-namespace:Content.Client.Administration.UI.Tabs.PanicBunkerTab">
|
||||
<TabContainer Name="MasterTabContainer">
|
||||
<adminTab:AdminTab />
|
||||
<adminbusTab:AdminbusTab />
|
||||
|
|
@ -15,7 +14,6 @@
|
|||
<tabs:RoundTab />
|
||||
<tabs:ServerTab />
|
||||
<panic:PanicBunkerTab Name="PanicBunkerControl" Access="Public" />
|
||||
<baby:BabyJailTab Name="BabyJailControl" Access="Public" />
|
||||
<playerTab:PlayerTab Name="PlayerTabControl" Access="Public" />
|
||||
<objectsTab:ObjectsTab Name="ObjectsTabControl" Access="Public" />
|
||||
</TabContainer>
|
||||
|
|
|
|||
|
|
@ -21,10 +21,6 @@ public sealed partial class AdminMenuWindow : DefaultWindow
|
|||
MasterTabContainer.SetTabTitle((int) TabIndex.Round, Loc.GetString("admin-menu-round-tab"));
|
||||
MasterTabContainer.SetTabTitle((int) TabIndex.Server, Loc.GetString("admin-menu-server-tab"));
|
||||
MasterTabContainer.SetTabTitle((int) TabIndex.PanicBunker, Loc.GetString("admin-menu-panic-bunker-tab"));
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
MasterTabContainer.SetTabTitle((int) TabIndex.BabyJail, Loc.GetString("admin-menu-baby-jail-tab"));
|
||||
MasterTabContainer.SetTabTitle((int) TabIndex.Players, Loc.GetString("admin-menu-players-tab"));
|
||||
MasterTabContainer.SetTabTitle((int) TabIndex.Objects, Loc.GetString("admin-menu-objects-tab"));
|
||||
MasterTabContainer.OnTabChanged += OnTabChanged;
|
||||
|
|
@ -52,7 +48,6 @@ public sealed partial class AdminMenuWindow : DefaultWindow
|
|||
Round,
|
||||
Server,
|
||||
PanicBunker,
|
||||
BabyJail,
|
||||
Players,
|
||||
Objects,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
<controls:BabyJailStatusWindow
|
||||
xmlns="https://spacestation14.io"
|
||||
xmlns:controls="clr-namespace:Content.Client.Administration.UI.Tabs.BabyJailTab"
|
||||
Title="{Loc admin-ui-baby-jail-window-title}">
|
||||
<RichTextLabel Name="MessageLabel" Access="Public" />
|
||||
</controls:BabyJailStatusWindow>
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
using Content.Client.Message;
|
||||
using Content.Client.UserInterface.Controls;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
|
||||
namespace Content.Client.Administration.UI.Tabs.BabyJailTab;
|
||||
|
||||
/*
|
||||
* TODO: Remove me once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class BabyJailStatusWindow : FancyWindow
|
||||
{
|
||||
public BabyJailStatusWindow()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
MessageLabel.SetMarkup(Loc.GetString("admin-ui-baby-jail-is-enabled"));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
<controls:BabyJailTab
|
||||
xmlns="https://spacestation14.io"
|
||||
xmlns:controls="clr-namespace:Content.Client.Administration.UI.Tabs.BabyJailTab"
|
||||
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
|
||||
Margin="4">
|
||||
<BoxContainer Orientation="Vertical">
|
||||
<cc:CommandButton Name="EnabledButton" Command="babyjail" ToggleMode="True"
|
||||
Text="{Loc admin-ui-baby-jail-disabled}"
|
||||
ToolTip="{Loc admin-ui-baby-jail-tooltip}" />
|
||||
<cc:CommandButton Name="ShowReasonButton" Command="babyjail_show_reason"
|
||||
ToggleMode="True" Text="{Loc admin-ui-baby-jail-show-reason}"
|
||||
ToolTip="{Loc admin-ui-baby-jail-show-reason-tooltip}" />
|
||||
<BoxContainer Orientation="Vertical" Margin="0 10 0 0">
|
||||
<BoxContainer Orientation="Horizontal" Margin="2">
|
||||
<Label Text="{Loc admin-ui-baby-jail-max-account-age}" MinWidth="175" />
|
||||
<LineEdit Name="MaxAccountAge" MinWidth="50" Margin="0 0 5 0" />
|
||||
<Label Text="{Loc generic-minutes}" />
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Horizontal" Margin="2">
|
||||
<Label Text="{Loc admin-ui-baby-jail-max-overall-minutes}" MinWidth="175" />
|
||||
<LineEdit Name="MaxOverallMinutes" MinWidth="50" Margin="0 0 5 0" />
|
||||
<Label Text="{Loc generic-minutes}" />
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
</controls:BabyJailTab>
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
using Content.Shared.Administration.Events;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Console;
|
||||
|
||||
/*
|
||||
* TODO: Remove me once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
namespace Content.Client.Administration.UI.Tabs.BabyJailTab;
|
||||
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class BabyJailTab : Control
|
||||
{
|
||||
[Dependency] private readonly IConsoleHost _console = default!;
|
||||
|
||||
private string _maxAccountAge;
|
||||
private string _maxOverallMinutes;
|
||||
|
||||
public BabyJailTab()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
MaxAccountAge.OnTextEntered += args => SendMaxAccountAge(args.Text);
|
||||
MaxAccountAge.OnFocusExit += args => SendMaxAccountAge(args.Text);
|
||||
_maxAccountAge = MaxAccountAge.Text;
|
||||
|
||||
MaxOverallMinutes.OnTextEntered += args => SendMaxOverallMinutes(args.Text);
|
||||
MaxOverallMinutes.OnFocusExit += args => SendMaxOverallMinutes(args.Text);
|
||||
_maxOverallMinutes = MaxOverallMinutes.Text;
|
||||
}
|
||||
|
||||
private void SendMaxAccountAge(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text) ||
|
||||
text == _maxAccountAge ||
|
||||
!int.TryParse(text, out var minutes))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_console.ExecuteCommand($"babyjail_max_account_age {minutes}");
|
||||
}
|
||||
|
||||
private void SendMaxOverallMinutes(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text) ||
|
||||
text == _maxOverallMinutes ||
|
||||
!int.TryParse(text, out var minutes))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_console.ExecuteCommand($"babyjail_max_overall_minutes {minutes}");
|
||||
}
|
||||
|
||||
public void UpdateStatus(BabyJailStatus status)
|
||||
{
|
||||
EnabledButton.Pressed = status.Enabled;
|
||||
EnabledButton.Text = Loc.GetString(status.Enabled
|
||||
? "admin-ui-baby-jail-enabled"
|
||||
: "admin-ui-baby-jail-disabled"
|
||||
);
|
||||
EnabledButton.ModulateSelfOverride = status.Enabled ? Color.Red : null;
|
||||
ShowReasonButton.Pressed = status.ShowReason;
|
||||
|
||||
MaxAccountAge.Text = status.MaxAccountAgeMinutes.ToString();
|
||||
_maxAccountAge = MaxAccountAge.Text;
|
||||
|
||||
MaxOverallMinutes.Text = status.MaxOverallMinutes.ToString();
|
||||
_maxOverallMinutes = MaxOverallMinutes.Text;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ using Content.Client.Administration.Systems;
|
|||
using Content.Client.Administration.UI;
|
||||
using Content.Client.Administration.UI.Tabs.ObjectsTab;
|
||||
using Content.Client.Administration.UI.Tabs.PanicBunkerTab;
|
||||
using Content.Client.Administration.UI.Tabs.BabyJailTab;
|
||||
using Content.Client.Administration.UI.Tabs.PlayerTab;
|
||||
using Content.Client.Gameplay;
|
||||
using Content.Client.Lobby;
|
||||
|
|
@ -38,13 +37,11 @@ public sealed class AdminUIController : UIController,
|
|||
private AdminMenuWindow? _window;
|
||||
private MenuButton? AdminButton => UIManager.GetActiveUIWidgetOrNull<MenuBar.Widgets.GameTopMenuBar>()?.AdminButton;
|
||||
private PanicBunkerStatus? _panicBunker;
|
||||
private BabyJailStatus? _babyJail;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeNetworkEvent<PanicBunkerChangedEvent>(OnPanicBunkerUpdated);
|
||||
SubscribeNetworkEvent<BabyJailChangedEvent>(OnBabyJailUpdated);
|
||||
}
|
||||
|
||||
private void OnPanicBunkerUpdated(PanicBunkerChangedEvent msg, EntitySessionEventArgs args)
|
||||
|
|
@ -59,18 +56,6 @@ public sealed class AdminUIController : UIController,
|
|||
}
|
||||
}
|
||||
|
||||
private void OnBabyJailUpdated(BabyJailChangedEvent msg, EntitySessionEventArgs args)
|
||||
{
|
||||
var showDialog = _babyJail == null && msg.Status.Enabled;
|
||||
_babyJail = msg.Status;
|
||||
_window?.BabyJailControl.UpdateStatus(msg.Status);
|
||||
|
||||
if (showDialog)
|
||||
{
|
||||
UIManager.CreateWindow<BabyJailStatusWindow>().OpenCentered();
|
||||
}
|
||||
}
|
||||
|
||||
public void OnStateEntered(GameplayState state)
|
||||
{
|
||||
EnsureWindow();
|
||||
|
|
@ -116,13 +101,6 @@ public sealed class AdminUIController : UIController,
|
|||
if (_panicBunker != null)
|
||||
_window.PanicBunkerControl.UpdateStatus(_panicBunker);
|
||||
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
if (_babyJail != null)
|
||||
_window.BabyJailControl.UpdateStatus(_babyJail);
|
||||
|
||||
_window.PlayerTabControl.OnEntryKeyBindDown += PlayerTabEntryKeyBindDown;
|
||||
_window.ObjectsTabControl.OnEntryKeyBindDown += ObjectsTabEntryKeyBindDown;
|
||||
_window.OnOpen += OnWindowOpen;
|
||||
|
|
|
|||
|
|
@ -64,9 +64,8 @@ namespace Content.IntegrationTests.Tests
|
|||
"Gate",
|
||||
"Amber",
|
||||
"Loop",
|
||||
"Plasma",
|
||||
"Elkridge"
|
||||
|
||||
|
||||
};
|
||||
|
||||
// Sunrise-Start
|
||||
|
|
|
|||
|
|
@ -974,10 +974,10 @@ namespace Content.Server.Database
|
|||
Full = 2,
|
||||
Panic = 3,
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*
|
||||
* If baby jail is removed, please reserve this value for as long as can reasonably be done to prevent causing ambiguity in connection denial reasons.
|
||||
* Reservation by commenting out the value is likely sufficient for this purpose, but may impact projects which depend on SS14 like SS14.Admin.
|
||||
*
|
||||
* Edit: It has
|
||||
*/
|
||||
BabyJail = 4,
|
||||
/// Results from rejected connections with external API checking tools
|
||||
|
|
|
|||
|
|
@ -1,139 +0,0 @@
|
|||
using Content.Shared.Administration;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Console;
|
||||
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
namespace Content.Server.Administration.Commands;
|
||||
|
||||
[AdminCommand(AdminFlags.Server)]
|
||||
public sealed class BabyJailCommand : LocalizedCommands
|
||||
{
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
public override string Command => "babyjail";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
var toggle = Toggle(CCVars.BabyJailEnabled, shell, args, _cfg);
|
||||
if (toggle == null)
|
||||
return;
|
||||
|
||||
shell.WriteLine(Loc.GetString(toggle.Value ? "babyjail-command-enabled" : "babyjail-command-disabled"));
|
||||
}
|
||||
|
||||
public static bool? Toggle(CVarDef<bool> cvar, IConsoleShell shell, string[] args, IConfigurationManager config)
|
||||
{
|
||||
if (args.Length > 1)
|
||||
{
|
||||
shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1)));
|
||||
return null;
|
||||
}
|
||||
|
||||
var enabled = config.GetCVar(cvar);
|
||||
|
||||
switch (args.Length)
|
||||
{
|
||||
case 0:
|
||||
enabled = !enabled;
|
||||
break;
|
||||
case 1 when !bool.TryParse(args[0], out enabled):
|
||||
shell.WriteError(Loc.GetString("shell-argument-must-be-boolean"));
|
||||
return null;
|
||||
}
|
||||
|
||||
config.SetCVar(cvar, enabled);
|
||||
|
||||
return enabled;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[AdminCommand(AdminFlags.Server)]
|
||||
public sealed class BabyJailShowReasonCommand : LocalizedCommands
|
||||
{
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
public override string Command => "babyjail_show_reason";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
var toggle = BabyJailCommand.Toggle(CCVars.BabyJailShowReason, shell, args, _cfg);
|
||||
if (toggle == null)
|
||||
return;
|
||||
|
||||
shell.WriteLine(Loc.GetString(toggle.Value
|
||||
? "babyjail-command-show-reason-enabled"
|
||||
: "babyjail-command-show-reason-disabled"
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
[AdminCommand(AdminFlags.Server)]
|
||||
public sealed class BabyJailMinAccountAgeCommand : LocalizedCommands
|
||||
{
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
public override string Command => "babyjail_max_account_age";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
switch (args.Length)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
var current = _cfg.GetCVar(CCVars.BabyJailMaxAccountAge);
|
||||
shell.WriteLine(Loc.GetString("babyjail-command-max-account-age-is", ("minutes", current)));
|
||||
break;
|
||||
}
|
||||
case > 1:
|
||||
shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1)));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!int.TryParse(args[0], out var minutes))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("shell-argument-must-be-number"));
|
||||
return;
|
||||
}
|
||||
|
||||
_cfg.SetCVar(CCVars.BabyJailMaxAccountAge, minutes);
|
||||
shell.WriteLine(Loc.GetString("babyjail-command-max-account-age-set", ("minutes", minutes)));
|
||||
}
|
||||
}
|
||||
|
||||
[AdminCommand(AdminFlags.Server)]
|
||||
public sealed class BabyJailMinOverallHoursCommand : LocalizedCommands
|
||||
{
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
public override string Command => "babyjail_max_overall_minutes";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
switch (args.Length)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
var current = _cfg.GetCVar(CCVars.BabyJailMaxOverallMinutes);
|
||||
shell.WriteLine(Loc.GetString("babyjail-command-max-overall-minutes-is", ("minutes", current)));
|
||||
break;
|
||||
}
|
||||
case > 1:
|
||||
shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1)));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!int.TryParse(args[0], out var hours))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("shell-argument-must-be-number"));
|
||||
return;
|
||||
}
|
||||
|
||||
_cfg.SetCVar(CCVars.BabyJailMaxOverallMinutes, hours);
|
||||
shell.WriteLine(Loc.GetString("babyjail-command-overall-minutes-set", ("hours", hours)));
|
||||
}
|
||||
}
|
||||
|
|
@ -65,7 +65,6 @@ public sealed class AdminSystem : EntitySystem
|
|||
|
||||
private readonly HashSet<NetUserId> _roundActivePlayers = new();
|
||||
public readonly PanicBunkerStatus PanicBunker = new();
|
||||
public readonly BabyJailStatus BabyJail = new();
|
||||
|
||||
private ISharedSponsorsManager? _sponsorsManager; // Sunrise-Sponsors
|
||||
|
||||
|
|
@ -86,16 +85,6 @@ public sealed class AdminSystem : EntitySystem
|
|||
Subs.CVar(_config, CCVars.PanicBunkerMinAccountAge, OnPanicBunkerMinAccountAgeChanged, true);
|
||||
Subs.CVar(_config, CCVars.PanicBunkerMinOverallMinutes, OnPanicBunkerMinOverallMinutesChanged, true);
|
||||
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
// Baby Jail Settings
|
||||
Subs.CVar(_config, CCVars.BabyJailEnabled, OnBabyJailChanged, true);
|
||||
Subs.CVar(_config, CCVars.BabyJailShowReason, OnBabyJailShowReasonChanged, true);
|
||||
Subs.CVar(_config, CCVars.BabyJailMaxAccountAge, OnBabyJailMaxAccountAgeChanged, true);
|
||||
Subs.CVar(_config, CCVars.BabyJailMaxOverallMinutes, OnBabyJailMaxOverallMinutesChanged, true);
|
||||
|
||||
SubscribeLocalEvent<IdentityChangedEvent>(OnIdentityChanged);
|
||||
SubscribeLocalEvent<PlayerAttachedEvent>(OnPlayerAttached);
|
||||
SubscribeLocalEvent<PlayerDetachedEvent>(OnPlayerDetached);
|
||||
|
|
@ -294,17 +283,6 @@ public sealed class AdminSystem : EntitySystem
|
|||
SendPanicBunkerStatusAll();
|
||||
}
|
||||
|
||||
private void OnBabyJailChanged(bool enabled)
|
||||
{
|
||||
BabyJail.Enabled = enabled;
|
||||
_chat.SendAdminAlert(Loc.GetString(enabled
|
||||
? "admin-ui-baby-jail-enabled-admin-alert"
|
||||
: "admin-ui-baby-jail-disabled-admin-alert"
|
||||
));
|
||||
|
||||
SendBabyJailStatusAll();
|
||||
}
|
||||
|
||||
private void OnPanicBunkerDisableWithAdminsChanged(bool enabled)
|
||||
{
|
||||
PanicBunker.DisableWithAdmins = enabled;
|
||||
|
|
@ -329,36 +307,18 @@ public sealed class AdminSystem : EntitySystem
|
|||
SendPanicBunkerStatusAll();
|
||||
}
|
||||
|
||||
private void OnBabyJailShowReasonChanged(bool enabled)
|
||||
{
|
||||
BabyJail.ShowReason = enabled;
|
||||
SendBabyJailStatusAll();
|
||||
}
|
||||
|
||||
private void OnPanicBunkerMinAccountAgeChanged(int minutes)
|
||||
{
|
||||
PanicBunker.MinAccountAgeMinutes = minutes;
|
||||
SendPanicBunkerStatusAll();
|
||||
}
|
||||
|
||||
private void OnBabyJailMaxAccountAgeChanged(int minutes)
|
||||
{
|
||||
BabyJail.MaxAccountAgeMinutes = minutes;
|
||||
SendBabyJailStatusAll();
|
||||
}
|
||||
|
||||
private void OnPanicBunkerMinOverallMinutesChanged(int minutes)
|
||||
{
|
||||
PanicBunker.MinOverallMinutes = minutes;
|
||||
SendPanicBunkerStatusAll();
|
||||
}
|
||||
|
||||
private void OnBabyJailMaxOverallMinutesChanged(int minutes)
|
||||
{
|
||||
BabyJail.MaxOverallMinutes = minutes;
|
||||
SendBabyJailStatusAll();
|
||||
}
|
||||
|
||||
private void UpdatePanicBunker()
|
||||
{
|
||||
var hasAdmins = false;
|
||||
|
|
@ -405,15 +365,6 @@ public sealed class AdminSystem : EntitySystem
|
|||
}
|
||||
}
|
||||
|
||||
private void SendBabyJailStatusAll()
|
||||
{
|
||||
var ev = new BabyJailChangedEvent(BabyJail);
|
||||
foreach (var admin in _adminManager.AllAdmins)
|
||||
{
|
||||
RaiseNetworkEvent(ev, admin);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Erases a player from the round.
|
||||
/// This removes them and any trace of them from the round, deleting their
|
||||
|
|
|
|||
|
|
@ -291,14 +291,6 @@ namespace Content.Server.Connection
|
|||
}
|
||||
}
|
||||
|
||||
if (_cfg.GetCVar(CCVars.BabyJailEnabled) && adminData == null)
|
||||
{
|
||||
var result = await IsInvalidConnectionDueToBabyJail(userId, e);
|
||||
|
||||
if (result.IsInvalid)
|
||||
return (ConnectionDenyReason.BabyJail, result.Reason, null);
|
||||
}
|
||||
|
||||
var wasInGame = EntitySystem.TryGet<GameTicker>(out var ticker) &&
|
||||
ticker.PlayerGameStatuses.TryGetValue(userId, out var status) &&
|
||||
status == PlayerGameStatus.JoinedGame;
|
||||
|
|
@ -358,72 +350,6 @@ namespace Content.Server.Connection
|
|||
return null;
|
||||
}
|
||||
|
||||
private async Task<(bool IsInvalid, string Reason)> IsInvalidConnectionDueToBabyJail(NetUserId userId, NetConnectingArgs e)
|
||||
{
|
||||
// If you're whitelisted then bypass this whole thing
|
||||
if (await _db.GetWhitelistStatusAsync(userId))
|
||||
return (false, "");
|
||||
|
||||
// Initial cvar retrieval
|
||||
var showReason = _cfg.GetCVar(CCVars.BabyJailShowReason);
|
||||
var reason = _cfg.GetCVar(CCVars.BabyJailCustomReason);
|
||||
var maxAccountAgeMinutes = _cfg.GetCVar(CCVars.BabyJailMaxAccountAge);
|
||||
var maxPlaytimeMinutes = _cfg.GetCVar(CCVars.BabyJailMaxOverallMinutes);
|
||||
|
||||
// Wait some time to lookup data
|
||||
var record = await _db.GetPlayerRecordByUserId(userId);
|
||||
|
||||
// No player record = new account or the DB is having a skill issue
|
||||
if (record == null)
|
||||
return (false, "");
|
||||
|
||||
var isAccountAgeInvalid = record.FirstSeenTime.CompareTo(DateTimeOffset.UtcNow - TimeSpan.FromMinutes(maxAccountAgeMinutes)) <= 0;
|
||||
|
||||
if (isAccountAgeInvalid)
|
||||
{
|
||||
_sawmill.Debug($"Baby jail will deny {userId} for account age {record.FirstSeenTime}"); // Remove on or after 2024-09
|
||||
}
|
||||
|
||||
if (isAccountAgeInvalid && showReason)
|
||||
{
|
||||
var locAccountReason = reason != string.Empty
|
||||
? reason
|
||||
: Loc.GetString("baby-jail-account-denied-reason",
|
||||
("reason",
|
||||
Loc.GetString(
|
||||
"baby-jail-account-reason-account",
|
||||
("minutes", maxAccountAgeMinutes))));
|
||||
|
||||
return (true, locAccountReason);
|
||||
}
|
||||
|
||||
var overallTime = ( await _db.GetPlayTimes(e.UserId)).Find(p => p.Tracker == PlayTimeTrackingShared.TrackerOverall);
|
||||
var isTotalPlaytimeInvalid = overallTime != null && overallTime.TimeSpent.TotalMinutes >= maxPlaytimeMinutes;
|
||||
|
||||
if (isTotalPlaytimeInvalid)
|
||||
{
|
||||
_sawmill.Debug($"Baby jail will deny {userId} for playtime {overallTime!.TimeSpent}"); // Remove on or after 2024-09
|
||||
}
|
||||
|
||||
if (isTotalPlaytimeInvalid && showReason)
|
||||
{
|
||||
var locPlaytimeReason = reason != string.Empty
|
||||
? reason
|
||||
: Loc.GetString("baby-jail-account-denied-reason",
|
||||
("reason",
|
||||
Loc.GetString(
|
||||
"baby-jail-account-reason-overall",
|
||||
("minutes", maxPlaytimeMinutes))));
|
||||
|
||||
return (true, locPlaytimeReason);
|
||||
}
|
||||
|
||||
if (!showReason && isTotalPlaytimeInvalid || isAccountAgeInvalid)
|
||||
return (true, Loc.GetString("baby-jail-account-denied"));
|
||||
|
||||
return (false, "");
|
||||
}
|
||||
|
||||
private bool HasTemporaryBypass(NetUserId user)
|
||||
{
|
||||
return _temporaryBypasses.TryGetValue(user, out var time) && time > _gameTiming.RealTime;
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ public sealed partial class PuddleSystem
|
|||
Spawn("PuddleSparkle", xformQuery.GetComponent(uid).Coordinates);
|
||||
QueueDel(uid);
|
||||
}
|
||||
|
||||
_solutionContainerSystem.UpdateChemicals(puddle.Solution.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using System.Linq;
|
||||
using System.Text.Json.Nodes;
|
||||
using Content.Shared._Sunrise.SunriseCCVars;
|
||||
using Content.Shared.CCVar;
|
||||
|
|
@ -48,6 +49,11 @@ namespace Content.Server.GameTicking
|
|||
: _playerManager.PlayerCount;
|
||||
// Sunrise-End
|
||||
|
||||
if (_cfg.GetCVar(CCVars.AdminsCountInReportedPlayerCount))
|
||||
{
|
||||
players -= _adminManager.ActiveAdmins.Count();
|
||||
}
|
||||
|
||||
jObject["name"] = _baseServer.ServerName;
|
||||
jObject["map"] = _gameMapManager.GetSelectedMap()?.MapName;
|
||||
jObject["round_id"] = _gameTicker.RoundId;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ using Content.Server.Body.Components;
|
|||
using Content.Shared.Maps;
|
||||
using Content.Shared.Movement.Pulling.Components;
|
||||
using Content.Shared.Movement.Pulling.Systems;
|
||||
using Content.Server.IdentityManagement;
|
||||
using Content.Shared.Store.Components;
|
||||
using Robust.Server.Containers;
|
||||
using Robust.Shared.Collections;
|
||||
|
|
@ -45,6 +46,7 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
|
|||
[Dependency] private readonly PullingSystem _pullingSystem = default!;
|
||||
[Dependency] private readonly EntityLookupSystem _lookupSystem = default!;
|
||||
[Dependency] private readonly SharedMapSystem _mapSystem = default!;
|
||||
[Dependency] private readonly IdentitySystem _identity = default!;
|
||||
[Dependency] private readonly ContainerSystem _container = default!;
|
||||
|
||||
private EntityQuery<PhysicsComponent> _physicsQuery;
|
||||
|
|
@ -258,7 +260,7 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
|
|||
{
|
||||
var newProfile = HumanoidCharacterProfile.RandomWithSpecies(humanoid.Species);
|
||||
_humanoidAppearance.LoadProfile(ent, newProfile, humanoid);
|
||||
_metaData.SetEntityName(ent, newProfile.Name);
|
||||
_metaData.SetEntityName(ent, newProfile.Name, raiseEvents: false); // raising events would update ID card, station record, etc.
|
||||
if (TryComp<DnaComponent>(ent, out var dna))
|
||||
{
|
||||
dna.DNA = _forensicsSystem.GenerateDNA();
|
||||
|
|
@ -270,6 +272,7 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
|
|||
{
|
||||
fingerprint.Fingerprint = _forensicsSystem.GenerateFingerprint();
|
||||
}
|
||||
_identity.QueueIdentityUpdate(ent); // manually queue identity update since we don't raise the event
|
||||
_popup.PopupEntity(Loc.GetString("scramble-implant-activated-popup"), ent, ent);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -154,38 +154,20 @@ public sealed partial class BorgSystem : SharedBorgSystem
|
|||
{
|
||||
base.OnInserted(uid, component, args);
|
||||
|
||||
//Sunrise-start: Fix borgs minds
|
||||
if (HasComp<BorgBrainComponent>(args.Entity) && _mind.TryGetMind(args.Entity, out var mindId, out var mind))
|
||||
if (HasComp<BorgBrainComponent>(args.Entity) && _mind.TryGetMind(args.Entity, out var mindId, out var mind) && args.Container == component.BrainContainer)
|
||||
{
|
||||
if (TryComp<ContainerManagerComponent>(uid, out var containerManager) &&
|
||||
containerManager.TryGetContainer("borg_brain", out var borgBrainContainer))
|
||||
{
|
||||
if (borgBrainContainer.Contains(args.Entity))
|
||||
{
|
||||
_mind.TransferTo(mindId, uid, mind: mind);
|
||||
}
|
||||
}
|
||||
_mind.TransferTo(mindId, uid, mind: mind);
|
||||
}
|
||||
//Sunrise-end
|
||||
}
|
||||
|
||||
protected override void OnRemoved(EntityUid uid, BorgChassisComponent component, EntRemovedFromContainerMessage args)
|
||||
{
|
||||
base.OnRemoved(uid, component, args);
|
||||
|
||||
//Sunrise-start: Fix borgs minds
|
||||
if (HasComp<BorgBrainComponent>(args.Entity) && _mind.TryGetMind(uid, out var mindId, out var mind))
|
||||
if (HasComp<BorgBrainComponent>(args.Entity) && _mind.TryGetMind(uid, out var mindId, out var mind) && args.Container == component.BrainContainer)
|
||||
{
|
||||
if (TryComp<ContainerManagerComponent>(uid, out var containerManager) &&
|
||||
containerManager.TryGetContainer("borg_brain", out var borgBrainContainer))
|
||||
{
|
||||
if (borgBrainContainer.ContainedEntities.Count == 0)
|
||||
{
|
||||
_mind.TransferTo(mindId, args.Entity, mind: mind);
|
||||
}
|
||||
}
|
||||
_mind.TransferTo(mindId, args.Entity, mind: mind);
|
||||
}
|
||||
//Sunrise-end
|
||||
}
|
||||
|
||||
private void OnMindAdded(EntityUid uid, BorgChassisComponent component, MindAddedMessage args)
|
||||
|
|
@ -310,8 +292,11 @@ public sealed partial class BorgSystem : SharedBorgSystem
|
|||
public void BorgActivate(EntityUid uid, BorgChassisComponent component)
|
||||
{
|
||||
Popup.PopupEntity(Loc.GetString("borg-mind-added", ("name", Identity.Name(uid, EntityManager))), uid);
|
||||
Toggle.TryActivate(uid);
|
||||
_powerCell.SetDrawEnabled(uid, _mobState.IsAlive(uid));
|
||||
if (_powerCell.HasDrawCharge(uid))
|
||||
{
|
||||
Toggle.TryActivate(uid);
|
||||
_powerCell.SetDrawEnabled(uid, _mobState.IsAlive(uid));
|
||||
}
|
||||
_appearance.SetData(uid, BorgVisuals.HasPlayer, true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
using Robust.Shared.Serialization;
|
||||
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
namespace Content.Shared.Administration.Events;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class BabyJailStatus
|
||||
{
|
||||
public bool Enabled;
|
||||
public bool ShowReason;
|
||||
public int MaxAccountAgeMinutes;
|
||||
public int MaxOverallMinutes;
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class BabyJailChangedEvent(BabyJailStatus status) : EntityEventArgs
|
||||
{
|
||||
public BabyJailStatus Status = status;
|
||||
}
|
||||
|
|
@ -164,6 +164,13 @@ public sealed partial class CCVars
|
|||
public static readonly CVarDef<bool> AdminsCountForMaxPlayers =
|
||||
CVarDef.Create("admin.admins_count_for_max_players", false, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Should admins be hidden from the player count reported to the launcher/via api?
|
||||
/// This is hub advert safe, in case that's a worry.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> AdminsCountInReportedPlayerCount =
|
||||
CVarDef.Create("admin.admins_count_in_playercount", false, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Determine if custom rank names are used.
|
||||
/// If it is false, it'd use the actual rank name regardless of the individual's title.
|
||||
|
|
|
|||
|
|
@ -198,48 +198,6 @@ public sealed partial class CCVars
|
|||
public static readonly CVarDef<bool> BypassBunkerWhitelist =
|
||||
CVarDef.Create("game.panic_bunker.whitelisted_can_bypass", true, CVar.SERVERONLY);
|
||||
|
||||
/*
|
||||
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
||||
*/
|
||||
|
||||
/// <summary>
|
||||
/// Whether the baby jail is currently enabled.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> BabyJailEnabled =
|
||||
CVarDef.Create("game.baby_jail.enabled", false, CVar.NOTIFY | CVar.REPLICATED | CVar.SERVER);
|
||||
|
||||
/// <summary>
|
||||
/// Show reason of disconnect for user or not.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> BabyJailShowReason =
|
||||
CVarDef.Create("game.baby_jail.show_reason", false, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Maximum age of the account (from server's PoV, so from first-seen date) in minutes that can access baby
|
||||
/// jailed servers.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<int> BabyJailMaxAccountAge =
|
||||
CVarDef.Create("game.baby_jail.max_account_age", 1440, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Maximum overall played time allowed to access baby jailed servers.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<int> BabyJailMaxOverallMinutes =
|
||||
CVarDef.Create("game.baby_jail.max_overall_minutes", 120, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// A custom message that will be used for connections denied due to the baby jail.
|
||||
/// If not empty, then will overwrite <see cref="BabyJailShowReason"/>
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> BabyJailCustomReason =
|
||||
CVarDef.Create("game.baby_jail.custom_reason", string.Empty, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Allow bypassing the baby jail if the user is whitelisted.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> BypassBabyJailWhitelist =
|
||||
CVarDef.Create("game.baby_jail.whitelisted_can_bypass", true, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Enable IPIntel for blocking VPN connections from new players.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -75,10 +75,10 @@ namespace Content.Shared.Containers.ItemSlots
|
|||
public EntityWhitelist? Blacklist;
|
||||
|
||||
[DataField]
|
||||
public SoundSpecifier InsertSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg");
|
||||
public SoundSpecifier? InsertSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg");
|
||||
|
||||
[DataField]
|
||||
public SoundSpecifier EjectSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagOut/revolver_magout.ogg");
|
||||
public SoundSpecifier? EjectSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagOut/revolver_magout.ogg");
|
||||
|
||||
/// <summary>
|
||||
/// The name of this item slot. This will be shown to the user in the verb menu.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using Content.Shared.Item.ItemToggle.Components;
|
||||
using Content.Shared.Light.Components;
|
||||
using Content.Shared.Toggleable;
|
||||
using ItemTogglePointLightComponent = Content.Shared.Light.Components.ItemTogglePointLightComponent;
|
||||
|
||||
|
|
@ -11,6 +12,7 @@ public sealed class ItemTogglePointLightSystem : EntitySystem
|
|||
{
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly SharedPointLightSystem _light = default!;
|
||||
[Dependency] private readonly SharedHandheldLightSystem _handheldLight = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -25,5 +27,9 @@ public sealed class ItemTogglePointLightSystem : EntitySystem
|
|||
|
||||
_appearance.SetData(ent, ToggleableLightVisuals.Enabled, args.Activated);
|
||||
_light.SetEnabled(ent.Owner, args.Activated, comp: light);
|
||||
if (TryComp<HandheldLightComponent>(ent.Owner, out var handheldLight))
|
||||
{
|
||||
_handheldLight.SetActivated(ent.Owner, args.Activated, handheldLight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -713,5 +713,13 @@ Entries:
|
|||
id: 88
|
||||
time: '2025-01-15T00:32:24.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/33483
|
||||
- author: Myra
|
||||
changes:
|
||||
- message: Admins are by default now hidden from the reported player count on the
|
||||
launcher.
|
||||
type: Add
|
||||
id: 89
|
||||
time: '2025-01-15T21:10:54.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34406
|
||||
Name: Admin
|
||||
Order: 1
|
||||
|
|
|
|||
|
|
@ -1,100 +1,4 @@
|
|||
Entries:
|
||||
- author: LucasTheDrgn
|
||||
changes:
|
||||
- message: Restored functionality to the Industrial Reagent Grinder
|
||||
type: Fix
|
||||
id: 7310
|
||||
time: '2024-09-07T23:47:02.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31903
|
||||
- author: EmoGarbage404
|
||||
changes:
|
||||
- message: Added the biogenerator! Botany can use this machine to create various
|
||||
materials, chemicals, and food items out of the
|
||||
type: Add
|
||||
id: 7311
|
||||
time: '2024-09-08T05:34:22.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30694
|
||||
- author: TheShuEd
|
||||
changes:
|
||||
- message: Returned Taco microwave recipes (people were sad)
|
||||
type: Add
|
||||
- message: added an alternative method of crafting some burgers, through the correct
|
||||
assembly sequence of modular food.
|
||||
type: Add
|
||||
- message: severely cut back on the number of items you can put on burgers, tacos,
|
||||
or kebabs. This had poor design, and things need to be separately resprited
|
||||
by adding them on modular food.
|
||||
type: Tweak
|
||||
id: 7312
|
||||
time: '2024-09-08T06:22:27.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31012
|
||||
- author: metalgearsloth
|
||||
changes:
|
||||
- message: Fix the FTL bubbles sometimes persisting.
|
||||
type: Fix
|
||||
- message: Fix AI eye being able to FTL.
|
||||
type: Fix
|
||||
- message: Fix the AI eye being able to be FTL smashed.
|
||||
type: Fix
|
||||
id: 7313
|
||||
time: '2024-09-08T08:12:24.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31952
|
||||
- author: PopGamer46
|
||||
changes:
|
||||
- message: Fixed being able to craft the justice helmet with a justice helmet
|
||||
type: Fix
|
||||
id: 7314
|
||||
time: '2024-09-08T10:21:55.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31957
|
||||
- author: Killerqu00
|
||||
changes:
|
||||
- message: Seclite is now restricted to security.
|
||||
type: Tweak
|
||||
- message: Handcuffs are now restricted to security and command.
|
||||
type: Tweak
|
||||
- message: Trench whistle is now minor contraband.
|
||||
type: Tweak
|
||||
id: 7315
|
||||
time: '2024-09-08T12:06:01.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31956
|
||||
- author: Psychpsyo
|
||||
changes:
|
||||
- message: The random sentience event should now actually happen again.
|
||||
type: Fix
|
||||
id: 7316
|
||||
time: '2024-09-08T12:10:50.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31953
|
||||
- author: Beck Thompson
|
||||
changes:
|
||||
- message: Gold and silver rings now give a small amount of materials when scrapped.
|
||||
type: Tweak
|
||||
id: 7317
|
||||
time: '2024-09-08T16:10:05.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31847
|
||||
- author: K-Dynamic
|
||||
changes:
|
||||
- message: added missing missing resistance values for directional plasma and uranium
|
||||
windows
|
||||
type: Fix
|
||||
id: 7318
|
||||
time: '2024-09-08T18:08:06.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31975
|
||||
- author: qwerltaz
|
||||
changes:
|
||||
- message: Power cables on the ground are now offset and do not obscure each other
|
||||
or pipes beneath.
|
||||
type: Tweak
|
||||
id: 7319
|
||||
time: '2024-09-09T10:00:18.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32000
|
||||
- author: ArtisticRoomba
|
||||
changes:
|
||||
- message: Budget insulated gloves now leave behind yellow frayed insulative fibers
|
||||
instead of yellow insulative fibers. Detectives, rejoice!
|
||||
type: Tweak
|
||||
id: 7320
|
||||
time: '2024-09-09T10:30:25.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/31886
|
||||
- author: slarticodefast
|
||||
changes:
|
||||
- message: Revenants or other mobs without hands can no longer spill jugs.
|
||||
|
|
@ -3937,3 +3841,84 @@
|
|||
id: 7809
|
||||
time: '2025-01-15T00:10:39.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34419
|
||||
- author: ArtisticRoomba
|
||||
changes:
|
||||
- message: The station anchor machine board can no longer be printed at the circuit
|
||||
imprinter.
|
||||
type: Remove
|
||||
id: 7810
|
||||
time: '2025-01-15T16:26:19.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34358
|
||||
- author: ArtisticRoomba
|
||||
changes:
|
||||
- message: Mime PDA item interactions (insertions/ejections of IDs, pens, etc.)
|
||||
are now silent.
|
||||
type: Tweak
|
||||
id: 7811
|
||||
time: '2025-01-15T18:03:49.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34426
|
||||
- author: Alpaccalypse
|
||||
changes:
|
||||
- message: Smite soda vending machines have been added to the game.
|
||||
type: Add
|
||||
id: 7812
|
||||
time: '2025-01-15T18:20:01.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34420
|
||||
- author: kosticia
|
||||
changes:
|
||||
- message: Bedsheets now can be printed on uniform printer
|
||||
type: Add
|
||||
id: 7813
|
||||
time: '2025-01-15T19:35:59.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34034
|
||||
- author: TheShuEd
|
||||
changes:
|
||||
- message: Christmas anomaly removed
|
||||
type: Remove
|
||||
id: 7814
|
||||
time: '2025-01-15T20:22:32.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34053
|
||||
- author: Kickguy223
|
||||
changes:
|
||||
- message: Puddles will now correctly evaporate
|
||||
type: Fix
|
||||
id: 7815
|
||||
time: '2025-01-15T21:21:20.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34303
|
||||
- author: themias
|
||||
changes:
|
||||
- message: The DNA scrambler implant no longer updates your ID card or station record
|
||||
type: Fix
|
||||
id: 7816
|
||||
time: '2025-01-15T22:49:51.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34091
|
||||
- author: jbox144
|
||||
changes:
|
||||
- message: Added Plasma Station
|
||||
type: Add
|
||||
id: 7817
|
||||
time: '2025-01-16T07:02:14.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/33991
|
||||
- author: jbox144
|
||||
changes:
|
||||
- message: Reduced Plasma's minimum population to 20, maximum population to 60
|
||||
type: Tweak
|
||||
- message: Reduced Plasma's clown jobs from 2 to 1
|
||||
type: Tweak
|
||||
id: 7818
|
||||
time: '2025-01-16T08:51:17.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34462
|
||||
- author: pcaessayrs
|
||||
changes:
|
||||
- message: Uranium, Cak, and BreadDog are no longer space garbage.
|
||||
type: Fix
|
||||
id: 7819
|
||||
time: '2025-01-16T11:40:22.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/34192
|
||||
- author: GansuLalan
|
||||
changes:
|
||||
- message: Pianos will no longer push players off when climbing them
|
||||
type: Fix
|
||||
id: 7820
|
||||
time: '2025-01-16T12:25:08.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/33690
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ panic_bunker.enable_without_admins = true
|
|||
panic_bunker.show_reason = true
|
||||
panic_bunker.custom_reason = "You have not played on a Wizard's Den server long enough to connect to this server. Please play on Wizard's Den Lizard until you have more playtime."
|
||||
|
||||
# IPIntel stuff
|
||||
ipintel_enabled = true
|
||||
ipintel_contact_email = "telecommunications@spacestation14.com"
|
||||
|
||||
[infolinks]
|
||||
bug_report = "https://github.com/space-wizards/space-station-14/issues/new/choose"
|
||||
discord = "https://discord.spacestation14.io"
|
||||
|
|
@ -44,6 +48,6 @@ alert.min_players_sharing_connection = 2
|
|||
max_explosion_range = 5
|
||||
|
||||
[status]
|
||||
privacy_policy_link = "https://account.spacestation14.com/Home/Privacy"
|
||||
privacy_policy_link = "https://spacestation14.com/about/privacy/#game-server-privacy-policy"
|
||||
privacy_policy_identifier = "wizden"
|
||||
privacy_policy_version = "2024-12-22"
|
||||
privacy_policy_version = "2025-01-19"
|
||||
|
|
|
|||
|
|
@ -11,12 +11,6 @@ panic_bunker.enabled = false
|
|||
panic_bunker.disable_with_admins = false
|
||||
panic_bunker.enable_without_admins = false
|
||||
panic_bunker.custom_reason = ""
|
||||
baby_jail.enabled = true
|
||||
baby_jail.show_reason = true
|
||||
baby_jail.max_account_age = 5256000 # 10 years. Disabling this check specifically isn't currently supported
|
||||
baby_jail.max_overall_minutes = 3000 # 50 hours
|
||||
baby_jail.custom_reason = "Sorry! Only new and whitelisted players can join this server. Apply to be whitelisted in our Discord server (discord.ss14.io) or try joining another server instead!"
|
||||
baby_jail.whitelisted_can_bypass = true
|
||||
|
||||
[hub]
|
||||
tags = "lang:en,region:am_n_e,rp:low"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
advertisement-smite-1 = SMITE! Ban your thirst!
|
||||
advertisement-smite-2 = An eldritch blast of lemon and lime!
|
||||
advertisement-smite-3 = Over 1 million drinks sold!
|
||||
advertisement-smite-4 = SMITE! Roll 2d8 for FLAVOR.
|
||||
advertisement-smite-5 = SMITE! Let's get that paperwork done!
|
||||
advertisement-smite-6 = The janitor has it in for you!
|
||||
advertisement-smite-7 = SMITE! It won't get you hammered.
|
||||
advertisement-smite-8 = It's lemon-lime time!
|
||||
thankyou-smite-1 = Smite makes right!
|
||||
thankyou-smite-2 = You DEFINITELY wanted lemon-lime!
|
||||
thankyou-smite-3 = The office won't know what hit them.
|
||||
thankyou-smite-4 = Banish your thirst.
|
||||
1489
Resources/Maps/Shuttles/cargo_plasma.yml
Normal file
|
|
@ -18,7 +18,7 @@ entities:
|
|||
name: NT Evac Log
|
||||
- type: Transform
|
||||
pos: -0.42093527,-0.86894274
|
||||
parent: invalid
|
||||
parent: 637
|
||||
- type: MapGrid
|
||||
chunks:
|
||||
0,0:
|
||||
|
|
@ -804,6 +804,18 @@ entities:
|
|||
chunkSize: 4
|
||||
- type: GasTileOverlay
|
||||
- type: RadiationGridResistance
|
||||
- uid: 637
|
||||
components:
|
||||
- type: MetaData
|
||||
name: Map Entity
|
||||
- type: Transform
|
||||
- type: Map
|
||||
mapPaused: True
|
||||
- type: PhysicsMap
|
||||
- type: GridTree
|
||||
- type: MovedGrids
|
||||
- type: Broadphase
|
||||
- type: OccluderTree
|
||||
- proto: AirAlarm
|
||||
entities:
|
||||
- uid: 577
|
||||
|
|
@ -1130,6 +1142,56 @@ entities:
|
|||
- type: Transform
|
||||
pos: 1.5,-6.5
|
||||
parent: 1
|
||||
- proto: AtmosDeviceFanDirectional
|
||||
entities:
|
||||
- uid: 638
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -4.5,5.5
|
||||
parent: 1
|
||||
- uid: 639
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -4.5,3.5
|
||||
parent: 1
|
||||
- uid: 640
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -4.5,-2.5
|
||||
parent: 1
|
||||
- uid: 641
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -4.5,-4.5
|
||||
parent: 1
|
||||
- uid: 642
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 5.5,-4.5
|
||||
parent: 1
|
||||
- uid: 643
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 5.5,-2.5
|
||||
parent: 1
|
||||
- uid: 644
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 5.5,3.5
|
||||
parent: 1
|
||||
- uid: 645
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 5.5,5.5
|
||||
parent: 1
|
||||
- proto: AtmosFixBlockerMarker
|
||||
entities:
|
||||
- uid: 615
|
||||
|
|
|
|||
7979
Resources/Maps/Shuttles/emergency_plasma.yml
Normal file
3968
Resources/Maps/_Sunrise/Shuttles/wrecklaimer.yml
Normal file
14133
Resources/Maps/meta.yml
167820
Resources/Maps/plasma.yml
Normal file
|
|
@ -150,7 +150,7 @@
|
|||
|
||||
- type: entity
|
||||
id: CrateAirlockKit
|
||||
parent: CrateGenericSteel
|
||||
parent: CrateEngineering
|
||||
name: airlock kit
|
||||
description: A kit for building 6 airlocks, doesn't include tools.
|
||||
components:
|
||||
|
|
@ -215,3 +215,31 @@
|
|||
- type: StorageFill
|
||||
contents:
|
||||
- id: SpaceHeaterFlatpack
|
||||
|
||||
- type: entityTable
|
||||
id: RandomTechBoardTable
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: AirAlarmElectronics
|
||||
- id: FireAlarmElectronics
|
||||
- id: DoorElectronics
|
||||
- id: FirelockElectronics
|
||||
- id: APCElectronics
|
||||
- id: SignalTimerElectronics
|
||||
- id: SMESMachineCircuitboard
|
||||
- id: SubstationMachineCircuitboard
|
||||
- id: SpaceVillainArcadeComputerCircuitboard
|
||||
- id: BlockGameArcadeComputerCircuitboard
|
||||
|
||||
- type: entity
|
||||
id: CrateTechBoardRandom
|
||||
parent: CrateEngineering
|
||||
name: surplus boards
|
||||
description: Surplus boards from somewhere.
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: RandomTechBoardTable
|
||||
rolls: !type:RangeNumberSelector
|
||||
range: 3, 7
|
||||
|
|
|
|||
|
|
@ -107,6 +107,52 @@
|
|||
- id: SheetPaper
|
||||
amount: 3
|
||||
|
||||
- type: entityTable
|
||||
id: RandomMaterialCrateTable
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector # regular materials, 10
|
||||
weight: 35
|
||||
children:
|
||||
- id: SheetGlass10
|
||||
- id: SheetSteel10
|
||||
- id: SheetPlastic10
|
||||
- !type:GroupSelector # regular materials, stack
|
||||
weight: 30
|
||||
children:
|
||||
- id: SheetGlass
|
||||
- id: SheetSteel
|
||||
- id: SheetPlastic
|
||||
- !type:GroupSelector # secondary materials, stack
|
||||
weight: 30
|
||||
children:
|
||||
- id: MaterialCloth
|
||||
- id: SheetPlasteel
|
||||
- id: MaterialWoodPlank
|
||||
- id: PartRodMetal
|
||||
- !type:GroupSelector # tertiary materials, singles
|
||||
weight: 5
|
||||
children:
|
||||
- id: SheetPlasma1
|
||||
- id: SheetUranium1
|
||||
- id: IngotGold1
|
||||
- id: IngotSilver1
|
||||
|
||||
- type: entity
|
||||
id: CrateMaterialRandom
|
||||
parent: CrateGenericSteel
|
||||
name: surplus materials
|
||||
description: Surplus materials from somewhere.
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: RandomMaterialCrateTable
|
||||
rolls: !type:RangeNumberSelector
|
||||
range: 1, 3
|
||||
# for some reason, the selector here adds 1 to whatever value it generates,
|
||||
# so this is actually 2-4
|
||||
|
||||
#- type: entity
|
||||
# id: CrateMaterialHFuelTank
|
||||
# name: fueltank crate
|
||||
|
|
|
|||
|
|
@ -187,6 +187,9 @@
|
|||
- !type:NestedSelector
|
||||
tableId: SyndieMaintLoot
|
||||
prob: 0.05
|
||||
# Recursive
|
||||
- id: ClosetMaintenanceFilledRandom
|
||||
prob: 0.01
|
||||
|
||||
- type: entity
|
||||
id: ClosetMaintenanceFilledRandom
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
- type: vendingMachineInventory
|
||||
id: SmiteInventory
|
||||
startingInventory:
|
||||
DrinkLemonLimeCan: 4
|
||||
DrinkLemonLimeCranberryCan: 2
|
||||
DrinkColaCan: 2
|
||||
DrinkSolDryCan: 2
|
||||
contrabandInventory:
|
||||
ToyHammer: 1
|
||||
DrinkStarkistCan: 2
|
||||
emaggedInventory:
|
||||
DrinkNukieCan: 2
|
||||
DrinkChangelingStingCan: 2
|
||||
|
|
@ -88,6 +88,12 @@
|
|||
prefix: advertisement-gibb-
|
||||
count: 8
|
||||
|
||||
- type: localizedDataset
|
||||
id: SmiteAds
|
||||
values:
|
||||
prefix: advertisement-smite-
|
||||
count: 8
|
||||
|
||||
- type: localizedDataset
|
||||
id: CondimentVendAds
|
||||
values:
|
||||
|
|
|
|||
|
|
@ -46,6 +46,12 @@
|
|||
prefix: thankyou-gibb-
|
||||
count: 4
|
||||
|
||||
- type: localizedDataset
|
||||
id: SmiteGoodbyes
|
||||
values:
|
||||
prefix: thankyou-smite-
|
||||
count: 4
|
||||
|
||||
- type: localizedDataset
|
||||
id: DiscountDansGoodbyes
|
||||
values:
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
parent: [ClothingNeckBase, BaseCommandContraband]
|
||||
id: ClothingNeckMantleHOS
|
||||
name: head of security's mantle
|
||||
description: Shootouts with nukies are just another Tuesday for this HoS. This mantle is a symbol of commitment to the station.
|
||||
description: Shootouts with syndicate agents are just another Tuesday for this HoS. This mantle is a symbol of commitment to the station.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Neck/mantles/hosmantle.rsi
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
- AnomalyFlora
|
||||
- AnomalyShadow
|
||||
- AnomalyTech
|
||||
- AnomalySanta #Remove in 2025
|
||||
#- AnomalySanta
|
||||
rareChance: 0.3
|
||||
rarePrototypes:
|
||||
- RandomAnomalyInjectorSpawner
|
||||
|
|
@ -67,6 +67,6 @@
|
|||
- AnomalyTrapGravity
|
||||
- AnomalyTrapTech
|
||||
- AnomalyTrapRock
|
||||
- AnomalyTrapSanta # Remove in 2025
|
||||
#- AnomalyTrapSanta
|
||||
chance: 1
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,26 +3,26 @@
|
|||
id: CrateEmptySpawner
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/generic.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- CrateGenericSteel
|
||||
- CratePlastic
|
||||
- CrateFreezer
|
||||
- CrateHydroponics
|
||||
- CrateMedical
|
||||
- CrateRadiation
|
||||
- CrateInternals
|
||||
- CrateElectrical
|
||||
- CrateEngineering
|
||||
- CrateScience
|
||||
- CrateSurgery
|
||||
chance: 0.7
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/generic.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- CrateGenericSteel
|
||||
- CratePlastic
|
||||
- CrateFreezer
|
||||
- CrateHydroponics
|
||||
- CrateMedical
|
||||
- CrateRadiation
|
||||
- CrateInternals
|
||||
- CrateElectrical
|
||||
- CrateEngineering
|
||||
- CrateScience
|
||||
- CrateSurgery
|
||||
chance: 0.7
|
||||
offset: 0.0
|
||||
|
||||
- type: entity
|
||||
name: Filled Crate Spawner
|
||||
|
|
@ -30,110 +30,113 @@
|
|||
suffix: Low Value
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/o2.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- CrateServiceReplacementLights
|
||||
- CrateServiceBureaucracy
|
||||
- CrateChemistrySupplies
|
||||
- CrateMaterialGlass
|
||||
- CrateMaterialSteel
|
||||
- CrateMaterialPlastic
|
||||
- CrateMaterialWood
|
||||
- CrateMaterialPlasteel
|
||||
- CrateFunSprayPaints # Sunrise-edit
|
||||
- CrateFunArtSupplies
|
||||
- CrateEngineeringCableLV
|
||||
- CrateEngineeringCableMV
|
||||
- CrateEngineeringCableHV
|
||||
- CrateEngineeringCableBulk
|
||||
- CrateEmergencyFire
|
||||
- CrateEmergencyInternals
|
||||
- CrateEmergencyInflatablewall
|
||||
- CrateHydroponicsTools
|
||||
- CrateHydroponicsSeeds
|
||||
chance: 0.7
|
||||
rarePrototypes:
|
||||
- CrateMaterialPlasma
|
||||
- CrateHydroponicsSeedsExotic
|
||||
rareChance: 0.1
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/o2.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- CrateServiceReplacementLights
|
||||
- CrateServiceBureaucracy
|
||||
- CrateChemistrySupplies
|
||||
- CrateMaterialGlass
|
||||
- CrateMaterialSteel
|
||||
- CrateMaterialPlastic
|
||||
- CrateMaterialWood
|
||||
- CrateMaterialPlasteel
|
||||
- CrateMaterialRandom
|
||||
- CrateFunArtSupplies
|
||||
- CrateEngineeringCableLV
|
||||
- CrateEngineeringCableMV
|
||||
- CrateEngineeringCableHV
|
||||
- CrateEngineeringCableBulk
|
||||
- CrateTechBoardRandom
|
||||
- CrateEmergencyFire
|
||||
- CrateEmergencyInternals
|
||||
- CrateEmergencyInflatablewall
|
||||
- CrateHydroponicsTools
|
||||
- CrateHydroponicsSeeds
|
||||
- PetCarrier
|
||||
- CrateFunSprayPaints # Sunrise-edit
|
||||
chance: 0.7
|
||||
rarePrototypes:
|
||||
- CrateMaterialPlasma
|
||||
- CrateHydroponicsSeedsExotic
|
||||
rareChance: 0.1
|
||||
offset: 0.0
|
||||
|
||||
- type: entity
|
||||
name: random engineering crate spawner
|
||||
id: LootSpawnerRandomCrateEngineering
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/engineering.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- CrateEngineeringSingularityGenerator
|
||||
- CrateEngineeringTeslaGenerator
|
||||
- CrateEngineeringTeslaGroundingRod
|
||||
- CrateEngineeringParticleAccelerator
|
||||
- CrateRCD
|
||||
- CrateEngineeringGear
|
||||
rareChance: 0.2
|
||||
prototypes:
|
||||
- CrateEngineering
|
||||
- CrateElectrical
|
||||
- CrateEngineeringElectricalSupplies
|
||||
- CrateRCDAmmo
|
||||
- CrateEngineeringCableLV
|
||||
- CrateEngineeringCableMV
|
||||
- CrateEngineeringCableHV
|
||||
- CrateEngineeringCableBulk
|
||||
- CrateEngineeringSingularityContainment
|
||||
- CrateEngineeringSingularityCollector
|
||||
- CrateEngineeringTeslaCoil
|
||||
- CrateEngineeringSingularityEmitter
|
||||
- CrateEngineeringGyroscope
|
||||
- CrateEngineeringThruster
|
||||
- CrateEngineeringToolbox
|
||||
- CrateEngineeringShuttle
|
||||
- CrateEngineeringSolar
|
||||
- CrateEngineeringJetpack
|
||||
- CrateEmergencyRadiation
|
||||
- CrateRadiation
|
||||
chance: 0.9
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/engineering.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- CrateEngineeringSingularityGenerator
|
||||
- CrateEngineeringTeslaGenerator
|
||||
- CrateEngineeringTeslaGroundingRod
|
||||
- CrateEngineeringParticleAccelerator
|
||||
- CrateRCD
|
||||
- CrateEngineeringGear
|
||||
rareChance: 0.2
|
||||
prototypes:
|
||||
- CrateEngineering
|
||||
- CrateElectrical
|
||||
- CrateEngineeringElectricalSupplies
|
||||
- CrateRCDAmmo
|
||||
- CrateEngineeringCableLV
|
||||
- CrateEngineeringCableMV
|
||||
- CrateEngineeringCableHV
|
||||
- CrateEngineeringCableBulk
|
||||
- CrateEngineeringSingularityContainment
|
||||
- CrateEngineeringSingularityCollector
|
||||
- CrateEngineeringTeslaCoil
|
||||
- CrateEngineeringSingularityEmitter
|
||||
- CrateEngineeringGyroscope
|
||||
- CrateEngineeringThruster
|
||||
- CrateEngineeringToolbox
|
||||
- CrateEngineeringShuttle
|
||||
- CrateEngineeringSolar
|
||||
- CrateEngineeringJetpack
|
||||
- CrateEmergencyRadiation
|
||||
- CrateRadiation
|
||||
chance: 0.9
|
||||
offset: 0.0
|
||||
|
||||
- type: entity
|
||||
name: random security crate spawner
|
||||
id: LootSpawnerRandomCrateSecurity
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/sec_gear.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes: #Very useful stuff we probably don't want random people getting on space ruins often, even if there are hurdles to open it
|
||||
- CrateArmoryShotgun
|
||||
- CrateArmorySMG
|
||||
- CrateSecurityRiot
|
||||
- CrateSecurityNonlethal
|
||||
rareChance: 0.1
|
||||
prototypes:
|
||||
- CrateWeaponSecure
|
||||
- CrateArmoryLaser
|
||||
- CrateArmoryPistols
|
||||
- CrateTrainingBombs
|
||||
- CrateTrackingImplants
|
||||
- CrateSecurityTrackingMindshieldImplants
|
||||
- CrateSecurityHelmet
|
||||
- CrateSecurityArmor
|
||||
- CrateRestraints
|
||||
- CrateEmergencyExplosive
|
||||
- CrateSecurityBiosuit
|
||||
chance: 0.9
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Storage/Crates/sec_gear.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes: #Very useful stuff we probably don't want random people getting on space ruins often, even if there are hurdles to open it
|
||||
- CrateArmoryShotgun
|
||||
- CrateArmorySMG
|
||||
- CrateSecurityRiot
|
||||
- CrateSecurityNonlethal
|
||||
rareChance: 0.1
|
||||
prototypes:
|
||||
- CrateWeaponSecure
|
||||
- CrateArmoryLaser
|
||||
- CrateArmoryPistols
|
||||
- CrateTrainingBombs
|
||||
- CrateTrackingImplants
|
||||
- CrateSecurityTrackingMindshieldImplants
|
||||
- CrateSecurityHelmet
|
||||
- CrateSecurityArmor
|
||||
- CrateRestraints
|
||||
- CrateEmergencyExplosive
|
||||
- CrateSecurityBiosuit
|
||||
chance: 0.9
|
||||
offset: 0.0
|
||||
|
|
|
|||
|
|
@ -6,29 +6,59 @@
|
|||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Machines/VendingMachines/random.rsi
|
||||
state: any
|
||||
- state: red
|
||||
- sprite: Structures/Machines/VendingMachines/random.rsi
|
||||
state: any
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- VendingMachineCigs
|
||||
- VendingMachineCoffee
|
||||
- VendingMachineCola
|
||||
- VendingMachineColaRed
|
||||
- VendingMachineColaBlack
|
||||
- VendingMachineDiscount
|
||||
- VendingMachineSnack
|
||||
- VendingMachineSnackBlue
|
||||
- VendingMachineSnackGreen
|
||||
- VendingMachineSnackOrange
|
||||
- VendingMachineSnackTeal
|
||||
- VendingMachineSovietSoda
|
||||
- VendingMachineChang
|
||||
- VendingMachineDonut
|
||||
- VendingMachineShamblersJuice
|
||||
- VendingMachinePwrGame
|
||||
- VendingMachineDrGibb
|
||||
- VendingMachineSoda
|
||||
- VendingMachineStarkist
|
||||
- VendingMachineSpaceUp
|
||||
- VendingMachineChang
|
||||
- VendingMachineCigs
|
||||
- VendingMachineCoffee
|
||||
- VendingMachineCola #Robust Sofdrinks
|
||||
- VendingMachineColaBlack #Robust Sofdrinks [Black]
|
||||
- VendingMachineColaRed #Space Cola
|
||||
- VendingMachineDiscount
|
||||
- VendingMachineDonut
|
||||
- VendingMachineDrGibb
|
||||
- VendingMachinePwrGame
|
||||
- VendingMachineShamblersJuice
|
||||
- VendingMachineSmite
|
||||
- VendingMachineSnack
|
||||
- VendingMachineSnackBlue
|
||||
- VendingMachineSnackGreen
|
||||
- VendingMachineSnackOrange
|
||||
- VendingMachineSnackTeal
|
||||
- VendingMachineSoda #Robust Sofdrinks [Soda]
|
||||
- VendingMachineSovietSoda #Boda
|
||||
- VendingMachineSpaceUp
|
||||
- VendingMachineStarkist
|
||||
chance: 1
|
||||
|
||||
|
||||
- type: entityTable
|
||||
id: ClothingVendorTable
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: VendingMachineClothing
|
||||
weight: 40
|
||||
- id: VendingMachineWinter
|
||||
weight: 40
|
||||
- id: VendingMachinePride
|
||||
weight: 10
|
||||
- id: VendingMachineTheater
|
||||
weight: 10
|
||||
|
||||
- type: entity
|
||||
id: RandomVendingClothing
|
||||
name: random vending machine spawner
|
||||
suffix: Clothing
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Machines/VendingMachines/random.rsi
|
||||
state: clothing
|
||||
- type: EntityTableSpawner
|
||||
table: !type:NestedSelector
|
||||
tableId: ClothingVendorTable
|
||||
|
|
|
|||
|
|
@ -12,14 +12,15 @@
|
|||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- VendingMachineCoffee
|
||||
- VendingMachineCola
|
||||
- VendingMachineColaRed
|
||||
- VendingMachineColaBlack
|
||||
- VendingMachineSovietSoda
|
||||
- VendingMachineShamblersJuice
|
||||
- VendingMachinePwrGame
|
||||
- VendingMachineCola #Robust Sofdrinks
|
||||
- VendingMachineColaBlack #Robust Sofdrinks [Black]
|
||||
- VendingMachineColaRed #Space Cola
|
||||
- VendingMachineDrGibb
|
||||
- VendingMachineSoda
|
||||
- VendingMachineStarkist
|
||||
- VendingMachinePwrGame
|
||||
- VendingMachineShamblersJuice
|
||||
- VendingMachineSmite
|
||||
- VendingMachineSoda #Robust Sofdrinks [Soda]
|
||||
- VendingMachineSovietSoda #Boda
|
||||
- VendingMachineSpaceUp
|
||||
- VendingMachineStarkist
|
||||
chance: 1
|
||||
|
|
|
|||
|
|
@ -937,9 +937,26 @@
|
|||
- type: entity
|
||||
name: bread dog
|
||||
id: MobBreadDog
|
||||
parent: FoodBreadSausage
|
||||
parent: EdibleBase
|
||||
description: It's a bread. It's a dog. It's a... breaddog?
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- meaty
|
||||
- bread
|
||||
- type: SliceableFood
|
||||
slice: FoodBreadSausageSlice
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 45
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 5
|
||||
- ReagentId: Protein
|
||||
Quantity: 5
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
drawdepth: Mobs
|
||||
|
|
@ -984,6 +1001,7 @@
|
|||
- VimPilot
|
||||
- DoorBumpOpener
|
||||
- Bread
|
||||
- Meat
|
||||
- type: CanEscapeInventory
|
||||
baseResistTime: 2
|
||||
- type: Puller
|
||||
|
|
|
|||
|
|
@ -696,9 +696,25 @@
|
|||
- type: entity
|
||||
name: cak
|
||||
id: MobCatCake
|
||||
parent: FoodCakeBase
|
||||
parent: EdibleBase
|
||||
description: It's a cake. It's a cat. It's a cak.
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- sweet
|
||||
- type: InjectableSolution
|
||||
solution: food
|
||||
- type: RefillableSolution
|
||||
solution: food
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 30
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 20
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 5
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
drawdepth: Mobs
|
||||
|
|
|
|||
|
|
@ -1,20 +1,30 @@
|
|||
#
|
||||
# Base component for consumable food
|
||||
# Base component for edible food-like items
|
||||
#
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: FoodBase
|
||||
id: EdibleBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- food
|
||||
- type: Food
|
||||
- type: SpaceGarbage
|
||||
- type: Sprite
|
||||
- type: StaticPrice
|
||||
price: 0
|
||||
|
||||
#
|
||||
# Base component for consumable food
|
||||
# that should be cleaned up in space
|
||||
#
|
||||
- type: entity
|
||||
parent: EdibleBase
|
||||
id: FoodBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: SpaceGarbage
|
||||
|
||||
# This base type is used to cover all of the "obvious" things that should be doable to open-package food.
|
||||
# Practically this means injection.
|
||||
# But it might in future also mean drawing with a syringe, so this is a base prototype just in case.
|
||||
|
|
|
|||
|
|
@ -363,11 +363,35 @@
|
|||
components:
|
||||
- type: Pda
|
||||
id: MimeIDCard
|
||||
idSlot: # rewrite without sound because mime
|
||||
name: ID Card
|
||||
paiSlot:
|
||||
priority: -2
|
||||
ejectSound: null
|
||||
insertSound: null
|
||||
whitelist:
|
||||
components:
|
||||
- PAI
|
||||
idSlot:
|
||||
name: access-id-card-component-default
|
||||
ejectSound: null # mime is silent
|
||||
insertSound: null
|
||||
whitelist:
|
||||
components:
|
||||
- IdCard
|
||||
penSlot:
|
||||
startingItem: Pen
|
||||
priority: -1
|
||||
whitelist:
|
||||
tags:
|
||||
- Write
|
||||
ejectSound: null
|
||||
insertSound: null
|
||||
- type: CartridgeLoader
|
||||
cartridgeSlot:
|
||||
ejectSound: null
|
||||
insertSound: null
|
||||
whitelist:
|
||||
components:
|
||||
- Cartridge
|
||||
- type: Appearance
|
||||
appearanceDataInit:
|
||||
enum.PdaVisuals.PdaType:
|
||||
|
|
|
|||
|
|
@ -62,11 +62,9 @@
|
|||
density: 80
|
||||
mask:
|
||||
- Impassable
|
||||
- HighImpassable
|
||||
- MidImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- HighImpassable
|
||||
- MidImpassable
|
||||
- BulletImpassable
|
||||
- type: StaticPrice
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@
|
|||
count: 1
|
||||
|
||||
- type: entity
|
||||
parent: [SheetOtherBase, FoodBase]
|
||||
parent: [SheetOtherBase, EdibleBase]
|
||||
id: SheetUranium
|
||||
name: uranium
|
||||
suffix: Full
|
||||
|
|
|
|||
|
|
@ -39,50 +39,52 @@
|
|||
components:
|
||||
- type: GatewayGenerator
|
||||
|
||||
# Sunrise-Start
|
||||
#- type: entity
|
||||
# id: BaseStationShuttles
|
||||
# abstract: true
|
||||
# components:
|
||||
# - type: StationCargoShuttle
|
||||
# path: /Maps/Shuttles/cargo.yml
|
||||
# - type: GridSpawn
|
||||
# groups:
|
||||
# trade: !type:GridSpawnGroup
|
||||
# addComponents:
|
||||
# - type: ProtectedGrid
|
||||
# - type: TradeStation
|
||||
# paths:
|
||||
# - /Maps/Shuttles/trading_outpost.yml
|
||||
# ruins: !type:GridSpawnGroup
|
||||
# hide: true
|
||||
# nameGrid: true
|
||||
# minCount: 2
|
||||
# maxCount: 2
|
||||
# stationGrid: false
|
||||
# paths:
|
||||
# - /Maps/Ruins/abandoned_outpost.yml
|
||||
# - /Maps/Ruins/chunked_tcomms.yml
|
||||
# - /Maps/Ruins/biodome_satellite.yml
|
||||
# - /Maps/Ruins/derelict.yml
|
||||
# - /Maps/Ruins/djstation.yml
|
||||
# - /Maps/Ruins/empty_flagship.yml
|
||||
# - /Maps/Ruins/old_ai_sat.yml
|
||||
# - /Maps/Ruins/syndicate_dropship.yml
|
||||
# - /Maps/Ruins/whiteship_ancient.yml
|
||||
# - /Maps/Ruins/whiteship_bluespacejumper.yml
|
||||
# vgroid: !type:DungeonSpawnGroup
|
||||
# minimumDistance: 300
|
||||
# maximumDistance: 350
|
||||
# nameDataset: NamesBorer
|
||||
# stationGrid: false
|
||||
# addComponents:
|
||||
# - type: Gravity
|
||||
# enabled: true
|
||||
# inherent: true
|
||||
# protos:
|
||||
# - VGRoid
|
||||
#Sunrise-End
|
||||
- type: entity
|
||||
id: BaseStationShuttles
|
||||
abstract: true
|
||||
components:
|
||||
# Sunrise-Edit
|
||||
# - type: StationCargoShuttle
|
||||
# path: /Maps/Shuttles/cargo.yml
|
||||
- type: GridSpawn
|
||||
groups:
|
||||
# Sunrise-Edit
|
||||
# trade: !type:GridSpawnGroup
|
||||
# addComponents:
|
||||
# - type: ProtectedGrid
|
||||
# - type: TradeStation
|
||||
# paths:
|
||||
# - /Maps/Shuttles/trading_outpost.yml
|
||||
# Spawn last
|
||||
ruins: !type:GridSpawnGroup
|
||||
hide: true
|
||||
nameGrid: true
|
||||
minCount: 6
|
||||
maxCount: 10
|
||||
stationGrid: false
|
||||
paths:
|
||||
- /Maps/Ruins/abandoned_outpost.yml
|
||||
- /Maps/Ruins/chunked_tcomms.yml
|
||||
- /Maps/Ruins/biodome_satellite.yml
|
||||
- /Maps/Ruins/derelict.yml
|
||||
- /Maps/Ruins/djstation.yml
|
||||
- /Maps/Ruins/empty_flagship.yml
|
||||
- /Maps/Ruins/old_ai_sat.yml
|
||||
- /Maps/Ruins/syndicate_dropship.yml
|
||||
- /Maps/Ruins/whiteship_ancient.yml
|
||||
- /Maps/Ruins/whiteship_bluespacejumper.yml
|
||||
- /Maps/Ruins/wrecklaimer.yml
|
||||
vgroid: !type:DungeonSpawnGroup
|
||||
minimumDistance: 300
|
||||
maximumDistance: 350
|
||||
nameDataset: NamesBorer
|
||||
stationGrid: false
|
||||
addComponents:
|
||||
- type: Gravity
|
||||
enabled: true
|
||||
inherent: true
|
||||
protos:
|
||||
- VGRoid
|
||||
|
||||
# Sunrise-Edit: Вынесено в _Sunrise
|
||||
#- type: entity
|
||||
|
|
|
|||
|
|
@ -510,7 +510,6 @@
|
|||
- SodaDispenserMachineCircuitboard
|
||||
- SpaceHeaterMachineCircuitBoard
|
||||
- CutterMachineCircuitboard
|
||||
- StationAnchorCircuitboard
|
||||
- SalvageMagnetMachineCircuitboard
|
||||
dynamicRecipes:
|
||||
- ThermomachineFreezerMachineCircuitBoard
|
||||
|
|
@ -1295,8 +1294,28 @@
|
|||
- CarpetPurple
|
||||
- CarpetCyan
|
||||
- CarpetWhite
|
||||
# Bedsheets
|
||||
- BedsheetBlack
|
||||
- BedsheetBlue
|
||||
- BedsheetBrown
|
||||
- BedsheetGreen
|
||||
- BedsheetGrey
|
||||
- BedsheetOrange
|
||||
- BedsheetPurple
|
||||
- BedsheetRed
|
||||
- BedsheetWhite
|
||||
- BedsheetYellow
|
||||
- BedsheetClown
|
||||
- BedsheetCosmos
|
||||
- BedsheetIan
|
||||
- BedsheetMedical
|
||||
- BedsheetMime
|
||||
- BedsheetNT
|
||||
- BedsheetRainbow
|
||||
- BedsheetBrigmedic
|
||||
- type: EmagLatheRecipes
|
||||
emagStaticRecipes:
|
||||
# Clothing
|
||||
- ClothingHeadHatCentcomcap
|
||||
- ClothingHeadHatCentcom
|
||||
- ClothingUniformJumpsuitCentcomAgent
|
||||
|
|
@ -1319,6 +1338,8 @@
|
|||
- ClothingOuterWinterCentcom
|
||||
- ClothingOuterWinterSyndie
|
||||
- ClothingOuterWinterSyndieCap
|
||||
# Bedsheets
|
||||
- BedsheetSyndie
|
||||
- type: MaterialStorage
|
||||
whitelist:
|
||||
tags:
|
||||
|
|
|
|||
|
|
@ -137,7 +137,6 @@
|
|||
pack: CondimentVendAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Transform
|
||||
noRot: false
|
||||
- type: PlayerCountDependentStock # Sunrise-vend
|
||||
|
|
@ -157,7 +156,6 @@
|
|||
pack: AmmoVendAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Structures/Machines/VendingMachines/ammo.rsi
|
||||
layers:
|
||||
|
|
@ -186,7 +184,6 @@
|
|||
pack: BoozeOMatAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: BoozeOMatGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/boozeomat.rsi
|
||||
layers:
|
||||
|
|
@ -221,7 +218,6 @@
|
|||
pack: BruiseOMatAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: BruiseOMatGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/bruiseomat.rsi
|
||||
layers:
|
||||
|
|
@ -321,7 +317,6 @@
|
|||
pack: CigaretteMachineAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: CigaretteMachineGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/cigs.rsi
|
||||
layers:
|
||||
|
|
@ -350,7 +345,6 @@
|
|||
pack: ClothesMateAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/clothing.rsi
|
||||
layers:
|
||||
|
|
@ -382,7 +376,6 @@
|
|||
pack: ClothesMateAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
|
||||
layers:
|
||||
|
|
@ -421,7 +414,6 @@
|
|||
pack: HotDrinksMachineAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: HotDrinksMachineGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/coffee.rsi
|
||||
layers:
|
||||
|
|
@ -462,7 +454,6 @@
|
|||
pack: RobustSoftdrinksAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: RobustSoftdrinksGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/cola.rsi
|
||||
layers:
|
||||
|
|
@ -607,7 +598,6 @@
|
|||
initialStockQuality: 0.33
|
||||
- type: Advertise
|
||||
pack: RobustSoftdrinksAds
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/shamblersjuice.rsi
|
||||
layers:
|
||||
|
|
@ -645,7 +635,6 @@
|
|||
pack: RobustSoftdrinksAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/pwrgame.rsi
|
||||
layers:
|
||||
|
|
@ -683,7 +672,6 @@
|
|||
pack: DrGibbAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: DrGibbGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/gib.rsi
|
||||
layers:
|
||||
|
|
@ -700,6 +688,42 @@
|
|||
color: "#D82929"
|
||||
- type: PlayerCountDependentStock # Sunrise-vend
|
||||
|
||||
- type: entity
|
||||
parent: VendingMachine
|
||||
id: VendingMachineSmite
|
||||
name: Smite Vendor
|
||||
description: Popular with the administration.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/smite.rsi
|
||||
layers:
|
||||
- state: "off"
|
||||
map: [ "enum.VendingMachineVisualLayers.Base" ]
|
||||
- state: "off"
|
||||
map: [ "enum.VendingMachineVisualLayers.BaseUnshaded" ]
|
||||
shader: unshaded
|
||||
- state: panel
|
||||
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
|
||||
- type: VendingMachine
|
||||
pack: SmiteInventory
|
||||
dispenseOnHitChance: 0.25
|
||||
dispenseOnHitThreshold: 2
|
||||
offState: off
|
||||
brokenState: broken
|
||||
normalState: normal-unshaded
|
||||
ejectState: eject-unshaded
|
||||
denyState: deny-unshaded
|
||||
ejectDelay: 1.9
|
||||
initialStockQuality: 0.33
|
||||
- type: Advertise
|
||||
pack: SmiteAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: SmiteGoodbyes
|
||||
- type: PointLight
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#00E645"
|
||||
|
||||
- type: entity
|
||||
parent: VendingMachine
|
||||
id: VendingMachineDinnerware
|
||||
|
|
@ -781,7 +805,6 @@
|
|||
pack: DiscountDansAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: DiscountDansGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/discount.rsi
|
||||
layers:
|
||||
|
|
@ -1005,7 +1028,6 @@
|
|||
pack: GetmoreChocolateCorpAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GetmoreChocolateCorpGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/snack.rsi
|
||||
layers:
|
||||
|
|
@ -1153,7 +1175,6 @@
|
|||
pack: BodaAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: BodaGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/sovietsoda.rsi
|
||||
layers:
|
||||
|
|
@ -1188,7 +1209,6 @@
|
|||
pack: AutoDrobeAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/theater.rsi
|
||||
layers:
|
||||
|
|
@ -1224,7 +1244,6 @@
|
|||
pack: VendomatAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/vendomat.rsi
|
||||
layers:
|
||||
|
|
@ -1257,7 +1276,6 @@
|
|||
pack: VendomatAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: GenericVendGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/robotics.rsi
|
||||
layers:
|
||||
|
|
@ -1356,7 +1374,6 @@
|
|||
pack: ChangAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: ChangGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/changs.rsi
|
||||
layers:
|
||||
|
|
@ -1423,7 +1440,6 @@
|
|||
pack: DonutAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: DonutGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/donut.rsi
|
||||
layers:
|
||||
|
|
|
|||
|
|
@ -15,5 +15,6 @@
|
|||
- Oasis
|
||||
- Omega
|
||||
- Packed
|
||||
- Plasma
|
||||
- Reach
|
||||
#- Train
|
||||
|
|
|
|||
66
Resources/Prototypes/Maps/plasma.yml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
- type: gameMap
|
||||
id: Plasma
|
||||
mapName: 'Plasma'
|
||||
mapPath: /Maps/plasma.yml
|
||||
minPlayers: 20
|
||||
maxPlayers: 60
|
||||
stations:
|
||||
Plasma:
|
||||
stationProto: StandardNanotrasenStation
|
||||
components:
|
||||
- type: StationNameSetup
|
||||
mapNameTemplate: '{0} Plasma {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
- type: StationEmergencyShuttle
|
||||
emergencyShuttlePath: /Maps/Shuttles/emergency_plasma.yml
|
||||
- type: StationCargoShuttle
|
||||
path: /Maps/Shuttles/cargo_plasma.yml
|
||||
- type: StationJobs
|
||||
availableJobs:
|
||||
#service
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 2, 3 ]
|
||||
Chef: [ 2, 2 ]
|
||||
Janitor: [ 3, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
Reporter: [ 2, 3 ]
|
||||
#engineering
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 4, 4 ]
|
||||
StationEngineer: [ 4, 4 ]
|
||||
TechnicalAssistant: [ 4, 4 ]
|
||||
#medical
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
MedicalDoctor: [ 4, 4 ]
|
||||
Paramedic: [ 2, 2 ]
|
||||
MedicalIntern: [ 4, 4 ]
|
||||
Psychologist: [ 1, 1 ]
|
||||
#science
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 4, 4 ]
|
||||
ResearchAssistant: [ 4, 4 ]
|
||||
StationAi: [ 1, 1 ]
|
||||
Borg: [ 2, 4 ]
|
||||
#security
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
SecurityOfficer: [ 6, 8 ]
|
||||
Detective: [ 1, 2 ]
|
||||
SecurityCadet: [ 4, 4 ]
|
||||
Lawyer: [ 1, 2 ]
|
||||
#supply
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 4, 4 ]
|
||||
CargoTechnician: [ 4, 6 ]
|
||||
#civilian
|
||||
Passenger: [ -1, -1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Musician: [ 1, 1 ]
|
||||
113
Resources/Prototypes/Recipes/Lathes/bedsheets.yml
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
- type: latheRecipe
|
||||
abstract: true
|
||||
id: BaseBedsheetRecipe
|
||||
completetime: 2
|
||||
materials:
|
||||
Cloth: 150
|
||||
|
||||
- type: latheRecipe
|
||||
abstract: true
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BaseSpecifiedBedsheetRecipe
|
||||
materials:
|
||||
Cloth: 150
|
||||
Durathread: 50
|
||||
|
||||
#Base bedsheets
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetBlack
|
||||
result: BedsheetBlack
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetBlue
|
||||
result: BedsheetBlue
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetBrown
|
||||
result: BedsheetBrown
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetGreen
|
||||
result: BedsheetGreen
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetGrey
|
||||
result: BedsheetGrey
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetOrange
|
||||
result: BedsheetOrange
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetPurple
|
||||
result: BedsheetPurple
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetRed
|
||||
result: BedsheetRed
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetWhite
|
||||
result: BedsheetWhite
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseBedsheetRecipe
|
||||
id: BedsheetYellow
|
||||
result: BedsheetYellow
|
||||
|
||||
#Specified bedsheets
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetClown
|
||||
result: BedsheetClown
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetCosmos
|
||||
result: BedsheetCosmos
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetIan #I'm not sure that that should be here
|
||||
result: BedsheetIan
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetMedical
|
||||
result: BedsheetMedical
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetMime
|
||||
result: BedsheetMime
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetNT
|
||||
result: BedsheetNT
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetRainbow
|
||||
result: BedsheetRainbow
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetBrigmedic
|
||||
result: BedsheetBrigmedic
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseSpecifiedBedsheetRecipe
|
||||
id: BedsheetSyndie
|
||||
result: BedsheetSyndie
|
||||
51
Resources/Prototypes/Recipes/Lathes/carpets.yml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
- type: latheRecipe
|
||||
abstract: true
|
||||
id: BaseCarpetRecipe
|
||||
completetime: 1
|
||||
materials:
|
||||
Cloth: 100
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: Carpet
|
||||
result: FloorCarpetItemRed
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetBlack
|
||||
result: FloorCarpetItemBlack
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetPink
|
||||
result: FloorCarpetItemPink
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetBlue
|
||||
result: FloorCarpetItemBlue
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetGreen
|
||||
result: FloorCarpetItemGreen
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetOrange
|
||||
result: FloorCarpetItemOrange
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetPurple
|
||||
result: FloorCarpetItemPurple
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetCyan
|
||||
result: FloorCarpetItemCyan
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetWhite
|
||||
result: FloorCarpetItemWhite
|
||||
|
|
@ -38,13 +38,6 @@
|
|||
materials:
|
||||
Cloth: 100
|
||||
|
||||
- type: latheRecipe
|
||||
abstract: true
|
||||
id: BaseCarpetRecipe
|
||||
completetime: 1
|
||||
materials:
|
||||
Cloth: 100
|
||||
|
||||
- type: latheRecipe
|
||||
abstract: true
|
||||
parent: BaseHatRecipe
|
||||
|
|
@ -916,49 +909,3 @@
|
|||
parent: BaseNeckClothingRecipe
|
||||
id: ClothingNeckScarfStripedPurple
|
||||
result: ClothingNeckScarfStripedPurple
|
||||
|
||||
# Carpets
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: Carpet
|
||||
result: FloorCarpetItemRed
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetBlack
|
||||
result: FloorCarpetItemBlack
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetPink
|
||||
result: FloorCarpetItemPink
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetBlue
|
||||
result: FloorCarpetItemBlue
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetGreen
|
||||
result: FloorCarpetItemGreen
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetOrange
|
||||
result: FloorCarpetItemOrange
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetPurple
|
||||
result: FloorCarpetItemPurple
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetCyan
|
||||
result: FloorCarpetItemCyan
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseCarpetRecipe
|
||||
id: CarpetWhite
|
||||
result: FloorCarpetItemWhite
|
||||
|
|
|
|||
|
|
@ -639,12 +639,6 @@
|
|||
result: ShuttleGunDusterCircuitboard
|
||||
completetime: 12
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseGoldCircuitboardRecipe
|
||||
id: StationAnchorCircuitboard
|
||||
result: StationAnchorCircuitboard
|
||||
completetime: 8
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseGoldCircuitboardRecipe
|
||||
id: ReagentGrinderIndustrialMachineCircuitboard
|
||||
|
|
|
|||
|
|
@ -19,33 +19,31 @@
|
|||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTLeader
|
||||
back: ClothingBackpackERTLeader
|
||||
shoes: ClothingShoesBootsMagSec # Sunrise-edit
|
||||
head: ClothingHeadEVAHelmetERTLeader # Sunrise-edit
|
||||
shoes: ClothingShoesBootsCombatFilled
|
||||
head: ClothingHeadHelmetERTLeader
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
outerClothing: ClothingOuterArmorAmberCom # Sunrise-edit
|
||||
outerClothing: ClothingOuterArmorBasicSlim
|
||||
id: ERTLeaderPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltSecurityFilled
|
||||
pocket1: WeaponPistolN1984
|
||||
pocket2: HandheldCriminalRecordsMonitorUnpowered # Sunrise-edit
|
||||
pocket2: FlashlightSeclite
|
||||
storage:
|
||||
back:
|
||||
- WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
- PortableSurveillanceCameraMonitorUnpowered # Sunrise-edit
|
||||
- WeaponDisabler
|
||||
- MedicatedSuture
|
||||
- RegenerativeMesh
|
||||
#- BoxZiptie # Sunrise-edit
|
||||
- BoxZiptie
|
||||
- CrowbarRed
|
||||
- MagazineMagnum
|
||||
- ERTDirectivesCircuitBoard # Sunrise-edit
|
||||
|
||||
- type: startingGear
|
||||
id: ERTLeaderGearEVA
|
||||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTLeader
|
||||
back: ClothingBackpackERTLeader
|
||||
shoes: ClothingShoesBootsMagCombat # Sunrise-edit
|
||||
shoes: ClothingShoesBootsMagAdv
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
|
|
@ -54,17 +52,15 @@
|
|||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltSecurityFilled
|
||||
pocket1: WeaponPistolN1984
|
||||
pocket2: HandheldCriminalRecordsMonitorUnpowered # Sunrise-edit
|
||||
pocket2: FlashlightSeclite
|
||||
storage:
|
||||
back:
|
||||
- WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
- WeaponDisabler
|
||||
- MedicatedSuture
|
||||
- RegenerativeMesh
|
||||
#- BoxZiptie # Sunrise-edit
|
||||
- BoxZiptie
|
||||
- CrowbarRed
|
||||
- PortableSurveillanceCameraMonitorUnpowered # Sunrise-edit
|
||||
- MagazineMagnum
|
||||
- ERTDirectivesCircuitBoard # Sunrise-edit
|
||||
|
||||
- type: startingGear
|
||||
id: ERTLeaderGearEVALecter
|
||||
|
|
@ -88,10 +84,9 @@
|
|||
- WeaponDisabler
|
||||
- MedicatedSuture
|
||||
- RegenerativeMesh
|
||||
#- BoxZiptie # Sunrise-edit
|
||||
- BoxZiptie
|
||||
- CrowbarRed
|
||||
- MagazineMagnum
|
||||
- ERTDirectivesCircuitBoard # Sunrise-edit
|
||||
|
||||
# Chaplain
|
||||
- type: job
|
||||
|
|
@ -118,25 +113,27 @@
|
|||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTChaplain
|
||||
back: ClothingBackpackERTChaplain
|
||||
shoes: ClothingShoesBootsMagSec # Sunrise-edit
|
||||
head: ClothingHeadEVAHelmetERTChaplain # Sunrise-edit
|
||||
eyes: ClothingEyesHudMedSec # Sunrise-edit
|
||||
shoes: ClothingShoesLeather
|
||||
head: ClothingHeadHatFez
|
||||
eyes: ClothingEyesGlasses
|
||||
neck: ClothingNeckStoleChaplain
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
outerClothing: ClothingOuterArmorAmberChap # Sunrise-edit
|
||||
outerClothing: ClothingOuterArmorBasicSlim
|
||||
id: ERTChaplainPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltStorageWaistbag
|
||||
pocket1: CrowbarRed # Sunrise-edit
|
||||
pocket1: Flare
|
||||
pocket2: DrinkWaterBottleFull
|
||||
storage:
|
||||
back:
|
||||
- BoxCandle
|
||||
#-BoxBodyBag # Sunrise-edit
|
||||
- BoxBodyBag
|
||||
- DrinkWaterMelonJuiceJug
|
||||
- Lantern
|
||||
- Lantern
|
||||
- Bible
|
||||
- MegaSprayBottle # Sunrise-edit
|
||||
- CrowbarRed
|
||||
- FoodBakedBunHotX
|
||||
- FoodBakedBunHotX
|
||||
- FoodBakedBunHotX
|
||||
- FoodBakedBunHotX
|
||||
|
|
@ -149,23 +146,25 @@
|
|||
back: ClothingBackpackERTChaplain
|
||||
shoes: ClothingShoesBootsMagAdv
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesHudMedSec # Sunrise-edit
|
||||
eyes: ClothingEyesGlasses
|
||||
neck: ClothingNeckStoleChaplain
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
outerClothing: ClothingOuterHardsuitERTChaplain
|
||||
id: ERTChaplainPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltStorageWaistbag
|
||||
pocket1: CrowbarRed # Sunrise-edit
|
||||
pocket1: Flare
|
||||
pocket2: DrinkWaterBottleFull
|
||||
storage:
|
||||
back:
|
||||
- BoxCandle
|
||||
#-BoxBodyBag # Sunrise-edit
|
||||
- BoxBodyBag
|
||||
- DrinkWaterMelonJuiceJug
|
||||
- Lantern
|
||||
- Lantern
|
||||
- Bible
|
||||
- MegaSprayBottle # Sunrise-edit
|
||||
- CrowbarRed
|
||||
- FoodBakedBunHotX
|
||||
- FoodBakedBunHotX
|
||||
- FoodBakedBunHotX
|
||||
- FoodBakedBunHotX
|
||||
|
|
@ -192,25 +191,25 @@
|
|||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTEngineer
|
||||
back: ClothingBackpackERTEngineer
|
||||
shoes: ClothingShoesBootsMagCombat # Sunrise-edit
|
||||
head: ClothingHeadEVAHelmetERTEngineer # Sunrise-edit
|
||||
eyes: ClothingEyesHudDiagnosticERT # Sunrise-edit
|
||||
shoes: ClothingShoesBootsWork
|
||||
head: ClothingHeadHelmetERTEngineer
|
||||
eyes: ClothingEyesGlassesMeson
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
outerClothing: ClothingOuterArmorAmberEng
|
||||
outerClothing: ClothingOuterArmorBasicSlim
|
||||
id: ERTEngineerPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltChiefEngineerFilled
|
||||
pocket1: WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
pocket2: AtmosAlertsMonitorUnpowered # Sunrise-edit
|
||||
pocket1: Flare
|
||||
pocket2: GasAnalyzer
|
||||
storage:
|
||||
back:
|
||||
# - trayScanner # Sunrise-edit
|
||||
- RCDRecharging
|
||||
#- RCDAmmo # Sunrise-edit
|
||||
#- RCDAmmo # Sunrise-edit
|
||||
#- CableMVStack # Sunrise-edit
|
||||
#- CableHVStack # Sunrise-edit
|
||||
#- CableApcStack # Sunrise-edit
|
||||
- trayScanner
|
||||
- RCD
|
||||
- RCDAmmo
|
||||
- RCDAmmo
|
||||
- CableMVStack
|
||||
- CableHVStack
|
||||
- CableApcStack
|
||||
- SheetPlasteel
|
||||
- SheetSteel
|
||||
- SheetGlass
|
||||
|
|
@ -222,23 +221,23 @@
|
|||
back: ClothingBackpackERTEngineer
|
||||
shoes: ClothingShoesBootsMagAdv
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesHudDiagnosticERT # Sunrise-edit
|
||||
eyes: ClothingEyesGlassesMeson
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
outerClothing: ClothingOuterHardsuitERTEngineer
|
||||
id: ERTEngineerPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltChiefEngineerFilled
|
||||
pocket1: WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
pocket2: AtmosAlertsMonitorUnpowered # Sunrise-edit
|
||||
pocket1: Flare
|
||||
pocket2: GasAnalyzer
|
||||
storage:
|
||||
back:
|
||||
# - trayScanner # Sunrise-edit
|
||||
- RCDRecharging
|
||||
#- RCDAmmo # Sunrise-edit
|
||||
#- RCDAmmo # Sunrise-edit
|
||||
#- CableMVStack # Sunrise-edit
|
||||
#- CableHVStack # Sunrise-edit
|
||||
#- CableApcStack # Sunrise-edit
|
||||
- trayScanner
|
||||
- RCD
|
||||
- RCDAmmo
|
||||
- RCDAmmo
|
||||
- CableMVStack
|
||||
- CableHVStack
|
||||
- CableApcStack
|
||||
- SheetPlasteel
|
||||
- SheetSteel
|
||||
- SheetGlass
|
||||
|
|
@ -264,31 +263,31 @@
|
|||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTSecurity
|
||||
back: ClothingBackpackERTSecurity
|
||||
shoes: ClothingShoesBootsMagSec # Sunrise-edit
|
||||
head: ClothingHeadEVAHelmetERTSecurity # Sunrise-edit
|
||||
shoes: ClothingShoesBootsCombatFilled
|
||||
head: ClothingHeadHelmetERTSecurity
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
outerClothing: ClothingOuterArmorAmberSec
|
||||
outerClothing: ClothingOuterArmorBasicSlim
|
||||
id: ERTSecurityPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltSecurityFilled
|
||||
pocket1: WeaponPistolN1984 # Sunrise-edit
|
||||
pocket2: MagazineMagnum # Sunrise-edit
|
||||
pocket1: WeaponPistolMk58
|
||||
pocket2: FlashlightSeclite
|
||||
storage:
|
||||
back:
|
||||
- WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
- WeaponDisabler
|
||||
- MedicatedSuture
|
||||
- RegenerativeMesh
|
||||
#- BoxZiptie # Sunrise-edit
|
||||
- BoxZiptie
|
||||
- CrowbarRed
|
||||
- MagazineMagnum # Sunrise-edit
|
||||
- MagazinePistol
|
||||
|
||||
- type: startingGear
|
||||
id: ERTSecurityGearEVA
|
||||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTSecurity
|
||||
back: ClothingBackpackERTSecurity
|
||||
shoes: ClothingShoesBootsMagCombat
|
||||
shoes: ClothingShoesBootsMag
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
|
|
@ -296,23 +295,23 @@
|
|||
id: ERTSecurityPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltSecurityFilled
|
||||
pocket1: WeaponPistolN1984 # Sunrise-edit
|
||||
pocket2: MagazineMagnum # Sunrise-edit
|
||||
pocket1: WeaponPistolMk58
|
||||
pocket2: FlashlightSeclite
|
||||
storage:
|
||||
back:
|
||||
- WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
- WeaponDisabler
|
||||
- MedicatedSuture
|
||||
- RegenerativeMesh
|
||||
#- BoxZiptie # Sunrise-edit
|
||||
- BoxZiptie
|
||||
- CrowbarRed
|
||||
- MagazineMagnum # Sunrise-edit
|
||||
- MagazinePistol
|
||||
|
||||
- type: startingGear
|
||||
id: ERTSecurityGearEVALecter
|
||||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTSecurity
|
||||
back: ClothingBackpackERTSecurity
|
||||
shoes: ClothingShoesBootsMagCombat
|
||||
shoes: ClothingShoesBootsMag
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
|
|
@ -329,7 +328,7 @@
|
|||
- WeaponDisabler
|
||||
- MedicatedSuture
|
||||
- RegenerativeMesh
|
||||
#- BoxZiptie # Sunrise-edit
|
||||
- BoxZiptie
|
||||
- CrowbarRed
|
||||
- MagazinePistol
|
||||
|
||||
|
|
@ -354,55 +353,48 @@
|
|||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTMedic
|
||||
back: ClothingBackpackERTMedical
|
||||
shoes: ClothingShoesBootsMagSec # Sunrise-edit
|
||||
head: ClothingHeadEVAHelmetERTMedic # Sunrise-edit
|
||||
eyes: ClothingEyesHudMedSec # Sunrise-edit
|
||||
gloves: ClothingHandsGlovesCombat # Sunrise-edit
|
||||
outerClothing: ClothingOuterArmorAmberMed # Sunrise-edit
|
||||
shoes: ClothingShoesBootsCombatFilled
|
||||
head: ClothingHeadHelmetERTMedic
|
||||
eyes: ClothingEyesHudMedical
|
||||
gloves: ClothingHandsGlovesNitrile
|
||||
outerClothing: ClothingOuterArmorBasicSlim
|
||||
id: ERTMedicPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltMedicalFilled
|
||||
pocket1: WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
pocket2: HandheldCrewMonitor # Sunrise-edit
|
||||
pocket1: Flare
|
||||
storage:
|
||||
back:
|
||||
- Hypospray
|
||||
#- MedkitAdvancedFilled # Sunrise-edit
|
||||
- MedkitCombatFilled
|
||||
- MedkitCombatFilled
|
||||
- CrowbarRed
|
||||
- LauncherSyringePistol
|
||||
- OmnizineChemistryBottle
|
||||
- EpinephrineChemistryBottle
|
||||
- EpinephrineChemistryBottle
|
||||
- DefibrillatorCompact # Sunrise-edit
|
||||
- MedkitCombatFilled # Sunrise-edit
|
||||
- MedkitCombatFilled # Sunrise-edit
|
||||
|
||||
- type: startingGear
|
||||
id: ERTMedicalGearEVA
|
||||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTMedic
|
||||
back: ClothingBackpackERTMedical
|
||||
shoes: ClothingShoesBootsMagCombat
|
||||
shoes: ClothingShoesBootsMag
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesHudMedSec # Sunrise-edit
|
||||
gloves: ClothingHandsGlovesCombat # Sunrise-edit
|
||||
eyes: ClothingEyesHudMedical
|
||||
gloves: ClothingHandsGlovesNitrile
|
||||
outerClothing: ClothingOuterHardsuitERTMedical
|
||||
id: ERTMedicPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltMedicalFilled
|
||||
pocket1: WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
pocket2: HandheldCrewMonitor # Sunrise-edit
|
||||
pocket1: Flare
|
||||
storage:
|
||||
back:
|
||||
- Hypospray
|
||||
#- MedkitAdvancedFilled # Sunrise-edit
|
||||
- MedkitCombatFilled
|
||||
- MedkitCombatFilled
|
||||
- CrowbarRed
|
||||
- OmnizineChemistryBottle
|
||||
- EpinephrineChemistryBottle
|
||||
- EpinephrineChemistryBottle
|
||||
- DefibrillatorCompact # Sunrise-edit
|
||||
- MedkitCombatFilled # Sunrise-edit
|
||||
- MedkitCombatFilled # Sunrise-edit
|
||||
|
||||
# Janitor
|
||||
- type: job
|
||||
|
|
@ -426,22 +418,20 @@
|
|||
jumpsuit: ClothingUniformJumpsuitERTJanitor
|
||||
back: ClothingBackpackERTJanitor
|
||||
shoes: ClothingShoesGaloshes
|
||||
head: ClothingHeadEVAHelmetERTJanitor # Sunrise-edit
|
||||
eyes: ClothingEyesGlassesSecurity # Sunrise-edit
|
||||
gloves: ClothingHandsGlovesCombat # Sunrise-edit
|
||||
outerClothing: ClothingOuterArmorAmberJan
|
||||
head: ClothingHeadHelmetERTJanitor
|
||||
gloves: ClothingHandsGlovesColorPurple
|
||||
outerClothing: ClothingOuterArmorBasicSlim
|
||||
id: ERTJanitorPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltJanitorFilled
|
||||
pocket1: WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
pocket2: CrowbarRed # Sunrise-edit
|
||||
pocket1: Flare
|
||||
storage:
|
||||
back:
|
||||
- LightReplacer
|
||||
- BoxLightMixed
|
||||
#- BoxLightMixed # Sunrise-edit
|
||||
#- Soap # Sunrise-edit
|
||||
#- CrowbarRed # Sunrise-edit
|
||||
- BoxLightMixed
|
||||
- Soap
|
||||
- CrowbarRed
|
||||
- AdvMopItem
|
||||
|
||||
- type: startingGear
|
||||
|
|
@ -449,22 +439,19 @@
|
|||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitERTJanitor
|
||||
back: ClothingBackpackERTJanitor
|
||||
shoes: ClothingShoesBootsMagCombat
|
||||
shoes: ClothingShoesBootsMag
|
||||
mask: ClothingMaskGasERT
|
||||
eyes: ClothingEyesGlassesSecurity # Sunrise-edit
|
||||
gloves: ClothingHandsGlovesCombat # Sunrise-edit
|
||||
gloves: ClothingHandsGlovesColorPurple
|
||||
outerClothing: ClothingOuterHardsuitERTJanitor
|
||||
id: ERTJanitorPDA
|
||||
ears: ClothingHeadsetAltCentCom
|
||||
belt: ClothingBeltJanitorFilled
|
||||
pocket1: WeaponEnergyGunPistolSecurity # Sunrise-edit
|
||||
pocket2: CrowbarRed # Sunrise-edit
|
||||
pocket1: Flare
|
||||
storage:
|
||||
back:
|
||||
- LightReplacer
|
||||
- BoxLightMixed
|
||||
#- BoxLightMixed # Sunrise-edit
|
||||
#- Soap # Sunrise-edit
|
||||
#- CrowbarRed # Sunrise-edit
|
||||
- BoxLightMixed
|
||||
- Soap
|
||||
- CrowbarRed
|
||||
- AdvMopItem
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 5.4 KiB |
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/a879151ef04192ae2a791278ee882c1bce7c5062, cola and any sprite modified by potato1234x (github) for ss14",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/a879151ef04192ae2a791278ee882c1bce7c5062, cola and any sprite modified by potato1234x (github) for ss14, clothing by Southbridge_fur (github) for SS14",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
|
@ -15,6 +15,9 @@
|
|||
},
|
||||
{
|
||||
"name": "any"
|
||||
},
|
||||
{
|
||||
"name": "clothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 511 B |
|
After Width: | Height: | Size: 436 B |
|
After Width: | Height: | Size: 888 B |
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Created by Alpaccalypse for SS14",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "normal-unshaded",
|
||||
"delays": [
|
||||
[
|
||||
2.5,
|
||||
0.1,
|
||||
3.4,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "broken"
|
||||
},
|
||||
{
|
||||
"name": "normal"
|
||||
},
|
||||
{
|
||||
"name": "deny-unshaded",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eject-unshaded",
|
||||
"delays": [
|
||||
[
|
||||
0.5,
|
||||
0.1,
|
||||
1.0,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "off"
|
||||
},
|
||||
{
|
||||
"name": "panel"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 532 B |
|
After Width: | Height: | Size: 496 B |
|
After Width: | Height: | Size: 481 B |
|
After Width: | Height: | Size: 150 B |
|
|
@ -1 +1 @@
|
|||
Subproject commit e4190f4f2900634e332208a77cd6df9cef75c29a
|
||||
Subproject commit bcc4cd77cf16deb9b05f29b090d865f836a733ab
|
||||