diff --git a/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs b/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs
index 44c40143d83..04075000f5b 100644
--- a/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs
+++ b/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs
@@ -39,6 +39,6 @@ protected override void UpdateState(BoundUserInterfaceState message)
if (message is not CargoBountyConsoleState state)
return;
- _menu?.UpdateEntries(state.Bounties, state.UntilNextSkip);
+ _menu?.UpdateEntries(state.Bounties, state.History, state.UntilNextSkip);
}
}
diff --git a/Content.Client/Cargo/UI/BountyHistoryEntry.xaml b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml
new file mode 100644
index 00000000000..eee8c5cc165
--- /dev/null
+++ b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs
new file mode 100644
index 00000000000..f3c9bbfafb1
--- /dev/null
+++ b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs
@@ -0,0 +1,54 @@
+using Content.Client.Message;
+using Content.Shared.Cargo;
+using Content.Shared.Cargo.Prototypes;
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Timing;
+
+namespace Content.Client.Cargo.UI;
+
+[GenerateTypedNameReferences]
+public sealed partial class BountyHistoryEntry : BoxContainer
+{
+ [Dependency] private readonly IPrototypeManager _prototype = default!;
+
+ public BountyHistoryEntry(CargoBountyHistoryData bounty)
+ {
+ RobustXamlLoader.Load(this);
+ IoCManager.InjectDependencies(this);
+
+ if (!_prototype.TryIndex(bounty.Bounty, out var bountyPrototype))
+ return;
+
+ var items = new List();
+ foreach (var entry in bountyPrototype.Entries)
+ {
+ items.Add(Loc.GetString("bounty-console-manifest-entry",
+ ("amount", entry.Amount),
+ ("item", Loc.GetString(entry.Name))));
+ }
+ ManifestLabel.SetMarkup(Loc.GetString("bounty-console-manifest-label", ("item", string.Join(", ", items))));
+ RewardLabel.SetMarkup(Loc.GetString("bounty-console-reward-label", ("reward", bountyPrototype.Reward)));
+ IdLabel.SetMarkup(Loc.GetString("bounty-console-id-label", ("id", bounty.Id)));
+
+ var stationTime = bounty.Timestamp.ToString("hh\\:mm\\:ss");
+ if (bounty.ActorName == null)
+ {
+ StatusLabel.SetMarkup(Loc.GetString("bounty-console-history-completed-label"));
+ NoticeLabel.SetMarkup(Loc.GetString("bounty-console-history-notice-completed-label", ("time", stationTime)));
+ }
+ else
+ {
+ StatusLabel.SetMarkup(Loc.GetString("bounty-console-history-skipped-label"));
+ NoticeLabel.SetMarkup(Loc.GetString("bounty-console-history-notice-skipped-label",
+ ("id", bounty.ActorName),
+ ("time", stationTime)));
+ }
+ }
+ protected override void FrameUpdate(FrameEventArgs args)
+ {
+ base.FrameUpdate(args);
+ }
+}
diff --git a/Content.Client/Cargo/UI/CargoBountyMenu.xaml b/Content.Client/Cargo/UI/CargoBountyMenu.xaml
index bb263ff6c4a..0f093d5f8e7 100644
--- a/Content.Client/Cargo/UI/CargoBountyMenu.xaml
+++ b/Content.Client/Cargo/UI/CargoBountyMenu.xaml
@@ -11,15 +11,26 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs b/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs
index 3767b45e4be..0717aacc5e6 100644
--- a/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs
+++ b/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs
@@ -17,8 +17,11 @@ public CargoBountyMenu()
RobustXamlLoader.Load(this);
}
- public void UpdateEntries(List bounties, TimeSpan untilNextSkip)
+ public void UpdateEntries(List bounties, List history, TimeSpan untilNextSkip)
{
+ MasterTabContainer.SetTabTitle(0, Loc.GetString("bounty-console-tab-available-label"));
+ MasterTabContainer.SetTabTitle(1, Loc.GetString("bounty-console-tab-history-label"));
+
BountyEntriesContainer.Children.Clear();
foreach (var b in bounties)
{
@@ -32,5 +35,12 @@ public void UpdateEntries(List bounties, TimeSpan untilNextSkip
{
MinHeight = 10
});
+
+ BountyHistoryContainer.Children.Clear();
+ foreach (var h in history)
+ {
+ var entry = new BountyHistoryEntry(h);
+ BountyHistoryContainer.AddChild(entry);
+ }
}
}
diff --git a/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs b/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs
index d691f9acef3..64fc975b98c 100644
--- a/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs
+++ b/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs
@@ -1,7 +1,9 @@
using System.Linq;
using Content.Client.Message;
+using Content.Shared.DeltaV.Salvage.Systems; // DeltaV
using Content.Shared.Salvage;
using Content.Shared.Salvage.Magnet;
+using Robust.Client.Player; // DeltaV
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
@@ -10,12 +12,16 @@ namespace Content.Client.Salvage.UI;
public sealed class SalvageMagnetBoundUserInterface : BoundUserInterface
{
[Dependency] private readonly IEntityManager _entManager = default!;
+ [Dependency] private readonly IPlayerManager _player = default!; // DeltaV
+
+ private readonly MiningPointsSystem _points; // DeltaV
private OfferingWindow? _window;
public SalvageMagnetBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
IoCManager.InjectDependencies(this);
+ _points = _entManager.System(); // DeltaV
}
protected override void Open()
@@ -61,6 +67,21 @@ protected override void UpdateState(BoundUserInterfaceState state)
});
};
+ // Begin DeltaV Additions: Mining points cost for wrecks
+ if (offer.Cost > 0)
+ {
+ if (_player.LocalSession?.AttachedEntity is not {} user || !_points.UserHasPoints(user, offer.Cost))
+ option.Disabled = true;
+
+ var label = new Label
+ {
+ Text = Loc.GetString("salvage-magnet-mining-points-cost", ("points", offer.Cost)),
+ HorizontalAlignment = Control.HAlignment.Center
+ };
+ option.AddContent(label);
+ }
+ // End DeltaV Additions
+
switch (offer)
{
case AsteroidOffering asteroid:
diff --git a/Content.Client/Stack/StackSystem.cs b/Content.Client/Stack/StackSystem.cs
index 7e681aeba3e..f57f4d4e170 100644
--- a/Content.Client/Stack/StackSystem.cs
+++ b/Content.Client/Stack/StackSystem.cs
@@ -8,7 +8,7 @@
namespace Content.Client.Stack
{
[UsedImplicitly]
- public sealed class StackSystem : SharedStackSystem
+ public sealed partial class StackSystem : SharedStackSystem // Frontier: add partial to class definition
{
[Dependency] private readonly AppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly ItemCounterSystem _counterSystem = default!;
@@ -44,7 +44,7 @@ public override void SetCount(EntityUid uid, int amount, StackComponent? compone
// TODO PREDICT ENTITY DELETION: This should really just be a normal entity deletion call.
if (component.Count <= 0 && !component.Lingering)
{
- Xform.DetachEntity(uid, Transform(uid));
+ Xform.DetachParentToNull(uid, Transform(uid));
return;
}
@@ -56,20 +56,25 @@ private void OnAppearanceChange(EntityUid uid, StackComponent comp, ref Appearan
if (args.Sprite == null || comp.LayerStates.Count < 1)
return;
+ StackLayerData data = new StackLayerData(); // Frontier: use structure to store StackLayerData
+
// Skip processing if no actual
- if (!_appearanceSystem.TryGetData(uid, StackVisuals.Actual, out var actual, args.Component))
+ if (!_appearanceSystem.TryGetData(uid, StackVisuals.Actual, out data.Actual, args.Component))
return;
- if (!_appearanceSystem.TryGetData(uid, StackVisuals.MaxCount, out var maxCount, args.Component))
- maxCount = comp.LayerStates.Count;
+ if (!_appearanceSystem.TryGetData(uid, StackVisuals.MaxCount, out data.MaxCount, args.Component))
+ data.MaxCount = comp.LayerStates.Count;
+
+ if (!_appearanceSystem.TryGetData(uid, StackVisuals.Hide, out data.Hidden, args.Component))
+ data.Hidden = false;
- if (!_appearanceSystem.TryGetData(uid, StackVisuals.Hide, out var hidden, args.Component))
- hidden = false;
+ if (comp.LayerFunction != StackLayerFunction.None) // Frontier: use stack layer function to modify appearance if provided.
+ ApplyLayerFunction(uid, comp, ref data); // Frontier: definition in _NF/Stack/StackSystem.Layers.cs
if (comp.IsComposite)
- _counterSystem.ProcessCompositeSprite(uid, actual, maxCount, comp.LayerStates, hidden, sprite: args.Sprite);
+ _counterSystem.ProcessCompositeSprite(uid, data.Actual, data.MaxCount, comp.LayerStates, data.Hidden, sprite: args.Sprite);
else
- _counterSystem.ProcessOpaqueSprite(uid, comp.BaseLayer, actual, maxCount, comp.LayerStates, hidden, sprite: args.Sprite);
+ _counterSystem.ProcessOpaqueSprite(uid, comp.BaseLayer, data.Actual, data.MaxCount, comp.LayerStates, data.Hidden, sprite: args.Sprite);
}
}
}
diff --git a/Content.Client/_NF/Stack/StackSystem.Layers.cs b/Content.Client/_NF/Stack/StackSystem.Layers.cs
new file mode 100644
index 00000000000..2893d32d3f5
--- /dev/null
+++ b/Content.Client/_NF/Stack/StackSystem.Layers.cs
@@ -0,0 +1,56 @@
+using Content.Shared.Stacks.Components;
+using Content.Shared.Stacks;
+
+namespace Content.Client.Stack
+{
+ ///
+ /// Data used to determine which layers of a stack's sprite are visible.
+ ///
+ public struct StackLayerData
+ {
+ public int Actual;
+ public int MaxCount;
+ public bool Hidden;
+ }
+
+ public sealed partial class StackSystem : SharedStackSystem
+ {
+ // Modifies a given stack component to adjust the layers to display.
+ private bool ApplyLayerFunction(EntityUid uid, StackComponent comp, ref StackLayerData data)
+ {
+ switch (comp.LayerFunction)
+ {
+ case StackLayerFunction.Threshold:
+ if (TryComp(uid, out var threshold))
+ {
+ ApplyThreshold(threshold, ref data);
+ return true;
+ }
+ break;
+ }
+ // No function applied.
+ return false;
+ }
+
+ ///
+ /// Sets Actual to the number of thresholds that Actual exceeds from the beginning of the list.
+ /// Sets MaxCount to the total number of thresholds plus one (for values under thresholds).
+ ///
+ private static void ApplyThreshold(StackLayerThresholdComponent comp, ref StackLayerData data)
+ {
+ // We must stop before we run out of thresholds or layers, whichever's smaller.
+ data.MaxCount = Math.Min(comp.Thresholds.Count + 1, data.MaxCount);
+ int newActual = 0;
+ foreach (var threshold in comp.Thresholds)
+ {
+ //If our value exceeds threshold, the next layer should be displayed.
+ //Note: we must ensure actual <= MaxCount.
+ if (data.Actual >= threshold && newActual < data.MaxCount)
+ newActual++;
+ else
+ break;
+ }
+ data.Actual = newActual;
+ }
+ }
+}
diff --git a/Content.Server/Body/Components/LungComponent.cs b/Content.Server/Body/Components/LungComponent.cs
index 72af4d9e63a..256c6d67298 100644
--- a/Content.Server/Body/Components/LungComponent.cs
+++ b/Content.Server/Body/Components/LungComponent.cs
@@ -34,4 +34,11 @@ public sealed partial class LungComponent : Component
///
[DataField]
public ProtoId Alert = "LowOxygen";
+
+ ///
+ /// DeltaV: Multiplier on saturation passively lost.
+ /// Higher values require more air, lower require less.
+ ///
+ [DataField]
+ public float SaturationLoss = 1f;
}
diff --git a/Content.Server/Body/Systems/RespiratorSystem.cs b/Content.Server/Body/Systems/RespiratorSystem.cs
index 6209f00419d..b5975326b3e 100644
--- a/Content.Server/Body/Systems/RespiratorSystem.cs
+++ b/Content.Server/Body/Systems/RespiratorSystem.cs
@@ -74,7 +74,15 @@ public override void Update(float frameTime)
if (_mobState.IsDead(uid))
continue;
- UpdateSaturation(uid, -(float) respirator.UpdateInterval.TotalSeconds, respirator);
+ // Begin DeltaV Code: Addition:
+ var organs = _bodySystem.GetBodyOrganEntityComps((uid, body));
+ var multiplier = -1f;
+ foreach (var (_, lung, _) in organs)
+ {
+ multiplier *= lung.SaturationLoss;
+ }
+ // End DeltaV Code
+ UpdateSaturation(uid, multiplier * (float) respirator.UpdateInterval.TotalSeconds, respirator); // DeltaV: use multiplier instead of negating
if (!_mobState.IsIncapacitated(uid)) // cannot breathe in crit.
{
diff --git a/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs b/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs
index a7735787cbb..f58b5450ba4 100644
--- a/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs
+++ b/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs
@@ -21,6 +21,13 @@ public sealed partial class StationCargoBountyDatabaseComponent : Component
[DataField, ViewVariables(VVAccess.ReadWrite)]
public List Bounties = new();
+ ///
+ /// A list of all the bounties that have been completed or
+ /// skipped for a station.
+ ///
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public List History = new();
+
///
/// Used to determine unique order IDs
///
diff --git a/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs b/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs
index 373e8e243ba..236b018a9da 100644
--- a/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs
+++ b/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs
@@ -8,6 +8,7 @@
using Content.Shared.Cargo.Components;
using Content.Shared.Cargo.Prototypes;
using Content.Shared.Database;
+using Content.Shared.IdentityManagement;
using Content.Shared.NameIdentifier;
using Content.Shared.Paper;
using Content.Shared.Stacks;
@@ -16,6 +17,7 @@
using Robust.Server.Containers;
using Robust.Shared.Containers;
using Robust.Shared.Random;
+using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Content.Server.Cargo.Systems;
@@ -25,6 +27,7 @@ public sealed partial class CargoSystem
[Dependency] private readonly ContainerSystem _container = default!;
[Dependency] private readonly NameIdentifierSystem _nameIdentifier = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelistSys = default!;
+ [Dependency] private readonly IGameTiming _gameTiming = default!;
[ValidatePrototypeId]
private const string BountyNameIdentifierGroup = "Bounty";
@@ -54,7 +57,7 @@ private void OnBountyConsoleOpened(EntityUid uid, CargoBountyConsoleComponent co
return;
var untilNextSkip = bountyDb.NextSkipTime - _timing.CurTime;
- _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(bountyDb.Bounties, untilNextSkip));
+ _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(bountyDb.Bounties, bountyDb.History, untilNextSkip));
}
private void OnPrintLabelMessage(EntityUid uid, CargoBountyConsoleComponent component, BountyPrintLabelMessage args)
@@ -95,13 +98,13 @@ private void OnSkipBountyMessage(EntityUid uid, CargoBountyConsoleComponent comp
return;
}
- if (!TryRemoveBounty(station, bounty.Value))
+ if (!TryRemoveBounty(station, bounty.Value, null, args.Actor))
return;
FillBountyDatabase(station);
db.NextSkipTime = _timing.CurTime + db.SkipDelay;
var untilNextSkip = db.NextSkipTime - _timing.CurTime;
- _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip));
+ _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, db.History, untilNextSkip));
_audio.PlayPvs(component.SkipSound, uid);
}
@@ -434,15 +437,15 @@ public bool TryAddBounty(EntityUid uid, CargoBountyPrototype bounty, StationCarg
}
[PublicAPI]
- public bool TryRemoveBounty(EntityUid uid, string dataId, StationCargoBountyDatabaseComponent? component = null)
+ public bool TryRemoveBounty(EntityUid uid, string dataId, StationCargoBountyDatabaseComponent? component = null, EntityUid? actor = null)
{
if (!TryGetBountyFromId(uid, dataId, out var data, component))
return false;
- return TryRemoveBounty(uid, data.Value, component);
+ return TryRemoveBounty(uid, data.Value, component, actor);
}
- public bool TryRemoveBounty(EntityUid uid, CargoBountyData data, StationCargoBountyDatabaseComponent? component = null)
+ public bool TryRemoveBounty(EntityUid uid, CargoBountyData data, StationCargoBountyDatabaseComponent? component = null, EntityUid? actor = null)
{
if (!Resolve(uid, ref component))
return false;
@@ -451,6 +454,15 @@ public bool TryRemoveBounty(EntityUid uid, CargoBountyData data, StationCargoBou
{
if (component.Bounties[i].Id == data.Id)
{
+ string? actorName = default;
+ if (actor != null)
+ {
+ var getIdentityEvent = new TryGetIdentityShortInfoEvent(uid, actor.Value);
+ RaiseLocalEvent(getIdentityEvent);
+ actorName = getIdentityEvent.Title;
+ }
+
+ component.History.Add(new CargoBountyHistoryData(data, _gameTiming.CurTime, actorName));
component.Bounties.RemoveAt(i);
return true;
}
@@ -492,7 +504,7 @@ public void UpdateBountyConsoles()
}
var untilNextSkip = db.NextSkipTime - _timing.CurTime;
- _uiSystem.SetUiState((uid, ui), CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip));
+ _uiSystem.SetUiState((uid, ui), CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, db.History, untilNextSkip));
}
}
diff --git a/Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs b/Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs
new file mode 100644
index 00000000000..23fe9d7e3eb
--- /dev/null
+++ b/Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs
@@ -0,0 +1,232 @@
+using Content.Server.Chat.Managers;
+using Content.Server.DoAfter;
+using Content.Server.DeltaV.StationEvents.NextEvent;
+using Content.Server.GameTicking;
+using Content.Server.Mind;
+using Content.Shared.Abilities.Psionics;
+using Content.Shared.Actions.Events;
+using Content.Shared.Actions;
+using Content.Shared.DoAfter;
+using Content.Shared.Eye.Blinding.Components;
+using Content.Shared.Popups;
+using Content.Shared.Psionics.Events;
+using Content.Shared.StatusEffect;
+using Content.Shared.Stunnable;
+using Robust.Shared.Audio.Systems;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Random;
+using Robust.Shared.Timing;
+using Robust.Shared.Player;
+
+namespace Content.Server.Abilities.Psionics;
+
+public sealed class PrecognitionPowerSystem : EntitySystem
+{
+ [Dependency] private readonly DoAfterSystem _doAfterSystem = default!;
+ [Dependency] private readonly GameTicker _gameTicker = default!;
+ [Dependency] private readonly MindSystem _mind = default!;
+ [Dependency] private readonly SharedActionsSystem _actions = default!;
+ [Dependency] private readonly SharedAudioSystem _audio = default!;
+ [Dependency] private readonly SharedPopupSystem _popups = default!;
+ [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!;
+ [Dependency] private readonly StatusEffectsSystem _statusEffects = default!;
+ [Dependency] private readonly IChatManager _chat = default!;
+ [Dependency] private readonly IComponentFactory _factory = default!;
+ [Dependency] private readonly IGameTiming _gameTiming = default!;
+ [Dependency] private readonly IPrototypeManager _prototype = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent(OnMapInit);
+ SubscribeLocalEvent(OnShutdown);
+ SubscribeLocalEvent(OnPowerUsed);
+ SubscribeLocalEvent(OnDoAfter);
+ }
+
+ private void OnMapInit(Entity ent, ref MapInitEvent args)
+ {
+ ent.Comp.AllResults = GetAllPrecognitionResults();
+ _actions.AddAction(ent, ref ent.Comp.PrecognitionActionEntity, ent.Comp.PrecognitionActionId);
+ _actions.StartUseDelay(ent.Comp.PrecognitionActionEntity);
+ if (TryComp(ent, out var psionic) && psionic.PsionicAbility == null)
+ {
+ psionic.PsionicAbility = ent.Comp.PrecognitionActionEntity;
+ psionic.ActivePowers.Add(ent.Comp);
+ }
+ }
+
+ private void OnShutdown(EntityUid uid, PrecognitionPowerComponent component, ComponentShutdown args)
+ {
+ _actions.RemoveAction(uid, component.PrecognitionActionEntity);
+ if (TryComp(uid, out var psionic))
+ psionic.ActivePowers.Remove(component);
+ }
+
+ private void OnPowerUsed(EntityUid uid, PrecognitionPowerComponent component, PrecognitionPowerActionEvent args)
+ {
+ var ev = new PrecognitionDoAfterEvent(_gameTiming.CurTime);
+ var doAfterArgs = new DoAfterArgs(EntityManager, uid, component.UseDelay, ev, uid)
+ {
+ BreakOnDamage = true
+ };
+
+ // A custom shader for seeing visions would be nice but this will do for now.
+ _statusEffects.TryAddStatusEffect(uid, "TemporaryBlindness", component.UseDelay, true);
+ _statusEffects.TryAddStatusEffect(uid, "SlowedDown", component.UseDelay, true);
+
+ _doAfterSystem.TryStartDoAfter(doAfterArgs, out var doAfterId);
+ component.DoAfter = doAfterId;
+
+ var player = _audio.PlayGlobal(component.VisionSound, Filter.Entities(uid), true);
+ if (player != null)
+ component.SoundStream = player.Value.Entity;
+ _psionics.LogPowerUsed(uid, "Precognition");
+ args.Handled = true;
+ }
+
+ ///
+ /// Upon completion will send a message to the user corrosponding to the next station event to occour.
+ ///
+ ///
+ ///
+ ///
+ private void OnDoAfter(EntityUid uid, PrecognitionPowerComponent component, PrecognitionDoAfterEvent args)
+ {
+ if (args.Handled)
+ return;
+
+ if (args.Cancelled)
+ {
+ // Need to clean up the applied effects in case of cancel and alert the player.
+ component.SoundStream = _audio.Stop(component.SoundStream);
+ _statusEffects.TryRemoveStatusEffect(uid, "TemporaryBlindness");
+ _statusEffects.TryRemoveStatusEffect(uid, "SlowedDown");
+
+ _popups.PopupEntity(
+ Loc.GetString("psionic-power-precognition-failure-by-damage"),
+ uid,
+ uid,
+ PopupType.SmallCaution);
+
+ if (_actions.TryGetActionData(component.PrecognitionActionEntity, out var actionData))
+ // If canceled give a short delay before being able to try again
+ actionData.Cooldown =
+ (_gameTicker.RoundDuration(),
+ _gameTicker.RoundDuration() + TimeSpan.FromSeconds(15));
+ return;
+ }
+
+ // Determines the window that will be looked at for events, avoiding events that are too close or too far to be useful.
+ var minDetectWindow = TimeSpan.FromSeconds(30);
+ var maxDetectWindow = TimeSpan.FromMinutes(10);
+ string? message = null;
+
+ if (!_mind.TryGetMind(uid, out _, out var mindComponent) || mindComponent.Session == null)
+ return;
+
+ var nextEvent = (FindEarliestNextEvent(minDetectWindow, maxDetectWindow));
+ if (nextEvent == null) // A special message given if there is no event within the time window.
+ message = "psionic-power-precognition-no-event-result-message";
+
+ if (nextEvent != null && nextEvent.NextEventId != null)
+ message = GetResultMessage(nextEvent.NextEventId, component);
+
+ if (_random.Prob(component.RandomResultChance)) // This will replace the proper result message with a random one occasionaly to simulate some unreliablity.
+ message = GetRandomResult();
+
+ if (string.IsNullOrEmpty(message)) // If there is no message to send don't bother trying to send it.
+ return;
+
+ // Send a message describing the vision they see
+ message = Loc.GetString(message);
+ _chat.ChatMessageToOne(Shared.Chat.ChatChannel.Server,
+ message,
+ Loc.GetString("chat-manager-server-wrap-message", ("message", message)),
+ uid,
+ false,
+ mindComponent.Session.Channel,
+ Color.PaleVioletRed);
+
+ component.DoAfter = null;
+ }
+
+ ///
+ /// Gets the precognition result message corosponding to the passed event id.
+ ///
+ /// message string corosponding to the event id passed
+ private string GetResultMessage(EntProtoId? eventId, PrecognitionPowerComponent component)
+ {
+ foreach (var (eventProto, precognitionResult) in component.AllResults)
+ {
+ if (eventProto.ID == eventId && precognitionResult != null)
+ return precognitionResult.Message;
+ }
+ Log.Error($"Prototype {eventId} does not have an associated precognitionResult!");
+ return string.Empty;
+ }
+
+ ///
+ ///
+ /// The localized string of a weighted randomly chosen precognition result
+ public string? GetRandomResult()
+ {
+ var precognitionResults = GetAllPrecognitionResults();
+ var sumOfWeights = 0;
+ foreach (var precognitionResult in precognitionResults.Values)
+ sumOfWeights += (int)precognitionResult.Weight;
+
+ sumOfWeights = _random.Next(sumOfWeights);
+ foreach (var precognitionResult in precognitionResults.Values)
+ {
+ sumOfWeights -= (int)precognitionResult.Weight;
+
+ if (sumOfWeights <= 0)
+ return precognitionResult.Message;
+ }
+
+ Log.Error("Result was not found after weighted pick process!");
+ return null;
+ }
+
+ ///
+ /// Gets the soonest nextEvent to occur within the window.
+ ///
+ /// The earliest reletive time that will be return a nextEvent
+ /// The latest reletive latest time that will be return a nextEvent
+ /// Component for the next event to occour if one exists in the window.
+ private NextEventComponent? FindEarliestNextEvent(TimeSpan minDetectWindow, TimeSpan maxDetectWindow)
+ {
+ TimeSpan? earliestNextEventTime = null;
+ NextEventComponent? earliestNextEvent = null;
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var nextEventComponent))
+ {
+ // Update if the event is the most recent event that isnt too close or too far from happening to be of use
+ if (nextEventComponent.NextEventTime > _gameTicker.RoundDuration() + minDetectWindow
+ && nextEventComponent.NextEventTime < _gameTicker.RoundDuration() + maxDetectWindow
+ && earliestNextEvent == null
+ || nextEventComponent.NextEventTime < earliestNextEventTime)
+ earliestNextEvent ??= nextEventComponent;
+ }
+ return earliestNextEvent;
+ }
+
+ public Dictionary GetAllPrecognitionResults()
+ {
+ var allEvents = new Dictionary();
+ foreach (var prototype in _prototype.EnumeratePrototypes())
+ {
+ if (prototype.Abstract)
+ continue;
+
+ if (!prototype.TryGetComponent(out var precognitionResult, _factory))
+ continue;
+
+ allEvents.Add(prototype, precognitionResult);
+ }
+
+ return allEvents;
+ }
+}
diff --git a/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs b/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs
index ec800db2a30..079ec77bbf3 100644
--- a/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs
+++ b/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs
@@ -1,5 +1,6 @@
using Content.Shared.ActionBlocker;
using Content.Shared.Damage;
+using Content.Shared.DeltaV.Carrying;
using Content.Shared.DoAfter;
using Content.Shared.Interaction;
using Content.Shared.Mobs.Systems;
@@ -11,7 +12,6 @@
using Content.Shared.Verbs;
using Content.Shared.Whitelist;
using Content.Server.NPC.Components;
-using Content.Server.Carrying;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Player;
using Robust.Shared.Utility;
diff --git a/Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs b/Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs
new file mode 100644
index 00000000000..8f870ed7738
--- /dev/null
+++ b/Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs
@@ -0,0 +1,9 @@
+using Content.Server.Objectives.Systems;
+
+namespace Content.Server.DeltaV.Objectives.Components;
+
+///
+/// Sets the target for to a random traitor.
+///
+[RegisterComponent]
+public sealed partial class PickRandomTraitorComponent : Component;
diff --git a/Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs b/Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs
new file mode 100644
index 00000000000..781040ddc0a
--- /dev/null
+++ b/Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs
@@ -0,0 +1,73 @@
+using Content.Server.DeltaV.Objectives.Components;
+using Content.Server.Objectives.Components;
+using Content.Server.GameTicking.Rules;
+using Content.Server.Objectives.Systems;
+using Content.Shared.Objectives.Components;
+using Robust.Shared.Random;
+
+namespace Content.Server.DeltaV.Objectives.Systems;
+
+///
+/// Handles the kill fellow traitor objective.
+///
+public sealed class KillFellowTraitorObjectiveSystem : EntitySystem
+{
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly TargetObjectiveSystem _target = default!;
+ [Dependency] private readonly TraitorRuleSystem _traitorRule = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent(OnTraitorKillAssigned);
+ }
+
+ private void OnTraitorKillAssigned(EntityUid uid, PickRandomTraitorComponent comp, ref ObjectiveAssignedEvent args)
+ {
+ if (!TryComp(uid, out var target))
+ {
+ Log.Error($"Missing components for {uid}.");
+ args.Cancelled = true;
+ return;
+ }
+
+ // Target already assigned
+ if (target.Target != null)
+ {
+ Log.Error($"Target already assigned for {uid}.");
+ args.Cancelled = true;
+ return;
+ }
+
+ var traitors = _traitorRule.GetOtherTraitorMindsAliveAndConnected(args.Mind);
+
+ List validTraitorMinds = [];
+
+ // Going through each OTHER traitor
+ foreach (var traitor in traitors)
+ {
+ var valid = true;
+ // Going through each of OUR objectives.
+ foreach (var objective in args.Mind.Objectives)
+ {
+ // If one of OUR objectives already targets a traitor, don't add it to the list.
+ if (TryComp(objective, out var targetComp) && targetComp.Target == traitor.Id)
+ {
+ valid = false;
+ break;
+ }
+ }
+ if (valid)
+ validTraitorMinds.Add(traitor.Id);
+ }
+
+ // No other traitors
+ if (validTraitorMinds.Count == 0)
+ {
+ args.Cancelled = true;
+ return;
+ }
+
+ _target.SetTarget(uid, _random.Pick(validTraitorMinds), target);
+ }
+}
diff --git a/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs b/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs
index 96d7c441071..d432e9ea6d0 100644
--- a/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs
+++ b/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs
@@ -18,7 +18,7 @@ public sealed partial class CaptainStateComponent : Component
/// Assume no captain unless specified
///
[DataField]
- public bool HasCaptain;
+ public bool HasCaptain = false;
///
/// The localization ID used for announcing the cancellation of ACO requests
@@ -42,13 +42,13 @@ public sealed partial class CaptainStateComponent : Component
/// Set after ACO has been requested to avoid duplicate calls
///
[DataField]
- public bool IsACORequestActive;
+ public bool IsACORequestActive = false;
///
/// Used to denote that AA has been brought into the round either from captain or safe.
///
[DataField]
- public bool IsAAInPlay;
+ public bool IsAAInPlay = false;
///
/// The localization ID for announcing that AA has been unlocked for ACO
diff --git a/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs b/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs
index 38475da89be..c790b22f782 100644
--- a/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs
+++ b/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs
@@ -46,6 +46,12 @@ public override void Update(float frameTime)
var query = EntityQueryEnumerator();
while (query.MoveNext(out var station, out var captainState))
{
+ if (currentTime < _acoDelay && captainState.IsACORequestActive == true) // Avoid timing issues. No need to run before _acoDelay is reached anyways.
+ {
+ Log.Error($"{captainState} IsACORequestActive true before ACO request time.");
+ captainState.IsACORequestActive = false;
+ }
+
if (captainState.HasCaptain)
HandleHasCaptain(station, captainState);
else
diff --git a/Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs
new file mode 100644
index 00000000000..78fa5a2f067
--- /dev/null
+++ b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs
@@ -0,0 +1,19 @@
+using Robust.Shared.Prototypes;
+
+namespace Content.Server.DeltaV.StationEvents.NextEvent;
+
+[RegisterComponent, Access(typeof(NextEventSystem))]
+public sealed partial class NextEventComponent : Component
+{
+ ///
+ /// Id of the next event that will be run by EventManagerSystem.
+ ///
+ [DataField]
+ public EntProtoId? NextEventId;
+
+ ///
+ /// Round time of the scheduler's next station event.
+ ///
+ [DataField]
+ public TimeSpan NextEventTime;
+}
diff --git a/Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs
new file mode 100644
index 00000000000..72c4a8a6f0d
--- /dev/null
+++ b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs
@@ -0,0 +1,18 @@
+using Content.Server.DeltaV.StationEvents.NextEvent;
+using Robust.Shared.Prototypes;
+
+namespace Content.Server.DeltaV.StationEvents.NextEvent;
+
+public sealed class NextEventSystem : EntitySystem
+{
+ ///
+ /// Updates the NextEventComponent with the provided id and time and returns the previously stored id.
+ ///
+ public EntProtoId? UpdateNextEvent(NextEventComponent component, EntProtoId newEventId, TimeSpan newEventTime)
+ {
+ EntProtoId? oldEventId = component.NextEventId; // Store components current NextEventId for return
+ component.NextEventId = newEventId;
+ component.NextEventTime = newEventTime;
+ return oldEventId;
+ }
+}
diff --git a/Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs b/Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs
new file mode 100644
index 00000000000..11a29e05cc8
--- /dev/null
+++ b/Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs
@@ -0,0 +1,82 @@
+using Content.Shared.Damage;
+using Content.Shared.Mobs;
+using Content.Shared.Mobs.Components;
+using Content.Shared.Weather;
+using Content.Shared.Whitelist;
+using Robust.Shared.Map.Components;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Timing;
+
+namespace Content.Shared.DeltaV.Weather;
+
+///
+/// Handles weather damage for exposed entities.
+///
+public sealed partial class WeatherEffectsSystem : EntitySystem
+{
+ [Dependency] private readonly DamageableSystem _damageable = default!;
+ [Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
+ [Dependency] private readonly IGameTiming _timing = default!;
+ [Dependency] private readonly IPrototypeManager _proto = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
+ [Dependency] private readonly SharedWeatherSystem _weather = default!;
+
+ private EntityQuery _gridQuery;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ _gridQuery = GetEntityQuery();
+ }
+
+ public override void Update(float frameTime)
+ {
+ base.Update(frameTime);
+
+ var now = _timing.CurTime;
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var map, out var weather))
+ {
+ if (now < weather.NextUpdate)
+ continue;
+
+ weather.NextUpdate = now + weather.UpdateDelay;
+
+ foreach (var (id, data) in weather.Weather)
+ {
+ // start and end do no damage
+ if (data.State != WeatherState.Running)
+ continue;
+
+ UpdateDamage(map, id);
+ }
+ }
+ }
+
+ private void UpdateDamage(EntityUid map, ProtoId id)
+ {
+ var weather = _proto.Index(id);
+ if (weather.Damage is not {} damage)
+ return;
+
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var uid, out var mob, out var xform))
+ {
+ // don't give dead bodies 10000 burn, that's not fun for anyone
+ if (xform.MapUid != map || mob.CurrentState == MobState.Dead)
+ continue;
+
+ // if not in space, check for being indoors
+ if (xform.GridUid is {} gridUid && _gridQuery.TryComp(gridUid, out var grid))
+ {
+ var tile = _map.GetTileRef((gridUid, grid), xform.Coordinates);
+ if (!_weather.CanWeatherAffect(gridUid, grid, tile))
+ continue;
+ }
+
+ if (_whitelist.IsBlacklistFailOrNull(weather.DamageBlacklist, uid))
+ _damageable.TryChangeDamage(uid, damage, interruptsDoAfters: false);
+ }
+ }
+}
diff --git a/Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs b/Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs
new file mode 100644
index 00000000000..ac69c957057
--- /dev/null
+++ b/Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs
@@ -0,0 +1,58 @@
+using Content.Shared.Destructible.Thresholds;
+using Content.Shared.Weather;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Serialization;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
+
+namespace Content.Server.DeltaV.Weather;
+
+///
+/// Makes weather randomly happen every so often.
+///
+[RegisterComponent, Access(typeof(WeatherSchedulerSystem))]
+[AutoGenerateComponentPause]
+public sealed partial class WeatherSchedulerComponent : Component
+{
+ ///
+ /// Weather stages to schedule.
+ ///
+ [DataField(required: true)]
+ public List Stages = new();
+
+ ///
+ /// The index of to use next, wraps back to the start.
+ ///
+ [DataField]
+ public int Stage;
+
+ ///
+ /// When to go to the next step of the schedule.
+ ///
+ [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
+ public TimeSpan NextUpdate;
+}
+
+///
+/// A stage in a weather schedule.
+///
+[Serializable, DataDefinition]
+public partial struct WeatherStage
+{
+ ///
+ /// A range of how long the stage can last for, in seconds.
+ ///
+ [DataField(required: true)]
+ public MinMax Duration = new(0, 0);
+
+ ///
+ /// The weather prototype to add, or null for clear weather.
+ ///
+ [DataField]
+ public ProtoId? Weather;
+
+ ///
+ /// Alert message to send in chat for players on the map when it starts.
+ ///
+ [DataField]
+ public LocId? Message;
+}
diff --git a/Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs b/Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs
new file mode 100644
index 00000000000..a19a2f3787d
--- /dev/null
+++ b/Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs
@@ -0,0 +1,75 @@
+using Content.Server.Chat.Managers;
+using Content.Shared.Chat;
+using Content.Shared.Weather;
+using Robust.Shared.Map.Components;
+using Robust.Shared.Player;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Random;
+using Robust.Shared.Timing;
+
+namespace Content.Server.DeltaV.Weather;
+
+public sealed class WeatherSchedulerSystem : EntitySystem
+{
+ [Dependency] private readonly IChatManager _chat = default!;
+ [Dependency] private readonly IGameTiming _timing = default!;
+ [Dependency] private readonly IPrototypeManager _proto = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly SharedWeatherSystem _weather = default!;
+
+ public override void Update(float frameTime)
+ {
+ base.Update(frameTime);
+
+ var now = _timing.CurTime;
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var map, out var comp))
+ {
+ if (now < comp.NextUpdate)
+ continue;
+
+ if (comp.Stage >= comp.Stages.Count)
+ comp.Stage = 0;
+
+ var stage = comp.Stages[comp.Stage++];
+ var duration = stage.Duration.Next(_random);
+ comp.NextUpdate = now + TimeSpan.FromSeconds(duration);
+
+ var mapId = Comp(map).MapId;
+ if (stage.Weather is {} weather)
+ {
+ var ending = comp.NextUpdate;
+ // crossfade weather so as one ends the next starts
+ if (HasWeather(comp, comp.Stage - 1))
+ ending += WeatherComponent.ShutdownTime;
+ if (HasWeather(comp, comp.Stage + 1))
+ ending += WeatherComponent.StartupTime;
+ _weather.SetWeather(mapId, _proto.Index(weather), ending);
+ }
+
+ if (stage.Message is {} message)
+ {
+ var msg = Loc.GetString(message);
+ _chat.ChatMessageToManyFiltered(
+ Filter.BroadcastMap(mapId),
+ ChatChannel.Radio,
+ msg,
+ msg,
+ map,
+ false,
+ true,
+ null);
+ }
+ }
+ }
+
+ private bool HasWeather(WeatherSchedulerComponent comp, int stage)
+ {
+ if (stage < 0)
+ stage = comp.Stages.Count + stage;
+ else if (stage >= comp.Stages.Count)
+ stage %= comp.Stages.Count;
+
+ return comp.Stages[stage].Weather != null;
+ }
+}
diff --git a/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs b/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs
index 8d9a216d658..37143aacd1e 100644
--- a/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs
+++ b/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs
@@ -1,5 +1,6 @@
using Content.Server.DeltaV.Xenoarchaeology.XenoArtifacts.Triggers.Components;
-using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems;
+using Content.Server.Nyanotrasen.StationEvents.Events;
+using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems;
using Content.Shared.Abilities.Psionics;
namespace Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems;
@@ -13,10 +14,21 @@ public override void Initialize()
base.Initialize();
SubscribeLocalEvent(OnPowerDetected);
+
+ SubscribeLocalEvent(OnGlimmerEventEnded);
}
private void OnPowerDetected(Entity ent, ref PsionicPowerDetectedEvent args)
{
_artifact.TryActivateArtifact(ent);
}
+
+ private void OnGlimmerEventEnded(GlimmerEventEndedEvent args)
+ {
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var uid, out _))
+ {
+ _artifact.TryActivateArtifact(uid);
+ }
+ }
}
diff --git a/Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs b/Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs
deleted file mode 100644
index afc78978c86..00000000000
--- a/Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Content.Server.Carrying
-{
- ///
- /// Stores the carrier of an entity being carried.
- ///
- [RegisterComponent]
- public sealed partial class BeingCarriedComponent : Component
- {
- public EntityUid Carrier = default!;
- }
-}
diff --git a/Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs b/Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs
deleted file mode 100644
index f4fd1fa6d56..00000000000
--- a/Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.Threading;
-
-namespace Content.Server.Carrying
-{
- [RegisterComponent]
- public sealed partial class CarriableComponent : Component
- {
- ///
- /// Number of free hands required
- /// to carry the entity
- ///
- [DataField("freeHandsRequired")]
- public int FreeHandsRequired = 2;
-
- public CancellationTokenSource? CancelToken;
- }
-}
diff --git a/Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs b/Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs
deleted file mode 100644
index e79460595b9..00000000000
--- a/Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Content.Server.Carrying
-{
- ///
- /// Added to an entity when they are carrying somebody.
- ///
- [RegisterComponent]
- public sealed partial class CarryingComponent : Component
- {
- public EntityUid Carried = default!;
- }
-}
diff --git a/Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs b/Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs
deleted file mode 100644
index 0faff7d8078..00000000000
--- a/Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs
+++ /dev/null
@@ -1,432 +0,0 @@
-using System.Numerics;
-using System.Threading;
-using Content.Server.DoAfter;
-using Content.Server.Body.Systems;
-using Content.Server.Hands.Systems;
-using Content.Server.Resist;
-using Content.Server.Popups;
-using Content.Server.Inventory;
-using Content.Server.Nyanotrasen.Item.PseudoItem;
-using Content.Shared.Climbing; // Shared instead of Server
-using Content.Shared.Mobs;
-using Content.Shared.DoAfter;
-using Content.Shared.Buckle.Components;
-using Content.Shared.Hands.Components;
-using Content.Shared.Hands;
-using Content.Shared.Stunnable;
-using Content.Shared.Interaction.Events;
-using Content.Shared.Verbs;
-using Content.Shared.Climbing.Events; // Added this.
-using Content.Shared.Carrying;
-using Content.Shared.Movement.Events;
-using Content.Shared.Movement.Systems;
-using Content.Shared.Pulling;
-using Content.Shared.Standing;
-using Content.Shared.ActionBlocker;
-using Content.Shared.Inventory.VirtualItem;
-using Content.Shared.Item;
-using Content.Shared.Throwing;
-using Content.Shared.Mobs.Systems;
-using Content.Shared.Movement.Pulling.Components;
-using Content.Shared.Movement.Pulling.Events;
-using Content.Shared.Movement.Pulling.Systems;
-using Content.Shared.Nyanotrasen.Item.PseudoItem;
-using Content.Shared.Storage;
-using Robust.Shared.Map.Components;
-using Robust.Shared.Physics.Components;
-
-namespace Content.Server.Carrying
-{
- public sealed class CarryingSystem : EntitySystem
- {
- [Dependency] private readonly VirtualItemSystem _virtualItemSystem = default!;
- [Dependency] private readonly CarryingSlowdownSystem _slowdown = default!;
- [Dependency] private readonly DoAfterSystem _doAfterSystem = default!;
- [Dependency] private readonly StandingStateSystem _standingState = default!;
- [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!;
- [Dependency] private readonly PullingSystem _pullingSystem = default!;
- [Dependency] private readonly MobStateSystem _mobStateSystem = default!;
- [Dependency] private readonly EscapeInventorySystem _escapeInventorySystem = default!;
- [Dependency] private readonly PopupSystem _popupSystem = default!;
- [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!;
- [Dependency] private readonly RespiratorSystem _respirator = default!;
- [Dependency] private readonly SharedTransformSystem _transform = default!;
- [Dependency] private readonly PseudoItemSystem _pseudoItem = default!; // Needed for fitting check
-
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent>(AddCarryVerb);
- SubscribeLocalEvent>(AddInsertCarriedVerb);
- SubscribeLocalEvent(OnVirtualItemDeleted);
- SubscribeLocalEvent(OnThrow);
- SubscribeLocalEvent(OnParentChanged);
- SubscribeLocalEvent(OnMobStateChanged);
- SubscribeLocalEvent(OnInteractionAttempt);
- SubscribeLocalEvent(OnMoveInput);
- SubscribeLocalEvent(OnMoveAttempt);
- SubscribeLocalEvent(OnStandAttempt);
- SubscribeLocalEvent(OnInteractedWith);
- SubscribeLocalEvent(OnPullAttempt);
- SubscribeLocalEvent(OnStartClimb);
- SubscribeLocalEvent(OnBuckleChange);
- SubscribeLocalEvent(OnBuckleChange);
- SubscribeLocalEvent(OnBuckleChange);
- SubscribeLocalEvent(OnBuckleChange);
- SubscribeLocalEvent(OnDoAfter);
- }
-
- private void AddCarryVerb(EntityUid uid, CarriableComponent component, GetVerbsEvent args)
- {
- if (!args.CanInteract || !args.CanAccess)
- return;
-
- if (!CanCarry(args.User, uid, component))
- return;
-
- if (HasComp(args.User)) // yeah not dealing with that
- return;
-
- if (HasComp(args.User) || HasComp(args.Target))
- return;
-
- if (!_mobStateSystem.IsAlive(args.User))
- return;
-
- if (args.User == args.Target)
- return;
-
- AlternativeVerb verb = new()
- {
- Act = () =>
- {
- StartCarryDoAfter(args.User, uid, component);
- },
- Text = Loc.GetString("carry-verb"),
- Priority = 2
- };
- args.Verbs.Add(verb);
- }
-
- private void AddInsertCarriedVerb(EntityUid uid, CarryingComponent component, GetVerbsEvent args)
- {
- // If the person is carrying someone, and the carried person is a pseudo-item, and the target entity is a storage,
- // then add an action to insert the carried entity into the target
- var toInsert = args.Using;
- if (toInsert is not { Valid: true } || !args.CanAccess || !TryComp(toInsert, out var pseudoItem))
- return;
-
- if (!TryComp(args.Target, out var storageComp))
- return;
-
- if (!_pseudoItem.CheckItemFits((toInsert.Value, pseudoItem), (args.Target, storageComp)))
- return;
-
- InnateVerb verb = new()
- {
- Act = () =>
- {
- DropCarried(uid, toInsert.Value);
- _pseudoItem.TryInsert(args.Target, toInsert.Value, pseudoItem, storageComp);
- },
- Text = Loc.GetString("action-name-insert-other", ("target", toInsert)),
- Priority = 2
- };
- args.Verbs.Add(verb);
- }
-
- ///
- /// Since the carried entity is stored as 2 virtual items, when deleted we want to drop them.
- ///
- private void OnVirtualItemDeleted(EntityUid uid, CarryingComponent component, VirtualItemDeletedEvent args)
- {
- if (!HasComp(args.BlockingEntity))
- return;
-
- DropCarried(uid, args.BlockingEntity);
- }
-
- ///
- /// Basically using virtual item passthrough to throw the carried person. A new age!
- /// Maybe other things besides throwing should use virt items like this...
- ///
- private void OnThrow(EntityUid uid, CarryingComponent component, BeforeThrowEvent args)
- {
- if (!TryComp(args.ItemUid, out var virtItem) || !HasComp(virtItem.BlockingEntity))
- return;
-
- args.ItemUid = virtItem.BlockingEntity;
-
- var multiplier = MassContest(uid, virtItem.BlockingEntity);
- args.ThrowSpeed = 5f * multiplier;
- }
-
- private void OnParentChanged(EntityUid uid, CarryingComponent component, ref EntParentChangedMessage args)
- {
- var xform = Transform(uid);
- if (xform.MapUid != args.OldMapId)
- return;
-
- // Do not drop the carried entity if the new parent is a grid
- if (xform.ParentUid == xform.GridUid)
- return;
-
- DropCarried(uid, component.Carried);
- }
-
- private void OnMobStateChanged(EntityUid uid, CarryingComponent component, MobStateChangedEvent args)
- {
- DropCarried(uid, component.Carried);
- }
-
- ///
- /// Only let the person being carried interact with their carrier and things on their person.
- ///
- private void OnInteractionAttempt(EntityUid uid, BeingCarriedComponent component, InteractionAttemptEvent args)
- {
- if (args.Target == null)
- return;
-
- var targetParent = Transform(args.Target.Value).ParentUid;
-
- if (args.Target.Value != component.Carrier && targetParent != component.Carrier && targetParent != uid)
- args.Cancelled = true;
- }
-
- ///
- /// Try to escape via the escape inventory system.
- ///
- private void OnMoveInput(EntityUid uid, BeingCarriedComponent component, ref MoveInputEvent args)
- {
- if (!TryComp(uid, out var escape))
- return;
-
- if (!args.HasDirectionalMovement)
- return;
-
- if (_actionBlockerSystem.CanInteract(uid, component.Carrier))
- {
- // Note: the mass contest is inverted because weaker entities are supposed to take longer to escape
- _escapeInventorySystem.AttemptEscape(uid, component.Carrier, escape, MassContest(component.Carrier, uid));
- }
- }
-
- private void OnMoveAttempt(EntityUid uid, BeingCarriedComponent component, UpdateCanMoveEvent args)
- {
- args.Cancel();
- }
-
- private void OnStandAttempt(EntityUid uid, BeingCarriedComponent component, StandAttemptEvent args)
- {
- args.Cancel();
- }
-
- private void OnInteractedWith(EntityUid uid, BeingCarriedComponent component, GettingInteractedWithAttemptEvent args)
- {
- if (args.Uid != component.Carrier)
- args.Cancelled = true;
- }
-
- private void OnPullAttempt(EntityUid uid, BeingCarriedComponent component, PullAttemptEvent args)
- {
- args.Cancelled = true;
- }
-
- private void OnStartClimb(EntityUid uid, BeingCarriedComponent component, ref StartClimbEvent args)
- {
- DropCarried(component.Carrier, uid);
- }
-
- private void OnBuckleChange(EntityUid uid, BeingCarriedComponent component, TEvent args) // Augh
- {
- DropCarried(component.Carrier, uid);
- }
-
- private void OnDoAfter(EntityUid uid, CarriableComponent component, CarryDoAfterEvent args)
- {
- component.CancelToken = null;
- if (args.Handled || args.Cancelled)
- return;
-
- if (!CanCarry(args.Args.User, uid, component))
- return;
-
- Carry(args.Args.User, uid);
- args.Handled = true;
- }
- private void StartCarryDoAfter(EntityUid carrier, EntityUid carried, CarriableComponent component)
- {
- TimeSpan length = GetPickupDuration(carrier, carried);
-
- if (length >= TimeSpan.FromSeconds(9))
- {
- _popupSystem.PopupEntity(Loc.GetString("carry-too-heavy"), carried, carrier, Shared.Popups.PopupType.SmallCaution);
- return;
- }
-
- if (!HasComp(carried))
- length *= 2f;
-
- component.CancelToken = new CancellationTokenSource();
-
- var ev = new CarryDoAfterEvent();
- var args = new DoAfterArgs(EntityManager, carrier, length, ev, carried, target: carried)
- {
- BreakOnMove = true,
- NeedHand = true
- };
-
- _doAfterSystem.TryStartDoAfter(args);
-
- // Show a popup to the person getting picked up
- _popupSystem.PopupEntity(Loc.GetString("carry-started", ("carrier", carrier)), carried, carried);
- }
-
- private void Carry(EntityUid carrier, EntityUid carried)
- {
- if (TryComp(carried, out var pullable))
- _pullingSystem.TryStopPull(carried, pullable);
-
- var carrierXform = Transform(carrier);
- var xform = Transform(carried);
- _transform.AttachToGridOrMap(carrier, carrierXform);
- _transform.AttachToGridOrMap(carried, xform);
- xform.Coordinates = carrierXform.Coordinates;
- _transform.SetParent(carried, xform, carrier, carrierXform);
-
- _virtualItemSystem.TrySpawnVirtualItemInHand(carried, carrier);
- _virtualItemSystem.TrySpawnVirtualItemInHand(carried, carrier);
- var carryingComp = EnsureComp(carrier);
- ApplyCarrySlowdown(carrier, carried);
- var carriedComp = EnsureComp(carried);
- EnsureComp(carried);
-
- carryingComp.Carried = carried;
- carriedComp.Carrier = carrier;
-
- _actionBlockerSystem.UpdateCanMove(carried);
- }
-
- public bool TryCarry(EntityUid carrier, EntityUid toCarry, CarriableComponent? carriedComp = null)
- {
- if (!Resolve(toCarry, ref carriedComp, false))
- return false;
-
- if (!CanCarry(carrier, toCarry, carriedComp))
- return false;
-
- // The second one means that carrier is a pseudo-item and is inside a bag.
- if (HasComp(carrier) || HasComp(carrier))
- return false;
-
- if (GetPickupDuration(carrier, toCarry) > TimeSpan.FromSeconds(9))
- return false;
-
- Carry(carrier, toCarry);
-
- return true;
- }
-
- public void DropCarried(EntityUid carrier, EntityUid carried)
- {
- RemComp(carrier); // get rid of this first so we don't recusrively fire that event
- RemComp(carrier);
- RemComp(carried);
- RemComp(carried);
- _actionBlockerSystem.UpdateCanMove(carried);
- _virtualItemSystem.DeleteInHandsMatching(carrier, carried);
- Transform(carried).AttachToGridOrMap();
- _standingState.Stand(carried);
- _movementSpeed.RefreshMovementSpeedModifiers(carrier);
- }
-
- private void ApplyCarrySlowdown(EntityUid carrier, EntityUid carried)
- {
- var massRatio = MassContest(carrier, carried);
-
- if (massRatio == 0)
- massRatio = 1;
-
- var massRatioSq = Math.Pow(massRatio, 2);
- var modifier = (1 - (0.15 / massRatioSq));
- modifier = Math.Max(0.1, modifier);
- var slowdownComp = EnsureComp(carrier);
- _slowdown.SetModifier(carrier, (float) modifier, (float) modifier, slowdownComp);
- }
-
- public bool CanCarry(EntityUid carrier, EntityUid carried, CarriableComponent? carriedComp = null)
- {
- if (!Resolve(carried, ref carriedComp, false))
- return false;
-
- if (carriedComp.CancelToken != null)
- return false;
-
- if (!HasComp(Transform(carrier).ParentUid))
- return false;
-
- if (HasComp(carrier) || HasComp(carried))
- return false;
-
- // if (_respirator.IsReceivingCPR(carried))
- // return false;
-
- if (!TryComp(carrier, out var hands))
- return false;
-
- if (hands.CountFreeHands() < carriedComp.FreeHandsRequired)
- return false;
-
- return true;
- }
-
- private float MassContest(EntityUid roller, EntityUid target, PhysicsComponent? rollerPhysics = null, PhysicsComponent? targetPhysics = null)
- {
- if (!Resolve(roller, ref rollerPhysics, false) || !Resolve(target, ref targetPhysics, false))
- return 1f;
-
- if (targetPhysics.FixturesMass == 0)
- return 1f;
-
- return rollerPhysics.FixturesMass / targetPhysics.FixturesMass;
- }
-
- private TimeSpan GetPickupDuration(EntityUid carrier, EntityUid carried)
- {
- var length = TimeSpan.FromSeconds(3);
-
- var mod = MassContest(carrier, carried);
- if (mod != 0)
- length /= mod;
-
- return length;
- }
-
- public override void Update(float frameTime)
- {
- var query = EntityQueryEnumerator();
- while (query.MoveNext(out var carried, out var comp))
- {
- var carrier = comp.Carrier;
- if (carrier is not { Valid: true } || carried is not { Valid: true })
- continue;
-
- // SOMETIMES - when an entity is inserted into disposals, or a cryosleep chamber - it can get re-parented without a proper reparent event
- // when this happens, it needs to be dropped because it leads to weird behavior
- if (Transform(carried).ParentUid != carrier)
- {
- DropCarried(carrier, carried);
- continue;
- }
-
- // Make sure the carried entity is always centered relative to the carrier, as gravity pulls can offset it otherwise
- var xform = Transform(carried);
- if (!xform.LocalPosition.Equals(Vector2.Zero))
- {
- xform.LocalPosition = Vector2.Zero;
- }
- }
- query.Dispose();
- }
- }
-}
diff --git a/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs b/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs
index 6df387e6ba8..7437d293da6 100644
--- a/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs
+++ b/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs
@@ -1,9 +1,9 @@
-using Content.Server.Carrying;
using Content.Server.DoAfter;
using Content.Server.Item;
using Content.Server.Popups;
using Content.Server.Storage.EntitySystems;
using Content.Shared.Bed.Sleep;
+using Content.Shared.DeltaV.Carrying;
using Content.Shared.DoAfter;
using Content.Shared.IdentityManagement;
using Content.Shared.Item;
diff --git a/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs b/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs
index d77bec6b1ae..faf27484ce9 100644
--- a/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs
+++ b/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs
@@ -11,230 +11,184 @@
using Robust.Shared.Containers;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set;
-namespace Content.Server.Nyanotrasen.Kitchen.Components
+namespace Content.Server.Nyanotrasen.Kitchen.Components;
+
+// TODO: move to shared and get rid of SharedDeepFryerComponent
+[RegisterComponent, Access(typeof(SharedDeepfryerSystem))]
+public sealed partial class DeepFryerComponent : SharedDeepFryerComponent
{
- [RegisterComponent]
- [Access(typeof(SharedDeepfryerSystem))]
- // This line appears to be depracted: [ComponentReference(typeof(SharedDeepFryerComponent))]
- public sealed partial class DeepFryerComponent : SharedDeepFryerComponent
- {
- // There are three levels to how the deep fryer treats entities.
- //
- // 1. An entity can be rejected by the blacklist and be untouched by
- // anything other than heat damage.
- //
- // 2. An entity can be deep-fried but not turned into an edible. The
- // change will be mostly cosmetic. Any entity that does not match
- // the blacklist will fall into this category.
- //
- // 3. An entity can be deep-fried and turned into something edible. The
- // change will permit the item to be permanently destroyed by eating
- // it.
-
- ///
- /// When will the deep fryer layer on the next stage of crispiness?
- ///
- [DataField("nextFryTime", customTypeSerializer: typeof(TimeOffsetSerializer))]
- public TimeSpan NextFryTime { get; set; }
-
- ///
- /// How much waste needs to be added at the next update interval?
- ///
- public FixedPoint2 WasteToAdd { get; set; } = FixedPoint2.Zero;
-
- ///
- /// How often are items in the deep fryer fried?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("fryInterval")]
- public TimeSpan FryInterval { get; set; } = TimeSpan.FromSeconds(5);
-
- ///
- /// What entities cannot be deep-fried no matter what?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("blacklist")]
- public EntityWhitelist? Blacklist { get; set; }
-
- ///
- /// What entities can be deep-fried into being edible?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("whitelist")]
- public EntityWhitelist? Whitelist { get; set; }
-
- ///
- /// What are over-cooked and burned entities turned into?
- ///
- ///
- /// To prevent unwanted destruction of items, only food can be turned
- /// into this.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("charredPrototype", customTypeSerializer: typeof(PrototypeIdSerializer))]
- public string? CharredPrototype { get; set; }
-
- ///
- /// What reagents are considered valid cooking oils?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("fryingOils", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))]
- public HashSet FryingOils { get; set; } = new();
-
- ///
- /// What reagents are added to tasty deep-fried food?
- /// JJ Comment: I removed Solution from this. Unsure if I need to replace it with something.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("goodReagents")]
- public List GoodReagents { get; set; } = new();
-
- ///
- /// What reagents are added to terrible deep-fried food?
- /// JJ Comment: I removed Solution from this. Unsure if I need to replace it with something.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("badReagents")]
- public List BadReagents { get; set; } = new();
-
- ///
- /// What reagents replace every 1 unit of oil spent on frying?
- /// JJ Comment: I removed Solution from this. Unsure if I need to replace it with something.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("wasteReagents")]
- public List WasteReagents { get; set; } = new();
-
- ///
- /// What flavors go well with deep frying?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("goodFlavors", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))]
- public HashSet GoodFlavors { get; set; } = new();
-
- ///
- /// What flavors don't go well with deep frying?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("badFlavors", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))]
- public HashSet BadFlavors { get; set; } = new();
-
- ///
- /// How much is the price coefficiency of a food changed for each good flavor?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("goodFlavorPriceBonus")]
- public float GoodFlavorPriceBonus { get; set; } = 0.2f;
-
- ///
- /// How much is the price coefficiency of a food changed for each bad flavor?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("badFlavorPriceMalus")]
- public float BadFlavorPriceMalus { get; set; } = -0.3f;
-
- ///
- /// What is the name of the solution container for the fryer's oil?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("solution")]
- public string SolutionName { get; set; } = "vat_oil";
-
- public Solution Solution { get; set; } = default!;
-
- ///
- /// What is the name of the entity container for items inside the deep fryer?
- ///
- [DataField("storage")]
- public string StorageName { get; set; } = "vat_entities";
-
- public BaseContainer Storage { get; set; } = default!;
-
- ///
- /// How much solution should be imparted based on an item's size?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("solutionSizeCoefficient")]
- public FixedPoint2 SolutionSizeCoefficient { get; set; } = 1f;
-
- ///
- /// What's the maximum amount of solution that should ever be imparted?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("solutionSplitMax")]
- public FixedPoint2 SolutionSplitMax { get; set; } = 10f;
-
- ///
- /// What percent of the fryer's solution has to be oil in order for it to fry?
- ///
- ///
- /// The chef will have to clean it out occasionally, and if too much
- /// non-oil reagents are added, the vat will have to be drained.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("fryingOilThreshold")]
- public FixedPoint2 FryingOilThreshold { get; set; } = 0.5f;
-
- ///
- /// What is the bare minimum number of oil units to prevent the fryer
- /// from unsafe operation?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("safeOilVolume")]
- public FixedPoint2 SafeOilVolume { get; set; } = 10f;
-
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("unsafeOilVolumeEffects")]
- public List UnsafeOilVolumeEffects = new();
-
- ///
- /// What is the temperature of the vat when the deep fryer is powered?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("poweredTemperature")]
- public float PoweredTemperature = 550.0f;
-
- ///
- /// How many entities can this deep fryer hold?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- public int StorageMaxEntities = 4;
-
- ///
- /// How many entities can be held, at a minimum?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("baseStorageMaxEntities")]
- public int BaseStorageMaxEntities = 4;
-
- // ///
- // /// What upgradeable machine part dictates the quality of the storage size?
- // ///
- // [DataField("machinePartStorageMax", customTypeSerializer: typeof(PrototypeIdSerializer))]
- // public string MachinePartStorageMax = "MatterBin";
-
- ///
- /// How much extra storage is added per part rating?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("storagePerPartRating")]
- public int StoragePerPartRating = 4;
-
- ///
- /// What sound is played when an item is inserted into hot oil?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("soundInsertItem")]
- public SoundSpecifier SoundInsertItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_add_item.ogg");
-
- ///
- /// What sound is played when an item is removed?
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("soundRemoveItem")]
- public SoundSpecifier SoundRemoveItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_remove_item.ogg");
- }
+ // There are three levels to how the deep fryer treats entities.
+ //
+ // 1. An entity can be rejected by the blacklist and be untouched by
+ // anything other than heat damage.
+ //
+ // 2. An entity can be deep-fried but not turned into an edible. The
+ // change will be mostly cosmetic. Any entity that does not match
+ // the blacklist will fall into this category.
+ //
+ // 3. An entity can be deep-fried and turned into something edible. The
+ // change will permit the item to be permanently destroyed by eating
+ // it.
+
+ ///
+ /// When will the deep fryer layer on the next stage of crispiness?
+ ///
+ [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
+ public TimeSpan NextFryTime;
+
+ ///
+ /// How much waste needs to be added at the next update interval?
+ ///
+ [DataField]
+ public FixedPoint2 WasteToAdd = FixedPoint2.Zero;
+
+ ///
+ /// How often are items in the deep fryer fried?
+ ///
+ [DataField]
+ public TimeSpan FryInterval = TimeSpan.FromSeconds(5);
+
+ ///
+ /// What entities cannot be deep-fried no matter what?
+ ///
+ [DataField]
+ public EntityWhitelist? Blacklist;
+
+ ///
+ /// What entities can be deep-fried into being edible?
+ ///
+ [DataField]
+ public EntityWhitelist? Whitelist;
+
+ ///
+ /// What are over-cooked and burned entities turned into?
+ ///
+ ///
+ /// To prevent unwanted destruction of items, only food can be turned
+ /// into this.
+ ///
+ [DataField]
+ public EntProtoId? CharredPrototype;
+
+ ///
+ /// What reagents are considered valid cooking oils?
+ ///
+ [DataField]
+ public HashSet> FryingOils = new();
+
+ ///
+ /// What reagents are added to tasty deep-fried food?
+ ///
+ [DataField]
+ public List GoodReagents = new();
+
+ ///
+ /// What reagents are added to terrible deep-fried food?
+ ///
+ [DataField]
+ public List BadReagents = new();
+
+ ///
+ /// What reagents replace every 1 unit of oil spent on frying?
+ ///
+ [DataField]
+ public List WasteReagents = new();
+
+ ///
+ /// What flavors go well with deep frying?
+ ///
+ [DataField]
+ public HashSet> GoodFlavors = new();
+
+ ///
+ /// What flavors don't go well with deep frying?
+ ///
+ [DataField]
+ public HashSet> BadFlavors = new();
+
+ ///
+ /// How much is the price coefficiency of a food changed for each good flavor?
+ ///
+ [DataField]
+ public float GoodFlavorPriceBonus = 0.2f;
+
+ ///
+ /// How much is the price coefficiency of a food changed for each bad flavor?
+ ///
+ [DataField]
+ public float BadFlavorPriceMalus = -0.3f;
+
+ ///
+ /// What is the name of the solution container for the fryer's oil?
+ ///
+ [DataField]
+ public string SolutionName = "vat_oil";
+
+ // TODO: Entity
+ public Solution Solution = default!;
+
+ ///
+ /// What is the name of the entity container for items inside the deep fryer?
+ ///
+ [DataField("storage")]
+ public string StorageName = "vat_entities";
+
+ public BaseContainer Storage = default!;
+
+ ///
+ /// How much solution should be imparted based on an item's size?
+ ///
+ [DataField]
+ public FixedPoint2 SolutionSizeCoefficient = 1f;
+
+ ///
+ /// What's the maximum amount of solution that should ever be imparted?
+ ///
+ [DataField]
+ public FixedPoint2 SolutionSplitMax = 10f;
+
+ ///
+ /// What percent of the fryer's solution has to be oil in order for it to fry?
+ ///
+ ///
+ /// The chef will have to clean it out occasionally, and if too much
+ /// non-oil reagents are added, the vat will have to be drained.
+ ///
+ [DataField]
+ public FixedPoint2 FryingOilThreshold = 0.5f;
+
+ ///
+ /// What is the bare minimum number of oil units to prevent the fryer
+ /// from unsafe operation?
+ ///
+ [DataField]
+ public FixedPoint2 SafeOilVolume = 10f;
+
+ [DataField]
+ public List UnsafeOilVolumeEffects = new();
+
+ ///
+ /// What is the temperature of the vat when the deep fryer is powered?
+ ///
+ [DataField]
+ public float PoweredTemperature = 550.0f;
+
+ ///
+ /// How many entities can this deep fryer hold?
+ ///
+ [DataField]
+ public int StorageMaxEntities = 4;
+
+ ///
+ /// What sound is played when an item is inserted into hot oil?
+ ///
+ [DataField]
+ public SoundSpecifier SoundInsertItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_add_item.ogg");
+
+ ///
+ /// What sound is played when an item is removed?
+ ///
+ [DataField]
+ public SoundSpecifier SoundRemoveItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_remove_item.ogg");
}
diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs
index 3f93787934c..fa2807509a6 100644
--- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs
+++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs
@@ -11,15 +11,20 @@
using Content.Shared.FixedPoint;
using Content.Shared.Mobs.Components;
using Content.Shared.NPC;
+using Content.Shared.Nutrition;
using Content.Shared.Nutrition.Components;
using Content.Shared.Nyanotrasen.Kitchen.Components;
using Content.Shared.Paper;
+using Robust.Shared.Prototypes;
using Robust.Shared.Random;
namespace Content.Server.Nyanotrasen.Kitchen.EntitySystems;
public sealed partial class DeepFryerSystem
{
+ private HashSet> _badFlavors = new();
+ private HashSet> _goodFlavors = new();
+
///
/// Make an item look deep-fried.
///
@@ -129,33 +134,33 @@ private void MakeEdible(EntityUid uid, DeepFryerComponent component, EntityUid i
var extraSolution = new Solution();
if (TryComp(item, out FlavorProfileComponent? flavorProfileComponent))
{
- HashSet goodFlavors = new(flavorProfileComponent.Flavors);
- goodFlavors.IntersectWith(component.GoodFlavors);
+ _goodFlavors.Clear();
+ _goodFlavors.IntersectWith(component.GoodFlavors);
- HashSet badFlavors = new(flavorProfileComponent.Flavors);
- badFlavors.IntersectWith(component.BadFlavors);
+ _badFlavors.Clear();
+ _badFlavors.IntersectWith(component.BadFlavors);
deepFriedComponent.PriceCoefficient = Math.Max(0.01f,
1.0f
- + goodFlavors.Count * component.GoodFlavorPriceBonus
- - badFlavors.Count * component.BadFlavorPriceMalus);
+ + _goodFlavors.Count * component.GoodFlavorPriceBonus
+ - _badFlavors.Count * component.BadFlavorPriceMalus);
- if (goodFlavors.Count > 0)
+ if (_goodFlavors.Count > 0)
{
foreach (var reagent in component.GoodReagents)
{
- extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * goodFlavors.Count);
+ extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * _goodFlavors.Count);
// Mask the taste of "medicine."
flavorProfileComponent.IgnoreReagents.Add(reagent.Reagent.ToString());
}
}
- if (badFlavors.Count > 0)
+ if (_badFlavors.Count > 0)
{
foreach (var reagent in component.BadReagents)
{
- extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * badFlavors.Count);
+ extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * _badFlavors.Count);
}
}
}
diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs
index 40a658f0c44..4ac8684a7a3 100644
--- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs
+++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs
@@ -105,7 +105,6 @@ public override void Initialize()
SubscribeLocalEvent(OnInitDeepFryer);
SubscribeLocalEvent(OnPowerChange);
- // SubscribeLocalEvent(OnRefreshParts);
SubscribeLocalEvent(OnDeconstruct);
SubscribeLocalEvent(OnDestruction);
SubscribeLocalEvent(OnThrowHitBy);
@@ -437,14 +436,6 @@ private void OnDestruction(EntityUid uid, DeepFryerComponent component, Destruct
_containerSystem.EmptyContainer(component.Storage, true);
}
- // private void OnRefreshParts(EntityUid uid, DeepFryerComponent component, RefreshPartsEvent args)
- // {
- // var ratingStorage = args.PartRatings[component.MachinePartStorageMax];
- //
- // component.StorageMaxEntities = component.BaseStorageMaxEntities +
- // (int) (component.StoragePerPartRating * (ratingStorage - 1));
- // }
-
///
/// Allow thrown items to land in a basket.
///
diff --git a/Content.Server/Resist/EscapeInventorySystem.cs b/Content.Server/Resist/EscapeInventorySystem.cs
index 93a83465861..eec8ebb5072 100644
--- a/Content.Server/Resist/EscapeInventorySystem.cs
+++ b/Content.Server/Resist/EscapeInventorySystem.cs
@@ -1,6 +1,5 @@
using Content.Server.Popups;
using Content.Shared.Storage;
-using Content.Server.Carrying; // Carrying system from Nyanotrasen.
using Content.Shared.Inventory;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Storage.Components;
@@ -25,7 +24,6 @@ public sealed class EscapeInventorySystem : EntitySystem
[Dependency] private readonly SharedContainerSystem _containerSystem = default!;
[Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!;
[Dependency] private readonly SharedHandsSystem _handsSystem = default!;
- [Dependency] private readonly CarryingSystem _carryingSystem = default!; // Carrying system from Nyanotrasen.
[Dependency] private readonly SharedActionsSystem _actions = default!; // DeltaV
///
@@ -109,13 +107,6 @@ private void OnEscape(EntityUid uid, CanEscapeInventoryComponent component, Esca
if (args.Handled || args.Cancelled)
return;
- if (TryComp(uid, out var carried)) // Start of carrying system of nyanotrasen.
- {
- _carryingSystem.DropCarried(carried.Carrier, uid);
- return;
- } // End of carrying system of nyanotrasen.
-
-
_containerSystem.AttachParentToContainerOrGrid((uid, Transform(uid)));
args.Handled = true;
}
diff --git a/Content.Server/Salvage/SalvageSystem.Magnet.cs b/Content.Server/Salvage/SalvageSystem.Magnet.cs
index 81db78fb201..4ae1a06d176 100644
--- a/Content.Server/Salvage/SalvageSystem.Magnet.cs
+++ b/Content.Server/Salvage/SalvageSystem.Magnet.cs
@@ -45,7 +45,7 @@ private void OnMagnetClaim(EntityUid uid, SalvageMagnetComponent component, ref
return;
}
- TakeMagnetOffer((station.Value, dataComp), args.Index, (uid, component));
+ TakeMagnetOffer((station.Value, dataComp), args.Index, (uid, component), args.Actor); // DeltaV: pass the user entity
}
private void OnMagnetStartup(EntityUid uid, SalvageMagnetComponent component, ComponentStartup args)
@@ -250,11 +250,15 @@ private void UpdateMagnetUIs(Entity data)
}
}
- private async Task TakeMagnetOffer(Entity data, int index, Entity magnet)
+ private async Task TakeMagnetOffer(Entity data, int index, Entity magnet, EntityUid user) // DeltaV: add user param
{
var seed = data.Comp.Offered[index];
var offering = GetSalvageOffering(seed);
+ // Begin DeltaV Addition: make wrecks cost mining points to pull
+ if (offering.Cost > 0 && !(_points.TryFindIdCard(user) is {} idCard && _points.RemovePoints(idCard, offering.Cost)))
+ return;
+ // End DeltaV Addition
var salvMap = _mapSystem.CreateMap();
var salvMapXform = Transform(salvMap);
diff --git a/Content.Server/Salvage/SalvageSystem.cs b/Content.Server/Salvage/SalvageSystem.cs
index eb5719c892f..7610b05d7da 100644
--- a/Content.Server/Salvage/SalvageSystem.cs
+++ b/Content.Server/Salvage/SalvageSystem.cs
@@ -4,6 +4,7 @@
using Content.Server.Construction;
using Content.Server.GameTicking;
using Content.Server.Radio.EntitySystems;
+using Content.Shared.DeltaV.Salvage.Systems; // DeltaV
using Content.Shared.Examine;
using Content.Shared.Interaction;
using Content.Shared.Popups;
@@ -52,6 +53,7 @@ public sealed partial class SalvageSystem : SharedSalvageSystem
[Dependency] private readonly LabelSystem _labelSystem = default!;
[Dependency] private readonly MapLoaderSystem _map = default!;
[Dependency] private readonly MetaDataSystem _metaData = default!;
+ [Dependency] private readonly MiningPointsSystem _points = default!; // DeltaV
[Dependency] private readonly RadioSystem _radioSystem = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
diff --git a/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs b/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs
index bdc9a47e186..882d841b24f 100644
--- a/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs
+++ b/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs
@@ -1,5 +1,7 @@
using System.Linq;
using Content.Server.Administration;
+using Content.Server.Chat.Managers; // DeltaV
+using Content.Server.DeltaV.StationEvents.NextEvent; // DeltaV
using Content.Server.GameTicking;
using Content.Server.GameTicking.Rules;
using Content.Server.StationEvents.Components;
@@ -9,6 +11,7 @@
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
+using Robust.Shared.Timing; // DeltaV
using Robust.Shared.Toolshed;
using Robust.Shared.Utility;
@@ -21,14 +24,27 @@ namespace Content.Server.StationEvents
[UsedImplicitly]
public sealed class BasicStationEventSchedulerSystem : GameRuleSystem
{
+ [Dependency] private readonly IChatManager _chatManager = default!; // DeltaV
+ [Dependency] private readonly IGameTiming _timing = default!; // DeltaV
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly EventManagerSystem _event = default!;
+ [Dependency] private readonly NextEventSystem _next = default!; // DeltaV
protected override void Started(EntityUid uid, BasicStationEventSchedulerComponent component, GameRuleComponent gameRule,
GameRuleStartedEvent args)
{
// A little starting variance so schedulers dont all proc at once.
component.TimeUntilNextEvent = RobustRandom.NextFloat(component.MinimumTimeUntilFirstEvent, component.MinimumTimeUntilFirstEvent + 120);
+
+ // DeltaV - end init NextEventComp
+ if (TryComp(uid, out var nextEventComponent)
+ && _event.TryGenerateRandomEvent(component.ScheduledGameRules, out string? firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent))
+ && firstEvent != null)
+ {
+ _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", firstEvent), ("seconds", (int)component.TimeUntilNextEvent)));
+ _next.UpdateNextEvent(nextEventComponent, firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent));
+ }
+ // DeltaV - end init NextEventComp
}
protected override void Ended(EntityUid uid, BasicStationEventSchedulerComponent component, GameRuleComponent gameRule,
@@ -57,6 +73,23 @@ public override void Update(float frameTime)
continue;
}
+ // DeltaV events using NextEventComponent
+ if (TryComp(uid, out var nextEventComponent)) // If there is a nextEventComponent use the stashed event instead of running it directly.
+ {
+ ResetTimer(eventScheduler); // Time needs to be reset ahead of time since we need to chose events based on the next time it will run.
+ var nextEventTime = _timing.CurTime + TimeSpan.FromSeconds(eventScheduler.TimeUntilNextEvent);
+ if (!_event.TryGenerateRandomEvent(eventScheduler.ScheduledGameRules, out string? generatedEvent, nextEventTime))
+ continue;
+ _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", generatedEvent), ("seconds", (int)eventScheduler.TimeUntilNextEvent)));
+ // Cycle the stashed event with the new generated event and time.
+ string? storedEvent = _next.UpdateNextEvent(nextEventComponent, generatedEvent, nextEventTime);
+ if (string.IsNullOrEmpty(storedEvent)) //If there was no stored event don't try to run it.
+ continue;
+ GameTicker.AddGameRule(storedEvent);
+ continue;
+ }
+ // DeltaV end events using NextEventComponent
+
_event.RunRandomEvent(eventScheduler.ScheduledGameRules);
ResetTimer(eventScheduler);
}
diff --git a/Content.Server/StationEvents/EventManagerSystem.cs b/Content.Server/StationEvents/EventManagerSystem.cs
index 741b95d969c..eadacdbbadf 100644
--- a/Content.Server/StationEvents/EventManagerSystem.cs
+++ b/Content.Server/StationEvents/EventManagerSystem.cs
@@ -11,7 +11,8 @@
using Content.Shared.EntityTable.EntitySelectors;
using Content.Shared.EntityTable;
using Content.Server.Psionics.Glimmer; // DeltaV
-using Content.Shared.Psionics.Glimmer; // DeltaV
+using Content.Shared.Psionics.Glimmer;
+using System.Diagnostics.CodeAnalysis; // DeltaV
namespace Content.Server.StationEvents;
@@ -59,37 +60,67 @@ public void RunRandomEvent()
///
public void RunRandomEvent(EntityTableSelector limitedEventsTable)
{
- if (!TryBuildLimitedEvents(limitedEventsTable, out var limitedEvents))
+ if (TryGenerateRandomEvent(limitedEventsTable, out string? randomLimitedEvent)) // DeltaV - seperated into own method
+ GameTicker.AddGameRule(randomLimitedEvent);
+ }
+
+ // DeltaV - overloaded for backwards compatiblity
+ public bool TryGenerateRandomEvent(EntityTableSelector limitedEventsTable, [NotNullWhen(true)] out string? randomLimitedEvent)
+ {
+ return TryGenerateRandomEvent(limitedEventsTable, out randomLimitedEvent, null);
+ }
+ // DeltaV - end overloaded for backwards compatiblity
+
+ // DeltaV - separate event generation method
+ ///
+ /// Returns a random event from the list of events given that can be run at a given time.
+ ///
+ /// The list of events that can be chosen.
+ /// Generated event
+ /// The time to use for checking time restrictions. Uses current time if null.
+ ///
+ public bool TryGenerateRandomEvent(EntityTableSelector limitedEventsTable, [NotNullWhen(true)] out string? randomLimitedEvent, TimeSpan? eventRunTime)
+ {
+ randomLimitedEvent = null;
+ if (!TryBuildLimitedEvents(limitedEventsTable, out var limitedEvents, eventRunTime))
{
Log.Warning("Provided event table could not build dict!");
- return;
+ return false;
}
- var randomLimitedEvent = FindEvent(limitedEvents); // this picks the event, It might be better to use the GetSpawns to do it, but that will be a major rebalancing fuck.
+ randomLimitedEvent = FindEvent(limitedEvents); // this picks the event, It might be better to use the GetSpawns to do it, but that will be a major rebalancing fuck.
+ // DeltaV - randomLimitedEvent declared by enclosing method
if (randomLimitedEvent == null)
{
Log.Warning("The selected random event is null!");
- return;
+ return false;
}
if (!_prototype.TryIndex(randomLimitedEvent, out _))
{
Log.Warning("A requested event is not available!");
- return;
+ return false;
}
- GameTicker.AddGameRule(randomLimitedEvent);
+ return true;
+ }
+ // DeltaV - end separate event generation method
+
+ // DeltaV - overloaded for backwards compatiblity
+ public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Dictionary limitedEvents)
+ {
+ return TryBuildLimitedEvents(limitedEventsTable, out limitedEvents, null);
}
+ // DeltaV - end overloaded for backwards compatiblity
///
/// Returns true if the provided EntityTableSelector gives at least one prototype with a StationEvent comp.
///
- public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Dictionary limitedEvents)
+ public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Dictionary limitedEvents, TimeSpan? eventRunTime) // DeltaV - Add a time overide
{
limitedEvents = new Dictionary();
-
- var availableEvents = AvailableEvents(); // handles the player counts and individual event restrictions
-
+ // DeltaV - Overide time for stashing events
+ var availableEvents = AvailableEvents(eventRunTime); // handles the player counts and individual event restrictions
if (availableEvents.Count == 0)
{
Log.Warning("No events were available to run!");
@@ -175,6 +206,16 @@ public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Di
return null;
}
+ // DeltaV - overloaded for backwards compatiblity
+ public Dictionary AvailableEvents(
+ bool ignoreEarliestStart = false,
+ int? playerCountOverride = null,
+ TimeSpan? currentTimeOverride = null)
+ {
+ return AvailableEvents(null, ignoreEarliestStart, playerCountOverride, currentTimeOverride);
+ }
+ // DeltaV - end overloaded for backwards compatiblity
+
///
/// Gets the events that have met their player count, time-until start, etc.
///
@@ -182,6 +223,7 @@ public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Di
/// Override for round time, if using this to simulate events rather than in an actual round.
///
public Dictionary AvailableEvents(
+ TimeSpan? eventRunTime,
bool ignoreEarliestStart = false,
int? playerCountOverride = null,
TimeSpan? currentTimeOverride = null)
@@ -189,9 +231,12 @@ public Dictionary AvailableEvents(
var playerCount = playerCountOverride ?? _playerManager.PlayerCount;
// playerCount does a lock so we'll just keep the variable here
- var currentTime = currentTimeOverride ?? (!ignoreEarliestStart
- ? GameTicker.RoundDuration()
- : TimeSpan.Zero);
+ var currentTime = currentTimeOverride ?? (
+ (!ignoreEarliestStart
+ ? eventRunTime // DeltaV - Use eventRunTime instead of RoundDuration if provided
+ ?? GameTicker.RoundDuration()
+ : TimeSpan.Zero)
+ );
var result = new Dictionary();
diff --git a/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs b/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs
index a5dbe102ca1..67c8f9fb5d4 100644
--- a/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs
+++ b/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs
@@ -1,16 +1,22 @@
+using Content.Server.Chat.Managers; // DeltaV
+using Content.Server.DeltaV.StationEvents.NextEvent; // DeltaV
using Content.Server.GameTicking;
using Content.Server.GameTicking.Rules;
using Content.Server.StationEvents.Components;
using Content.Shared.GameTicking.Components;
using Robust.Shared.Random;
+using Robust.Shared.Timing; // DeltaV
namespace Content.Server.StationEvents;
public sealed class RampingStationEventSchedulerSystem : GameRuleSystem
{
+ [Dependency] private readonly IChatManager _chatManager = default!; // DeltaV
+ [Dependency] private readonly IGameTiming _timing = default!; // DeltaV
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly EventManagerSystem _event = default!;
[Dependency] private readonly GameTicker _gameTicker = default!;
+ [Dependency] private readonly NextEventSystem _next = default!; // DeltaV
///
/// Returns the ChaosModifier which increases as round time increases to a point.
@@ -36,6 +42,16 @@ protected override void Started(EntityUid uid, RampingStationEventSchedulerCompo
component.StartingChaos = component.MaxChaos / 10;
PickNextEventTime(uid, component);
+
+ // DeltaV - end init NextEventComp
+ if (TryComp(uid, out var nextEventComponent)
+ && _event.TryGenerateRandomEvent(component.ScheduledGameRules, out string? firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent))
+ && firstEvent != null)
+ {
+ _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", firstEvent), ("seconds", (int)component.TimeUntilNextEvent)));
+ _next.UpdateNextEvent(nextEventComponent, firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent));
+ }
+ // DeltaV - end init NextEventComp
}
public override void Update(float frameTime)
@@ -57,6 +73,23 @@ public override void Update(float frameTime)
continue;
}
+ // DeltaV events using NextEventComponent
+ if (TryComp(uid, out var nextEventComponent)) // If there is a nextEventComponent use the stashed event instead of running it directly.
+ {
+ PickNextEventTime(uid, scheduler);
+ var nextEventTime = _timing.CurTime + TimeSpan.FromSeconds(scheduler.TimeUntilNextEvent);
+ if (!_event.TryGenerateRandomEvent(scheduler.ScheduledGameRules, out string? generatedEvent, nextEventTime) || generatedEvent == null)
+ continue;
+ _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", generatedEvent), ("seconds", (int)scheduler.TimeUntilNextEvent)));
+ // Cycle the stashed event with the new generated event and time.
+ string? storedEvent = _next.UpdateNextEvent(nextEventComponent, generatedEvent, nextEventTime);
+ if (string.IsNullOrEmpty(storedEvent)) //If there was no stored event don't try to run it.
+ continue;
+ GameTicker.AddGameRule(storedEvent);
+ continue;
+ }
+ // DeltaV end events using NextEventComponent
+
PickNextEventTime(uid, scheduler);
_event.RunRandomEvent(scheduler.ScheduledGameRules);
}
diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs
index 03e529c4398..011a17c018f 100644
--- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs
+++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs
@@ -2,6 +2,8 @@
using System.Numerics;
using Content.Server.Cargo.Systems;
using Content.Server.Power.EntitySystems;
+using Content.Server.Stunnable;
+using Content.Server.Temperature.Systems; // DeltaV Heat Change system
using Content.Server.Weapons.Ranged.Components;
using Content.Shared.Damage;
using Content.Shared.Damage.Systems;
@@ -38,6 +40,7 @@ public sealed partial class GunSystem : SharedGunSystem
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly StaminaSystem _stamina = default!;
[Dependency] private readonly SharedContainerSystem _container = default!;
+ [Dependency] private readonly TemperatureSystem _temperature = default!; // DeltaV Heat change system
private const float DamagePitchVariation = 0.05f;
@@ -217,6 +220,10 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid?
if (hitscan.StaminaDamage > 0f)
_stamina.TakeProjectileStaminaDamage(hitEntity, hitscan.StaminaDamage, source: user); // DeltaV - Cope with hitscan not being an entity
+ // DeltaV: Changes the target's temperature by this amount when hit
+ if (hitscan.HeatChange != 0f)
+ _temperature.ChangeHeat(hitEntity, hitscan.HeatChange, true);
+
var dmg = hitscan.Damage;
var hitName = ToPrettyString(hitEntity);
diff --git a/Content.Shared/Cargo/CargoBountyHistoryData.cs b/Content.Shared/Cargo/CargoBountyHistoryData.cs
new file mode 100644
index 00000000000..43da42d5587
--- /dev/null
+++ b/Content.Shared/Cargo/CargoBountyHistoryData.cs
@@ -0,0 +1,46 @@
+using Robust.Shared.Serialization;
+using Content.Shared.Cargo.Prototypes;
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared.Cargo;
+
+///
+/// A data structure for storing historical information about bounties.
+///
+[DataDefinition, NetSerializable, Serializable]
+public readonly partial record struct CargoBountyHistoryData
+{
+ ///
+ /// A unique id used to identify the bounty
+ ///
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public string Id { get; init; } = string.Empty;
+
+ ///
+ /// Optional name of the actor that skipped the bounty.
+ /// Only set when the bounty has been skipped.
+ ///
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public string? ActorName { get; init; } = default;
+
+ ///
+ /// Time when this bounty was completed or skipped
+ ///
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public TimeSpan Timestamp { get; init; } = TimeSpan.MinValue;
+
+ ///
+ /// The prototype containing information about the bounty.
+ ///
+ [ViewVariables(VVAccess.ReadWrite)]
+ [DataField(required: true)]
+ public ProtoId Bounty { get; init; } = string.Empty;
+
+ public CargoBountyHistoryData(CargoBountyData bounty, TimeSpan timestamp, string? actorName)
+ {
+ Bounty = bounty.Bounty;
+ Id = bounty.Id;
+ ActorName = actorName;
+ Timestamp = timestamp;
+ }
+}
diff --git a/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs b/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs
index bf82a08127e..8c78312be19 100644
--- a/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs
+++ b/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs
@@ -50,11 +50,13 @@ public sealed partial class CargoBountyConsoleComponent : Component
public sealed class CargoBountyConsoleState : BoundUserInterfaceState
{
public List Bounties;
+ public List History;
public TimeSpan UntilNextSkip;
- public CargoBountyConsoleState(List bounties, TimeSpan untilNextSkip)
+ public CargoBountyConsoleState(List bounties, List history, TimeSpan untilNextSkip)
{
Bounties = bounties;
+ History = history;
UntilNextSkip = untilNextSkip;
}
}
diff --git a/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs
new file mode 100644
index 00000000000..26ecf48f7aa
--- /dev/null
+++ b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs
@@ -0,0 +1,33 @@
+using Content.Shared.DoAfter;
+using Robust.Shared.Audio;
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared.Abilities.Psionics;
+
+[RegisterComponent]
+public sealed partial class PrecognitionPowerComponent : Component
+{
+ [DataField]
+ public float RandomResultChance = 0.2F;
+
+ [DataField]
+ public Dictionary AllResults;
+
+ [DataField]
+ public SoundSpecifier VisionSound = new SoundPathSpecifier("/Audio/DeltaV/Effects/clang2.ogg");
+
+ [DataField]
+ public EntityUid? SoundStream;
+
+ [DataField]
+ public DoAfterId? DoAfter;
+
+ [DataField]
+ public TimeSpan UseDelay = TimeSpan.FromSeconds(8.35); // The length of the sound effect
+
+ [DataField]
+ public EntProtoId PrecognitionActionId = "ActionPrecognition";
+
+ [DataField]
+ public EntityUid? PrecognitionActionEntity;
+}
diff --git a/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs
new file mode 100644
index 00000000000..34a8979f4fa
--- /dev/null
+++ b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs
@@ -0,0 +1,11 @@
+namespace Content.Shared.Abilities.Psionics;
+
+[RegisterComponent]
+public sealed partial class PrecognitionResultComponent : Component
+{
+ [DataField]
+ public string Message = default!;
+
+ [DataField]
+ public float Weight = 1;
+}
diff --git a/Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs b/Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs
new file mode 100644
index 00000000000..addc4712f2e
--- /dev/null
+++ b/Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs
@@ -0,0 +1,3 @@
+namespace Content.Shared.Actions.Events;
+
+public sealed partial class PrecognitionPowerActionEvent : InstantActionEvent;
diff --git a/Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs b/Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs
new file mode 100644
index 00000000000..7e519e7e04b
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs
@@ -0,0 +1,14 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+///
+/// Stores the carrier of an entity being carried.
+///
+[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSystem))]
+[AutoGenerateComponentState]
+public sealed partial class BeingCarriedComponent : Component
+{
+ [DataField, AutoNetworkedField]
+ public EntityUid Carrier;
+}
diff --git a/Content.Shared/DeltaV/Carrying/CarriableComponent.cs b/Content.Shared/DeltaV/Carrying/CarriableComponent.cs
new file mode 100644
index 00000000000..ad1968aec62
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/CarriableComponent.cs
@@ -0,0 +1,14 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSystem))]
+public sealed partial class CarriableComponent : Component
+{
+ ///
+ /// Number of free hands required
+ /// to carry the entity
+ ///
+ [DataField]
+ public int FreeHandsRequired = 2;
+}
diff --git a/Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs b/Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs
new file mode 100644
index 00000000000..7ea0375518a
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs
@@ -0,0 +1,7 @@
+using Content.Shared.DoAfter;
+using Robust.Shared.Serialization;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+[Serializable, NetSerializable]
+public sealed partial class CarryDoAfterEvent : SimpleDoAfterEvent;
diff --git a/Content.Shared/DeltaV/Carrying/CarryingComponent.cs b/Content.Shared/DeltaV/Carrying/CarryingComponent.cs
new file mode 100644
index 00000000000..e6661da0e04
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/CarryingComponent.cs
@@ -0,0 +1,14 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+///
+/// Added to an entity when they are carrying somebody.
+///
+[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSystem))]
+[AutoGenerateComponentState]
+public sealed partial class CarryingComponent : Component
+{
+ [DataField, AutoNetworkedField]
+ public EntityUid Carried;
+}
diff --git a/Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs b/Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs
new file mode 100644
index 00000000000..9e1be89370c
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs
@@ -0,0 +1,14 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSlowdownSystem))]
+[AutoGenerateComponentState]
+public sealed partial class CarryingSlowdownComponent : Component
+{
+ ///
+ /// Modifier for both walk and sprint speed.
+ ///
+ [DataField, AutoNetworkedField]
+ public float Modifier = 1.0f;
+}
diff --git a/Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs b/Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs
new file mode 100644
index 00000000000..677c53eedc0
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs
@@ -0,0 +1,29 @@
+using Content.Shared.Movement.Systems;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+public sealed class CarryingSlowdownSystem : EntitySystem
+{
+ [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnRefreshMoveSpeed);
+ }
+
+ public void SetModifier(Entity ent, float modifier)
+ {
+ ent.Comp ??= EnsureComp(ent);
+ ent.Comp.Modifier = modifier;
+ Dirty(ent, ent.Comp);
+
+ _movementSpeed.RefreshMovementSpeedModifiers(ent);
+ }
+
+ private void OnRefreshMoveSpeed(Entity ent, ref RefreshMovementSpeedModifiersEvent args)
+ {
+ args.ModifySpeed(ent.Comp.Modifier, ent.Comp.Modifier);
+ }
+}
diff --git a/Content.Shared/DeltaV/Carrying/CarryingSystem.cs b/Content.Shared/DeltaV/Carrying/CarryingSystem.cs
new file mode 100644
index 00000000000..2b47c49abd1
--- /dev/null
+++ b/Content.Shared/DeltaV/Carrying/CarryingSystem.cs
@@ -0,0 +1,384 @@
+using Content.Shared.ActionBlocker;
+using Content.Shared.Buckle.Components;
+using Content.Shared.Climbing.Events;
+using Content.Shared.DoAfter;
+using Content.Shared.Hands;
+using Content.Shared.Hands.Components;
+using Content.Shared.Interaction.Events;
+using Content.Shared.Inventory.VirtualItem;
+using Content.Shared.Item;
+using Content.Shared.Mobs;
+using Content.Shared.Movement.Events;
+using Content.Shared.Movement.Pulling.Components;
+using Content.Shared.Movement.Pulling.Events;
+using Content.Shared.Movement.Pulling.Systems;
+using Content.Shared.Movement.Systems;
+using Content.Shared.Nyanotrasen.Item.PseudoItem;
+using Content.Shared.Popups;
+using Content.Shared.Pulling;
+using Content.Shared.Resist;
+using Content.Shared.Standing;
+using Content.Shared.Storage;
+using Content.Shared.Stunnable;
+using Content.Shared.Throwing;
+using Content.Shared.Verbs;
+using Robust.Shared.Map.Components;
+using Robust.Shared.Network;
+using Robust.Shared.Physics.Components;
+using System.Numerics;
+
+namespace Content.Shared.DeltaV.Carrying;
+
+public sealed class CarryingSystem : EntitySystem
+{
+ [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
+ [Dependency] private readonly CarryingSlowdownSystem _slowdown = default!;
+ [Dependency] private readonly INetManager _net = default!;
+ [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!;
+ [Dependency] private readonly PullingSystem _pulling = default!;
+ [Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
+ [Dependency] private readonly SharedPopupSystem _popup = default!;
+ [Dependency] private readonly SharedPseudoItemSystem _pseudoItem = default!;
+ [Dependency] private readonly SharedTransformSystem _transform = default!;
+ [Dependency] private readonly StandingStateSystem _standingState = default!;
+ [Dependency] private readonly SharedVirtualItemSystem _virtualItem = default!;
+
+ private EntityQuery _physicsQuery;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ _physicsQuery = GetEntityQuery();
+
+ SubscribeLocalEvent>(AddCarryVerb);
+ SubscribeLocalEvent>(AddInsertCarriedVerb);
+ SubscribeLocalEvent(OnVirtualItemDeleted);
+ SubscribeLocalEvent(OnThrow);
+ SubscribeLocalEvent(OnParentChanged);
+ SubscribeLocalEvent(OnMobStateChanged);
+ SubscribeLocalEvent(OnInteractionAttempt);
+ SubscribeLocalEvent(OnMoveAttempt);
+ SubscribeLocalEvent(OnStandAttempt);
+ SubscribeLocalEvent(OnInteractedWith);
+ SubscribeLocalEvent(OnPullAttempt);
+ SubscribeLocalEvent(OnDrop);
+ SubscribeLocalEvent(OnDrop);
+ SubscribeLocalEvent(OnDrop);
+ SubscribeLocalEvent(OnDrop);
+ SubscribeLocalEvent(OnDrop);
+ SubscribeLocalEvent(OnDrop);
+ SubscribeLocalEvent(OnDoAfter);
+ }
+
+ private void AddCarryVerb(Entity ent, ref GetVerbsEvent args)
+ {
+ var user = args.User;
+ var target = args.Target;
+ if (!args.CanInteract || !args.CanAccess || user == target)
+ return;
+
+ if (!CanCarry(user, ent))
+ return;
+
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => StartCarryDoAfter(user, ent),
+ Text = Loc.GetString("carry-verb"),
+ Priority = 2
+ });
+ }
+
+ private void AddInsertCarriedVerb(Entity ent, ref GetVerbsEvent args)
+ {
+ // If the person is carrying someone, and the carried person is a pseudo-item, and the target entity is a storage,
+ // then add an action to insert the carried entity into the target
+ // AKA put carried felenid into a duffelbag
+ if (args.Using is not {} carried || !args.CanAccess || !TryComp(carried, out var pseudoItem))
+ return;
+
+ var target = args.Target;
+ if (!TryComp(target, out var storageComp))
+ return;
+
+ if (!_pseudoItem.CheckItemFits((carried, pseudoItem), (target, storageComp)))
+ return;
+
+ args.Verbs.Add(new InnateVerb()
+ {
+ Act = () =>
+ {
+ DropCarried(ent, carried);
+ _pseudoItem.TryInsert(target, carried, pseudoItem, storageComp);
+ },
+ Text = Loc.GetString("action-name-insert-other", ("target", carried)),
+ Priority = 2
+ });
+ }
+
+ ///
+ /// Since the carried entity is stored as 2 virtual items, when deleted we want to drop them.
+ ///
+ private void OnVirtualItemDeleted(Entity ent, ref VirtualItemDeletedEvent args)
+ {
+ if (HasComp(args.BlockingEntity))
+ DropCarried(ent, args.BlockingEntity);
+ }
+
+ ///
+ /// Basically using virtual item passthrough to throw the carried person. A new age!
+ /// Maybe other things besides throwing should use virt items like this...
+ ///
+ private void OnThrow(Entity ent, ref BeforeThrowEvent args)
+ {
+ if (!TryComp(args.ItemUid, out var virtItem) || !HasComp(virtItem.BlockingEntity))
+ return;
+
+ var carried = virtItem.BlockingEntity;
+ args.ItemUid = carried;
+
+ args.ThrowSpeed = 5f * MassContest(ent, carried);
+ }
+
+ private void OnParentChanged(Entity ent, ref EntParentChangedMessage args)
+ {
+ var xform = Transform(ent);
+ if (xform.MapUid != args.OldMapId)
+ return;
+
+ // Do not drop the carried entity if the new parent is a grid
+ if (xform.ParentUid == xform.GridUid)
+ return;
+
+ DropCarried(ent, ent.Comp.Carried);
+ }
+
+ private void OnMobStateChanged(Entity ent, ref MobStateChangedEvent args)
+ {
+ DropCarried(ent, ent.Comp.Carried);
+ }
+
+ ///
+ /// Only let the person being carried interact with their carrier and things on their person.
+ ///
+ private void OnInteractionAttempt(Entity ent, ref InteractionAttemptEvent args)
+ {
+ if (args.Target is not {} target)
+ return;
+
+ var targetParent = Transform(target).ParentUid;
+
+ var carrier = ent.Comp.Carrier;
+ if (target != carrier && targetParent != carrier && targetParent != ent.Owner)
+ args.Cancelled = true;
+ }
+
+ private void OnMoveAttempt(Entity ent, ref UpdateCanMoveEvent args)
+ {
+ args.Cancel();
+ }
+
+ private void OnStandAttempt(Entity ent, ref StandAttemptEvent args)
+ {
+ args.Cancel();
+ }
+
+ private void OnInteractedWith(Entity ent, ref GettingInteractedWithAttemptEvent args)
+ {
+ if (args.Uid != ent.Comp.Carrier)
+ args.Cancelled = true;
+ }
+
+ private void OnPullAttempt(Entity ent, ref PullAttemptEvent args)
+ {
+ args.Cancelled = true;
+ }
+
+ private void OnDrop(Entity ent, ref TEvent args) // Augh
+ {
+ DropCarried(ent.Comp.Carrier, ent);
+ }
+
+ private void OnDoAfter(Entity ent, ref CarryDoAfterEvent args)
+ {
+ if (args.Handled || args.Cancelled)
+ return;
+
+ if (!CanCarry(args.Args.User, ent))
+ return;
+
+ Carry(args.Args.User, ent);
+ args.Handled = true;
+ }
+
+ private void StartCarryDoAfter(EntityUid carrier, Entity carried)
+ {
+ TimeSpan length = GetPickupDuration(carrier, carried);
+
+ if (length.TotalSeconds >= 9f)
+ {
+ _popup.PopupClient(Loc.GetString("carry-too-heavy"), carried, carrier, PopupType.SmallCaution);
+ return;
+ }
+
+ if (!HasComp(carried))
+ length *= 2f;
+
+ var ev = new CarryDoAfterEvent();
+ var args = new DoAfterArgs(EntityManager, carrier, length, ev, carried, target: carried)
+ {
+ BreakOnMove = true,
+ NeedHand = true
+ };
+
+ _doAfter.TryStartDoAfter(args);
+
+ // Show a popup to the person getting picked up
+ _popup.PopupEntity(Loc.GetString("carry-started", ("carrier", carrier)), carried, carried);
+ }
+
+ private void Carry(EntityUid carrier, EntityUid carried)
+ {
+ if (TryComp(carried, out var pullable))
+ _pulling.TryStopPull(carried, pullable);
+
+ var carrierXform = Transform(carrier);
+ var xform = Transform(carried);
+ _transform.AttachToGridOrMap(carrier, carrierXform);
+ _transform.AttachToGridOrMap(carried, xform);
+ _transform.SetParent(carried, xform, carrier, carrierXform);
+
+ var carryingComp = EnsureComp(carrier);
+ carryingComp.Carried = carried;
+ Dirty(carrier, carryingComp);
+ var carriedComp = EnsureComp(carried);
+ carriedComp.Carrier = carrier;
+ Dirty(carried, carriedComp);
+ EnsureComp(carried);
+
+ ApplyCarrySlowdown(carrier, carried);
+
+ _actionBlocker.UpdateCanMove(carried);
+
+ if (_net.IsClient) // no spawning prediction
+ return;
+
+ _virtualItem.TrySpawnVirtualItemInHand(carried, carrier);
+ _virtualItem.TrySpawnVirtualItemInHand(carried, carrier);
+ }
+
+ public bool TryCarry(EntityUid carrier, Entity toCarry)
+ {
+ if (!Resolve(toCarry, ref toCarry.Comp, false))
+ return false;
+
+ if (!CanCarry(carrier, (toCarry, toCarry.Comp)))
+ return false;
+
+ // The second one means that carrier is a pseudo-item and is inside a bag.
+ if (HasComp(carrier) || HasComp(carrier))
+ return false;
+
+ if (GetPickupDuration(carrier, toCarry).TotalSeconds > 9f)
+ return false;
+
+ Carry(carrier, toCarry);
+ return true;
+ }
+
+ public void DropCarried(EntityUid carrier, EntityUid carried)
+ {
+ Drop(carried);
+ RemComp(carrier); // get rid of this first so we don't recursively fire that event
+ RemComp(carrier);
+ _virtualItem.DeleteInHandsMatching(carrier, carried);
+ _movementSpeed.RefreshMovementSpeedModifiers(carrier);
+ }
+
+ private void Drop(EntityUid carried)
+ {
+ RemComp(carried);
+ RemComp(carried); // TODO SHITMED: make sure this doesnt let you make someone with no legs walk
+ _actionBlocker.UpdateCanMove(carried);
+ Transform(carried).AttachToGridOrMap();
+ _standingState.Stand(carried);
+ }
+
+ private void ApplyCarrySlowdown(EntityUid carrier, EntityUid carried)
+ {
+ var massRatio = MassContest(carrier, carried);
+
+ if (massRatio == 0)
+ massRatio = 1;
+
+ var massRatioSq = Math.Pow(massRatio, 2);
+ var modifier = (1 - (0.15 / massRatioSq));
+ modifier = Math.Max(0.1, modifier);
+ _slowdown.SetModifier(carrier, (float) modifier);
+ }
+
+ public bool CanCarry(EntityUid carrier, Entity carried)
+ {
+ return
+ carrier != carried.Owner &&
+ // can't carry multiple people, even if you have 4 hands it will break invariants when removing carryingcomponent for first carried person
+ !HasComp(carrier) &&
+ // can't carry someone in a locker, buckled, etc
+ HasComp(Transform(carrier).ParentUid) &&
+ // no tower of spacemen or stack overflow
+ !HasComp(carrier) &&
+ !HasComp(carried) &&
+ // finally check that there are enough free hands
+ TryComp(carrier, out var hands) &&
+ hands.CountFreeHands() >= carried.Comp.FreeHandsRequired;
+ }
+
+ private float MassContest(EntityUid roller, EntityUid target)
+ {
+ if (!_physicsQuery.TryComp(roller, out var rollerPhysics) || !_physicsQuery.TryComp(target, out var targetPhysics))
+ return 1f;
+
+ if (targetPhysics.FixturesMass == 0)
+ return 1f;
+
+ return rollerPhysics.FixturesMass / targetPhysics.FixturesMass;
+ }
+
+ private TimeSpan GetPickupDuration(EntityUid carrier, EntityUid carried)
+ {
+ var length = TimeSpan.FromSeconds(3);
+
+ var mod = MassContest(carrier, carried);
+ if (mod != 0)
+ length /= mod;
+
+ return length;
+ }
+
+ public override void Update(float frameTime)
+ {
+ base.Update(frameTime);
+
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var carried, out var comp, out var xform))
+ {
+ var carrier = comp.Carrier;
+ if (TerminatingOrDeleted(carrier))
+ {
+ RemCompDeferred(carried);
+ continue;
+ }
+
+ // SOMETIMES - when an entity is inserted into disposals, or a cryosleep chamber - it can get re-parented without a proper reparent event
+ // when this happens, it needs to be dropped because it leads to weird behavior
+ if (xform.ParentUid != carrier)
+ {
+ DropCarried(carrier, carried);
+ continue;
+ }
+
+ // Make sure the carried entity is always centered relative to the carrier, as gravity pulls can offset it otherwise
+ _transform.SetLocalPosition(carried, Vector2.Zero);
+ }
+ }
+}
diff --git a/Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs b/Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs
new file mode 100644
index 00000000000..e8064d79456
--- /dev/null
+++ b/Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs
@@ -0,0 +1,17 @@
+using Content.Shared.DeltaV.Item.ItemToggle.Systems;
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.DeltaV.Item.ItemToggle.Components;
+
+///
+/// Adds examine text when the item is on or off.
+///
+[RegisterComponent, NetworkedComponent, Access(typeof(ItemToggleExamineSystem))]
+public sealed partial class ItemToggleExamineComponent : Component
+{
+ [DataField(required: true)]
+ public LocId On;
+
+ [DataField(required: true)]
+ public LocId Off;
+}
diff --git a/Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs b/Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs
new file mode 100644
index 00000000000..5abb0aec78b
--- /dev/null
+++ b/Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs
@@ -0,0 +1,23 @@
+using Content.Shared.DeltaV.Item.ItemToggle.Components;
+using Content.Shared.Examine;
+using Content.Shared.Item.ItemToggle;
+
+namespace Content.Shared.DeltaV.Item.ItemToggle.Systems;
+
+public sealed class ItemToggleExamineSystem : EntitySystem
+{
+ [Dependency] private readonly ItemToggleSystem _toggle = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnExamined);
+ }
+
+ private void OnExamined(Entity ent, ref ExaminedEvent args)
+ {
+ var msg = _toggle.IsActivated(ent.Owner) ? ent.Comp.On : ent.Comp.Off;
+ args.PushMarkup(Loc.GetString(msg));
+ }
+}
diff --git a/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs b/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs
index 33dca3ee019..e3e5c0655ec 100644
--- a/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs
+++ b/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs
@@ -61,6 +61,17 @@ private void OnClaimMiningPoints(Entity ent, ref Lat
return (idCard, comp);
}
+ ///
+ /// Returns true if the user has at least some number of points on their ID card.
+ ///
+ public bool UserHasPoints(EntityUid user, uint points)
+ {
+ if (TryFindIdCard(user)?.Comp is not {} comp)
+ return false;
+
+ return comp.Points >= points;
+ }
+
///
/// Removes points from a holder, returning true if it succeeded.
///
diff --git a/Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs b/Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs
new file mode 100644
index 00000000000..ec2c272695b
--- /dev/null
+++ b/Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.DeltaV.Weather.Components;
+
+///
+/// Makes an entity not take damage from ash storms.
+///
+[RegisterComponent, NetworkedComponent]
+public sealed partial class AshStormImmuneComponent : Component;
diff --git a/Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs b/Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs
deleted file mode 100644
index 6acd6b775f3..00000000000
--- a/Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Robust.Shared.Serialization;
-using Content.Shared.DoAfter;
-
-namespace Content.Shared.Carrying
-{
- [Serializable, NetSerializable]
- public sealed partial class CarryDoAfterEvent : SimpleDoAfterEvent
- {
- }
-}
diff --git a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs b/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs
deleted file mode 100644
index aabde66af0d..00000000000
--- a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Robust.Shared.GameStates;
-using Robust.Shared.Serialization;
-
-namespace Content.Shared.Carrying
-{
- [RegisterComponent, NetworkedComponent, Access(typeof(CarryingSlowdownSystem))]
-
- public sealed partial class CarryingSlowdownComponent : Component
- {
- [DataField("walkModifier", required: true)] [ViewVariables(VVAccess.ReadWrite)]
- public float WalkModifier = 1.0f;
-
- [DataField("sprintModifier", required: true)] [ViewVariables(VVAccess.ReadWrite)]
- public float SprintModifier = 1.0f;
- }
-
- [Serializable, NetSerializable]
- public sealed class CarryingSlowdownComponentState : ComponentState
- {
- public float WalkModifier;
- public float SprintModifier;
- public CarryingSlowdownComponentState(float walkModifier, float sprintModifier)
- {
- WalkModifier = walkModifier;
- SprintModifier = sprintModifier;
- }
- }
-}
diff --git a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs b/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs
deleted file mode 100644
index 9b9c8cec10f..00000000000
--- a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using Content.Shared.Movement.Systems;
-using Robust.Shared.GameStates;
-
-namespace Content.Shared.Carrying
-{
- public sealed class CarryingSlowdownSystem : EntitySystem
- {
- [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!;
-
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent(OnGetState);
- SubscribeLocalEvent(OnHandleState);
- SubscribeLocalEvent(OnRefreshMoveSpeed);
- }
-
- public void SetModifier(EntityUid uid, float walkSpeedModifier, float sprintSpeedModifier, CarryingSlowdownComponent? component = null)
- {
- if (!Resolve(uid, ref component))
- return;
-
- component.WalkModifier = walkSpeedModifier;
- component.SprintModifier = sprintSpeedModifier;
- _movementSpeed.RefreshMovementSpeedModifiers(uid);
- }
- private void OnGetState(EntityUid uid, CarryingSlowdownComponent component, ref ComponentGetState args)
- {
- args.State = new CarryingSlowdownComponentState(component.WalkModifier, component.SprintModifier);
- }
-
- private void OnHandleState(EntityUid uid, CarryingSlowdownComponent component, ref ComponentHandleState args)
- {
- if (args.Current is CarryingSlowdownComponentState state)
- {
- component.WalkModifier = state.WalkModifier;
- component.SprintModifier = state.SprintModifier;
-
- _movementSpeed.RefreshMovementSpeedModifiers(uid);
- }
- }
- private void OnRefreshMoveSpeed(EntityUid uid, CarryingSlowdownComponent component, RefreshMovementSpeedModifiersEvent args)
- {
- args.ModifySpeed(component.WalkModifier, component.SprintModifier);
- }
- }
-}
diff --git a/Content.Shared/Nyanotrasen/Psionics/Events.cs b/Content.Shared/Nyanotrasen/Psionics/Events.cs
index cf9a50c6e18..3837e3d0ee9 100644
--- a/Content.Shared/Nyanotrasen/Psionics/Events.cs
+++ b/Content.Shared/Nyanotrasen/Psionics/Events.cs
@@ -21,6 +21,26 @@ public PsionicRegenerationDoAfterEvent(TimeSpan startedAt)
public override DoAfterEvent Clone() => this;
}
+ // DeltaV Precognition
+ [Serializable, NetSerializable]
+ public sealed partial class PrecognitionDoAfterEvent : SimpleDoAfterEvent
+ {
+ [DataField("startedAt", required: true)]
+ public TimeSpan StartedAt;
+
+ private PrecognitionDoAfterEvent()
+ {
+ }
+
+ public PrecognitionDoAfterEvent(TimeSpan startedAt)
+ {
+ StartedAt = startedAt;
+ }
+
+ public override DoAfterEvent Clone() => this;
+ }
+ // DeltaV End Precognition
+
[Serializable, NetSerializable]
public sealed partial class GlimmerWispDrainDoAfterEvent : SimpleDoAfterEvent
{
diff --git a/Content.Shared/Salvage/Magnet/AsteroidOffering.cs b/Content.Shared/Salvage/Magnet/AsteroidOffering.cs
index 38da94afee2..42592d8a015 100644
--- a/Content.Shared/Salvage/Magnet/AsteroidOffering.cs
+++ b/Content.Shared/Salvage/Magnet/AsteroidOffering.cs
@@ -15,4 +15,6 @@ public record struct AsteroidOffering : ISalvageMagnetOffering
/// Calculated marker layers for the asteroid.
///
public Dictionary MarkerLayers;
+
+ uint ISalvageMagnetOffering.Cost => 0; // DeltaV
}
diff --git a/Content.Shared/Salvage/Magnet/DebrisOffering.cs b/Content.Shared/Salvage/Magnet/DebrisOffering.cs
index 953b9dcad9f..7f88c085977 100644
--- a/Content.Shared/Salvage/Magnet/DebrisOffering.cs
+++ b/Content.Shared/Salvage/Magnet/DebrisOffering.cs
@@ -6,4 +6,6 @@ namespace Content.Shared.Salvage.Magnet;
public record struct DebrisOffering : ISalvageMagnetOffering
{
public string Id;
+
+ uint ISalvageMagnetOffering.Cost => 0; // DeltaV: Debris is a very good source of materials for the station, so no cost
}
diff --git a/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs b/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs
index 7d002fe679e..8aae2981fdb 100644
--- a/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs
+++ b/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs
@@ -2,5 +2,8 @@ namespace Content.Shared.Salvage.Magnet;
public interface ISalvageMagnetOffering
{
-
-}
\ No newline at end of file
+ ///
+ /// DeltaV: How many mining points this offering costs to accept.
+ ///
+ public uint Cost { get; }
+}
diff --git a/Content.Shared/Salvage/Magnet/SalvageOffering.cs b/Content.Shared/Salvage/Magnet/SalvageOffering.cs
index c49f1ff4022..a30328a6fa6 100644
--- a/Content.Shared/Salvage/Magnet/SalvageOffering.cs
+++ b/Content.Shared/Salvage/Magnet/SalvageOffering.cs
@@ -6,4 +6,6 @@ namespace Content.Shared.Salvage.Magnet;
public record struct SalvageOffering : ISalvageMagnetOffering
{
public SalvageMapPrototype SalvageMap;
+
+ uint ISalvageMagnetOffering.Cost => 1000; // DeltaV: Station gets next to no benefit from you pulling wrecks, force you to mine first.
}
diff --git a/Content.Shared/Stacks/StackComponent.cs b/Content.Shared/Stacks/StackComponent.cs
index 7137f8c0c22..b18f9b0d051 100644
--- a/Content.Shared/Stacks/StackComponent.cs
+++ b/Content.Shared/Stacks/StackComponent.cs
@@ -24,7 +24,7 @@ public sealed partial class StackComponent : Component
///
[ViewVariables(VVAccess.ReadOnly)]
[DataField("maxCountOverride")]
- public int? MaxCountOverride { get; set; }
+ public int? MaxCountOverride { get; set; }
///
/// Set to true to not reduce the count when used.
@@ -78,6 +78,14 @@ public sealed partial class StackComponent : Component
[DataField("layerStates")]
[ViewVariables(VVAccess.ReadWrite)]
public List LayerStates = new();
+
+ // Frontier: transforming Amount, MaxCount in speso stacks
+ ///
+ /// An optional function to adjust the layers used for a stack's appearance.
+ ///
+ [DataField]
+ public StackLayerFunction LayerFunction = StackLayerFunction.None;
+ // End Frontier
}
[Serializable, NetSerializable]
diff --git a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs
index 7a8961485d6..5cc24992d31 100644
--- a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs
+++ b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs
@@ -1,5 +1,6 @@
using Content.Server.Storage.Components;
using Content.Shared.Inventory;
+using Content.Shared.Item.ItemToggle; // DeltaV
using Content.Shared.Whitelist;
using Robust.Shared.Map;
using Robust.Shared.Physics.Components;
@@ -15,6 +16,7 @@ public sealed class MagnetPickupSystem : EntitySystem
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly InventorySystem _inventory = default!;
+ [Dependency] private readonly ItemToggleSystem _toggle = default!; // DeltaV
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly SharedStorageSystem _storage = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
@@ -49,11 +51,18 @@ public override void Update(float frameTime)
comp.NextScan += ScanDelay;
- if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef))
+ // Begin DeltaV Addition: Make ore bags use ItemToggle
+ if (!_toggle.IsActivated(uid))
continue;
+ // End DeltaV Addition
- if ((slotDef.SlotFlags & comp.SlotFlags) == 0x0)
- continue;
+ // Begin DeltaV Removals: Allow ore bags to work inhand
+ //if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef))
+ // continue;
+
+ //if ((slotDef.SlotFlags & comp.SlotFlags) == 0x0)
+ // continue;
+ // End DeltaV Removals
// No space
if (!_storage.HasSpace((uid, storage)))
diff --git a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs
index a5063e3ab5b..665dbbf464d 100644
--- a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs
+++ b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs
@@ -17,6 +17,12 @@ public sealed partial class HitscanPrototype : IPrototype, IShootable
[ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")]
public float StaminaDamage;
+ ///
+ /// DeltaV: Changes the target's temperature by this amount when hit.
+ ///
+ [DataField]
+ public float HeatChange;
+
[ViewVariables(VVAccess.ReadWrite), DataField("damage")]
public DamageSpecifier? Damage;
diff --git a/Content.Shared/Weather/SharedWeatherSystem.cs b/Content.Shared/Weather/SharedWeatherSystem.cs
index acd43055388..0c9bbf702b0 100644
--- a/Content.Shared/Weather/SharedWeatherSystem.cs
+++ b/Content.Shared/Weather/SharedWeatherSystem.cs
@@ -36,6 +36,7 @@ private void OnWeatherUnpaused(EntityUid uid, WeatherComponent component, ref En
if (weather.EndTime != null)
weather.EndTime = weather.EndTime.Value + args.PausedTime;
}
+ component.NextUpdate += args.PausedTime; // DeltaV
}
public bool CanWeatherAffect(EntityUid uid, MapGridComponent grid, TileRef tileRef)
@@ -136,6 +137,10 @@ public override void Update(float frameTime)
{
SetState(uid, WeatherState.Starting, comp, weather, weatherProto);
}
+ else // DeltaV: Set state to Running when it finishes the starting time
+ {
+ SetState(uid, WeatherState.Running, comp, weather, weatherProto);
+ }
}
// Run whatever code we need.
diff --git a/Content.Shared/Weather/WeatherComponent.cs b/Content.Shared/Weather/WeatherComponent.cs
index eaf901fb424..e16fe978fa6 100644
--- a/Content.Shared/Weather/WeatherComponent.cs
+++ b/Content.Shared/Weather/WeatherComponent.cs
@@ -14,6 +14,18 @@ public sealed partial class WeatherComponent : Component
[DataField]
public Dictionary, WeatherData> Weather = new();
+ ///
+ /// DeltaV: How long to wait between updating weather effects.
+ ///
+ [DataField]
+ public TimeSpan UpdateDelay = TimeSpan.FromSeconds(1);
+
+ ///
+ /// DeltaV: When to next update weather effects (damage).
+ ///
+ [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
+ public TimeSpan NextUpdate = TimeSpan.Zero;
+
public static readonly TimeSpan StartupTime = TimeSpan.FromSeconds(15);
public static readonly TimeSpan ShutdownTime = TimeSpan.FromSeconds(15);
}
diff --git a/Content.Shared/Weather/WeatherPrototype.cs b/Content.Shared/Weather/WeatherPrototype.cs
index 3803c37d4ce..af585d8d7c4 100644
--- a/Content.Shared/Weather/WeatherPrototype.cs
+++ b/Content.Shared/Weather/WeatherPrototype.cs
@@ -1,3 +1,5 @@
+using Content.Shared.Damage;
+using Content.Shared.Whitelist;
using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
@@ -20,4 +22,17 @@ public sealed partial class WeatherPrototype : IPrototype
///
[ViewVariables(VVAccess.ReadWrite), DataField("sound")]
public SoundSpecifier? Sound;
+
+ ///
+ /// DeltaV: Damage you can take from being in this weather.
+ /// Only applies when weather has fully set in.
+ ///
+ [DataField]
+ public DamageSpecifier? Damage;
+
+ ///
+ /// DeltaV: Don't damage entities that match this blacklist.
+ ///
+ [DataField]
+ public EntityWhitelist? DamageBlacklist;
}
diff --git a/Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs b/Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs
new file mode 100644
index 00000000000..98d3bb0e61f
--- /dev/null
+++ b/Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs
@@ -0,0 +1,13 @@
+namespace Content.Shared.Stacks.Components;
+
+[RegisterComponent]
+public sealed partial class StackLayerThresholdComponent : Component
+{
+ ///
+ /// A list of thresholds to check against the number of things in the stack.
+ /// Each exceeded threshold will cause the next layer to be displayed.
+ /// Should be sorted in ascending order.
+ ///
+ [DataField(required: true)]
+ public List Thresholds = new List();
+}
diff --git a/Content.Shared/_NF/Stacks/StackLayerFunction.cs b/Content.Shared/_NF/Stacks/StackLayerFunction.cs
new file mode 100644
index 00000000000..c655f3f76c2
--- /dev/null
+++ b/Content.Shared/_NF/Stacks/StackLayerFunction.cs
@@ -0,0 +1,7 @@
+namespace Content.Shared.Stacks;
+
+public enum StackLayerFunction
+{
+ None,
+ Threshold
+}
diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml
index 19210567258..a388a4d2ca6 100644
--- a/Resources/Changelog/DeltaVChangelog.yml
+++ b/Resources/Changelog/DeltaVChangelog.yml
@@ -1,223 +1,4 @@
Entries:
-- author: UnicornOnLSD
- changes:
- - message: Pebble minor patch number two.
- type: Tweak
- id: 279
- time: '2024-03-13T22:27:44.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/943
-- author: Velcroboy
- changes:
- - message: Added magnet pickup to Ore Processors and Material Reclaimer
- type: Add
- id: 280
- time: '2024-03-17T13:38:11.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/949
-- author: DebugOk
- changes:
- - message: Merged upstream, please report any bugs or regressions
- type: Add
- id: 281
- time: '2024-03-17T17:09:43.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/973
-- author: DangerRevolution
- changes:
- - message: Harpies can now wear prison jumpskirt
- type: Fix
- id: 282
- time: '2024-03-17T17:31:11.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/975
-- author: DangerRevolution
- changes:
- - message: Moths can now eat skirts
- type: Fix
- id: 283
- time: '2024-03-17T17:45:11.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/976
-- author: UnicornOnLSD
- changes:
- - message: pebble minor patch 3
- type: Tweak
- id: 284
- time: '2024-03-18T18:35:38.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/977
-- author: DangerRevolution and Noctis
- changes:
- - message: Added lunchboxes to the chefvend and dinnerwarevend for the Chef to fill
- or hand out pre-made!
- type: Add
- id: 285
- time: '2024-03-19T11:39:39.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/980
-- author: rosieposieeee
- changes:
- - message: Added Corpsman-only access and airlocks.
- type: Add
- id: 286
- time: '2024-03-19T12:13:13.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/892
-- author: rosieposieeee
- changes:
- - message: Submarine has received another batch of design tweaks and revisions.
- The deepest recesses of the station are shifting...
- type: Tweak
- id: 287
- time: '2024-03-19T23:50:03.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/809
-- author: Rose
- changes:
- - message: Added Submarine Station back to the map pool (for real this time)
- type: Add
- id: 288
- time: '2024-03-20T22:49:59.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/984
-- author: rosieposieeee
- changes:
- - message: More fixes for Submarine! Thank you everyone for your feedback.
- type: Fix
- id: 289
- time: '2024-03-21T06:10:41.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/987
-- author: DangerRevolution
- changes:
- - message: Added lunchboxes to various staff lockers
- type: Add
- id: 290
- time: '2024-03-21T18:46:44.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/989
-- author: Velcroboy
- changes:
- - message: Reverted AME buff. AME will require more than 1 core again to function
- properly.
- type: Tweak
- id: 291
- time: '2024-03-23T00:16:26.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/996
-- author: NullWanderer
- changes:
- - message: The maximum amount of unwhitelist players on Periapsis has been increased
- to 35 until this can be properly re-evaluated.
- type: Tweak
- id: 292
- time: '2024-03-24T16:03:52.018326+00:00'
- url: null
-- author: FluffiestFloof
- changes:
- - message: Changed lunchbox size.
- type: Tweak
- id: 293
- time: '2024-03-25T15:13:19.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/998
-- author: UnicornOnLSD
- changes:
- - message: tortuga's cryogenics adjusted not to be of harm to patients
- type: Fix
- id: 294
- time: '2024-03-25T16:21:20.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1003
-- author: NullWanderer
- changes:
- - message: Periapsis whitelist has now been completely disabled
- type: Remove
- id: 295
- time: '2024-03-27T08:05:10.761803+00:00'
- url: null
-- author: rosieposieeee
- changes:
- - message: Total re-make of Submarine's engineering department. Goodbye, AME!
- type: Tweak
- id: 296
- time: '2024-03-27T16:57:09.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/988
-- author: NullWanderer
- changes:
- - message: Merged master, please report any bugs
- type: Add
- id: 297
- time: '2024-03-27T18:23:58.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1000
-- author: deltanedas
- changes:
- - message: Reworked Submarine's atmos, notably the TEG is now good, easy to set
- up and has a guide next to it.
- type: Tweak
- id: 298
- time: '2024-03-28T15:27:57.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1022
-- author: FluffiestFloof
- changes:
- - message: Felinids, Harpies and Vulpkanin should now Weh accordingly.
- type: Fix
- id: 299
- time: '2024-03-28T18:27:42.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/992
-- author: deltanedas
- changes:
- - message: Reworked Shoukou's atmospherics setup. The Gas Recycler is now usable
- among other things.
- type: Tweak
- id: 300
- time: '2024-04-03T02:10:51.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1049
-- author: rosieposieeee
- changes:
- - message: Submarine has, once again, had some minor issues quashed, and small improvements
- made. Go check out the park!
- type: Tweak
- id: 301
- time: '2024-04-03T19:44:14.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1053
-- author: NullWanderer
- changes:
- - message: Merged master, please report bugs or regressions
- type: Add
- - message: Mail containing books has been temporarily removed
- type: Remove
- id: 302
- time: '2024-04-09T07:49:38.080075+00:00'
- url: null
-- author: deltanedas
- changes:
- - message: Lighthouse is BACK!
- type: Add
- id: 303
- time: '2024-04-09T07:49:38.080495+00:00'
- url: null
-- author: Adrian16199
- changes:
- - message: Added new horn designs for onis.
- type: Add
- id: 304
- time: '2024-04-09T07:49:38.080864+00:00'
- url: null
-- author: FluffiestFloof
- changes:
- - message: Fixed our custom drinks not having different fill levels.
- type: Fix
- id: 305
- time: '2024-04-09T07:49:38.081255+00:00'
- url: null
-- author: rosieposieeee
- changes:
- - message: Added breaching charges to the sectech for officers.
- type: Add
- id: 306
- time: '2024-04-10T03:11:22.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1056
-- author: Velcroboy
- changes:
- - message: Fixed shuttle wall deconstruction causing visual glitches!
- type: Fix
- id: 307
- time: '2024-04-10T03:12:36.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1069
-- author: NullWanderer
- changes:
- - message: Fixed the spare ID safe being destructible
- type: Fix
- id: 308
- time: '2024-04-11T12:47:31.0000000+00:00'
- url: https://github.com/DeltaV-Station/Delta-v/pull/1078
- author: Velcroboy
changes:
- message: Changed asteroids to have more ore...and some danger
@@ -3817,3 +3598,232 @@
id: 778
time: '2024-12-17T04:45:41.0000000+00:00'
url: https://github.com/DeltaV-Station/Delta-v/pull/2389
+- author: BarryNorfolk
+ changes:
+ - message: Added atmospherics computer board to t1 research and enabled fabrication
+ type: Tweak
+ id: 779
+ time: '2024-12-17T08:49:06.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2452
+- author: JustAnOrange, Radezolid
+ changes:
+ - message: Added Interdyne chemistry clothes, obtain them at your nearest hacked
+ ChemDrobe!
+ type: Add
+ id: 780
+ time: '2024-12-17T12:41:05.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2355
+- author: rosieposieeee
+ changes:
+ - message: Added flower bushes.
+ type: Add
+ id: 781
+ time: '2024-12-17T12:48:43.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2382
+- author: rosieposieeee
+ changes:
+ - message: Added wooden barrels and wooden kegs.
+ type: Add
+ id: 782
+ time: '2024-12-17T12:49:40.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2378
+- author: deltanedas
+ changes:
+ - message: Plasma and diamonds are more abundant on lavaland.
+ type: Tweak
+ id: 783
+ time: '2024-12-17T18:17:41.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2441
+- author: BlitzTheSquishy & Yuukitten
+ changes:
+ - message: Brand new drink from the people that brought you Dr. Gibb, Dr Gibb Blood-Red!
+ In a Dr. Gibb vendor near you!
+ type: Add
+ id: 784
+ time: '2024-12-18T01:12:44.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2250
+- author: Stop-Signs
+ changes:
+ - message: A new loadout is available in the fugitives stash
+ type: Add
+ id: 785
+ time: '2024-12-18T01:26:19.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2374
+- author: deltanedas
+ changes:
+ - message: Ash storms can now happen on lavaland, run for shelter if you get caught
+ in one!
+ type: Add
+ id: 786
+ time: '2024-12-18T01:27:23.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2445
+- author: paige404
+ changes:
+ - message: Rodentia with bat snouts now look correct no matter their facing.
+ type: Fix
+ id: 787
+ time: '2024-12-18T07:03:37.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2470
+- author: deltanedas
+ changes:
+ - message: Fixed not being able to throw felenids...
+ type: Fix
+ id: 788
+ time: '2024-12-18T11:22:19.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2466
+- author: Hell_Cat, deltanedas
+ changes:
+ - message: Ore bag magnet can now be turned on without being worn as a belt. Mining
+ borgs rejoice!
+ type: Tweak
+ id: 789
+ time: '2024-12-18T11:33:37.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2467
+- author: BarryNorfolk
+ changes:
+ - message: Added a history tab to the bounty computer, showing all past completed
+ and skipped orders (and who skipped them).
+ type: Add
+ id: 790
+ time: '2024-12-18T13:36:06.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2473
+- author: deltanedas
+ changes:
+ - message: Made the ore box hold much more ore.
+ type: Tweak
+ id: 791
+ time: '2024-12-19T03:10:43.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2468
+- author: Radezolid
+ changes:
+ - message: Prison guards now have External access.
+ type: Tweak
+ id: 792
+ time: '2024-12-19T03:19:52.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2476
+- author: Radezolid
+ changes:
+ - message: Paramedics void helmets now come with a flashlight attached for better
+ search and rescue.
+ type: Tweak
+ id: 793
+ time: '2024-12-19T03:32:16.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2343
+- author: Stop-Signs
+ changes:
+ - message: I.C.E.E, a laser that deals cold, is now available for epi to research
+ type: Add
+ id: 794
+ time: '2024-12-19T03:34:10.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2170
+- author: deltanedas
+ changes:
+ - message: Psionic discharges now trigger metapsionic artifacts.
+ type: Tweak
+ id: 795
+ time: '2024-12-19T03:43:18.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2440
+- author: SolStar, chamomileteatime
+ changes:
+ - message: 'New psionic ability: Precognition - See into the future to get a hint
+ about the next random event.'
+ type: Add
+ id: 796
+ time: '2024-12-19T03:55:15.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2131
+- author: Radezolid
+ changes:
+ - message: Added a prisoner's knife, it's purpose is of a tool and it's damage is
+ minimal
+ type: Add
+ id: 797
+ time: '2024-12-19T04:55:03.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2304
+- author: deltanedas
+ changes:
+ - message: Pulling wrecks on the salvage magnet now costs mining points. GO MINE!!!
+ type: Tweak
+ id: 798
+ time: '2024-12-20T05:28:43.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2457
+- author: makyo
+ changes:
+ - message: round restart time
+ type: Tweak
+ id: 799
+ time: '2024-12-20T05:31:37.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2229
+- author: deltanedas
+ changes:
+ - message: Removed vent fauna (spiders, slimes, snakes) events pending rework.
+ type: Remove
+ id: 800
+ time: '2024-12-20T05:34:54.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2474
+- author: deltanedas
+ changes:
+ - message: Changed Salvage Weapons to be a tier 2 tech, Experimental Salvage Weaponry.
+ type: Tweak
+ - message: Crusher weapons are researchable again, PKA is roundstart.
+ type: Tweak
+ - message: Added the Fauna Protection Module for borgs, it has a PKA and crusher
+ dagger.
+ type: Add
+ id: 801
+ time: '2024-12-20T05:38:08.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2077
+- author: Stop-Signs
+ changes:
+ - message: sleepers will no longer receive nukies as kill targets
+ type: Fix
+ id: 802
+ time: '2024-12-20T17:22:58.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2483
+- author: alterae
+ changes:
+ - message: Added coats, hats, scarves, and shoes to the Psychologist's loadout options.
+ type: Add
+ - message: Added three new Psychologist job titles.
+ type: Add
+ - message: Psychologist now spawns with a folder.
+ type: Tweak
+ id: 803
+ time: '2024-12-20T18:49:04.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2459
+- author: Lyndomen
+ changes:
+ - message: Vent critters are back, thanks for your feedback!
+ type: Tweak
+ id: 804
+ time: '2024-12-21T06:29:07.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2491
+- author: Radezolid
+ changes:
+ - message: The E-Shield now has a 50% reflect chance but it's durability is 3 times
+ bigger.
+ type: Tweak
+ id: 805
+ time: '2024-12-21T11:02:52.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2252
+- author: deltanedas
+ changes:
+ - message: Fixed ash storms not doing damage.
+ type: Fix
+ id: 806
+ time: '2024-12-21T13:51:06.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2497
+- author: beck-thompson
+ changes:
+ - message: 'New traitor objective: Kill fellow traitor. It is rare!'
+ type: Add
+ id: 807
+ time: '2024-12-21T13:51:53.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2488
+- author: deltanedas
+ changes:
+ - message: You can now directly dump ore bags into ore processors by clicking on
+ them.
+ type: Tweak
+ id: 808
+ time: '2024-12-22T08:52:18.0000000+00:00'
+ url: https://github.com/DeltaV-Station/Delta-v/pull/2469
diff --git a/Resources/ConfigPresets/DeltaV/horizon.toml b/Resources/ConfigPresets/DeltaV/horizon.toml
index 96fc9aeb5b8..5ba5501c2e0 100644
--- a/Resources/ConfigPresets/DeltaV/horizon.toml
+++ b/Resources/ConfigPresets/DeltaV/horizon.toml
@@ -1,6 +1,7 @@
[game]
-hostname = "[EN][MRP] Delta-v (Ψ) | Horizon [US East 3]"
-soft_max_players = 80
+hostname = "[EN][MRP] Delta-v (Ψ) | Horizon [US East 3]"
+soft_max_players = 80
+round_restart_time = 300
[vote]
preset_enabled = true
diff --git a/Resources/ConfigPresets/DeltaV/periapsis.toml b/Resources/ConfigPresets/DeltaV/periapsis.toml
index 77ea036dc76..172ba3cc63f 100644
--- a/Resources/ConfigPresets/DeltaV/periapsis.toml
+++ b/Resources/ConfigPresets/DeltaV/periapsis.toml
@@ -1,6 +1,7 @@
[game]
-hostname = "[EN][MRP] Delta-v (Ψ) | Periapsis [US East 2]"
-soft_max_players = 50
+hostname = "[EN][MRP] Delta-v (Ψ) | Periapsis [US East 2]"
+soft_max_players = 50
+round_restart_time = 300
[server]
rules_file = "DeltaVRuleset"
diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt
index 870f5ff37a6..6703570add0 100644
--- a/Resources/Credits/GitHub.txt
+++ b/Resources/Credits/GitHub.txt
@@ -1 +1 @@
-0x6273, 12rabbits, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 3nderall, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Ady4ik, Aerocrux, Aeshus, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, aiden, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, ALMv1, Alpha-Two, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, AndreyCamper, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, ArkiveDev, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, AruMoon, ArZarLordOfMango, as334, AsikKEsel, AsnDen, asperger-sind, aspiringLich, astriloqua, august-sun, AutoOtter, Avalon-Proto, avghdev, Awlod, azzy, AzzyIsNotHere, BackeTako, BananaFlambe, Baptr0b0t, BasedPugilist, BasedUser, Batuh1n, beck-thompson, BellwetherLogic, benev0, benjamin-burges, BGare, bhespiritu, BIGZi0348, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, BlitzTheSquishy, bloodrizer, Bloody2372, blueDev2, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, Boolean-Buckeye, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, buntobaggins, bvelliquette, byondfuckery, c0rigin, c4llv07e, CaasGit, Caconym27, Calecute, Callmore, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, Catofquestionableethics, CatTheSystem, Centronias, chairbender, Charlese2, charlie, ChaseFlorom, chavonadelal, Cheackraze, CheddaCheez, cheesePizza2, cheeseplated, Chief-Engineer, chillyconmor, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, Ciac32, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, cohanna, Cohnway, Cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, CookieMasterT, coolboy911, coolmankid12345, Coolsurf6, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, cutemoongod, Cyberboss, d34d10cc, dabigoose, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, de0rix, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, Deatherd, deathride58, DebugOk, Decappi, Decortex, Deeeeja, deepdarkdepths, DefinitelyNotFurryXD, degradka, Delete69, deltanedas, DeltaV-Bot, DenisShvalov, DerbyX, derek, dersheppard, Deserty0, Detintinto, DevilishMilk, dexlerxd, dffdff2423, dge21, DieselMohawk, digitalic, Dimastra, DinoWattz, DisposableCrewmember42, DjfjdfofdjfjD, doc-michael, docnite, Doctor-Cpu, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, dotcatshark, DoubleRiceEddiedd, DoutorWhite, dragonryan06, drakewill-CRL, Drayff, dreamlyjack, DrEnzyme, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, duskyjay, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Elysium206, Emily9031, Emisse, emmafornash, EmoGarbage404, Endecc, eoineoineoin, eris, erohrs2, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, Eternally-Confused, eugene, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, FATFSAAM2, Feluk6174, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, firenamefn, FirinMaLazors, Fishfish458, FL-OZ, Flareguy, flashgnash, FluffiestFloof, FluffMe, FluidRock, flyingkarii, foboscheshir, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FryOfDestiny, FungiFellow, FunTust, Futuristic-OK, GalacticChimp, gamer3107, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, Git-Nivrak, githubuser508, gituhabu, GlassEclipse, GNF54, godisdeadLOL, goet, Goldminermac, Golinth, GoodWheatley, Gorox221, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, Gyrandola, h3half, Haltell, Hanzdegloker, HappyRoach, Hardly3D, harikattar, HawkeyeBlade, he1acdvv, Hebi, Henry, HerCoyote23, HighTechPuddle, hitomishirichan, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, Hreno, htmlsystem, hubismal, Hugal31, Huxellberger, Hyenh, hyphenationc, i-justuser-i, iacore, iamnotgray, IamVelcroboy, ian, icekot8, icesickleone, iczero, iglov, IgorAnt028, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, imrenq, imweax, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, itsmethom, Itzbenz, iztokbajcar, Jackal298, Jackrost, jacksonzck, Jackw2As, jacob, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, jerryimmouse, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, jimmy12or, JIPDawg, jjtParadox, jmcb, JoeHammad1844, JohnGinnane, johnku1, Jophire, joshepvodka, Jrpl, juliangiebel, JustArt1m, JustCone14, justdie12, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, Kaga-404, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, katzenminer, kbailey-git, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kirus59, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, kokoc9n, komunre, KonstantinAngelov, kosticia, koteq, Kr8art, KrasnoshchekovPavel, Krunklehorn, Kupie, Kurzaen, kxvvv, kyupolaris, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonidussaks, leonsfriedrich, LetterN, lettern, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, lgruthes, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, LittleNyanCat, lizelive, lleftTheDragon, localcc, lokachop, Lomcastar, LordCarve, LordEclipse, lucas, LucasTheDrgn, luckyshotpictures, LudwigVonChesterfield, luizwritescode, Lukasz825700516, luminight, lunarcomets, luringens, lvvova1, Lyndomen, lyroth001, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, manelnavola, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, maylokana, MehimoNemo, MeltedPixel, MemeProof, memoblob, MendaxxDev, Menshin, Mephisto72, MerrytheManokit, Mervill, metalgearsloth, MetalSage, MFMessage, mhamsterr, michaelcu, micheel665, MilenVolf, MilonPL, Minemoder5000, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MissKay1994, MisterMecky, Mith-randalf, MjrLandWhale, mkanke-real, MLGTASTICa, mnemotechnician, moderatelyaware, modern-nm, mokiros, Moneyl, Monotheonist, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, mrrobdemo, muburu, MureixloI, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, NakataRin, namespace-Memory, Nannek, NazrinNya, neutrino-laser, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, noelkathegod, nok-ko, NonchalantNoob, NoobyLegion, Nopey, not-gavnaed, notafet, notquitehadouken, notsodana, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, NullWanderer, nyeogmi, Nylux, Nyranu, och-och, ocotheomega, OctoRocket, OldDanceJacket, OnyxTheBrave, OrangeMoronage9622, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, packmore, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, peccneck, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Pgriha, Phantom-Lily, PHCodes, pheenty, Phill101, phunnyguy, PilgrimViis, Pill-U, Pireax, pissdemon, PixeltheAertistContrib, PixelTheKermit, PJB3005, Plasmaguy, plinyvic, Plykiya, pofitlo, pointer-to-null, pok27, poklj, PolterTzi, PoorMansDreams, PopGamer45, portfiend, potato1234x, PotentiallyTom, PPooch, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QueerNB, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, Ramlik, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redfire1331, Redict, RedlineTriad, redmushie, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, rinary1, Rinkashikachi, riolume, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, Roudenn, router, RumiTiger, S1rFl0, S1ss3l, Saakra, Sadie-silly, saga3152, saintmuntzer, Salex08, sam, samgithubaccount, Samsterious, SaphireLattice, SapphicOverload, sarahon, sativaleanne, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, scrato, Scribbles0, scrivoy, scruq445, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, sh18rw, Shaddap1, ShadeAware, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, Slyfox333, snebl, sniperchance, Snowni, snowsignal, solaris7518, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, Soydium, SpaceLizardSky, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, SpeltIncorrectyl, Spessmann, SphiraI, SplinterGP, spoogemonster, sporekto, sporkyz, Squishy77, SsalamethVersaach, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stomf, Stop-Signs, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, strO0pwafel, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, Tainakov, takemysoult, TaralGit, Taran, taurie, Tayrtahn, tday93, teamaki, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, ThataKat, ThatOneGoblin25, thatrandomcanadianguy, TheArturZh, theashtronaut, thecopbennet, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TheOneWhoIsManyFrame, TherapyGoth, therealDLondon, TheShuEd, thetolbean, thevinter, TheWaffleJesus, Thinbug0, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, timurjavid, tin-man-tim, Titian3, tk-a369, tkdrg, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, Toly65, tom-leys, tomasalves8, Tomce795, Tomeno, Tonydatguy, topy, Tornado-Technology, tosatur, TotallyLemon, Tr1bute, tropicalhibi, truepaintgit, Truoizys, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, tyashley, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, Unisol, Unkn0wnGh0st333, unusualcrow, Uriende, UristMcDorf, user424242420, Vaaankas, valentfingerov, Varen, Vasilis, VasilisThePikachu, Velcroboy, veliebm, VelonacepsCalyxEggs, venn, veprolet, veritable-calamity, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, vitalvitriol, VMSolidus, voidnull000, volotomite, volundr-, Voomra, Vordenburg, vorkathbruh, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, wtcwr68, xkreksx, xprospero, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, youtissoum, yunii, yuriykiss, YuriyKiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zero, ZeroDiamond, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, zonespace27, ZweiHawke, Zylofan, Zymem, zzylex
+0tito, 0x6273, 12rabbits, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 3nderall, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, ActiveMammmoth, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Ady4ik, Aerocrux, Aeshus, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, aiden, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexum418, alexumandxgabriel08x, Alithsko, ALMv1, Alpha-Two, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, AndreyCamper, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, ArkiveDev, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, AruMoon, ArZarLordOfMango, as334, AsikKEsel, AsnDen, asperger-sind, aspiringLich, astriloqua, august-sun, AutoOtter, Avalon-Proto, avghdev, Awlod, azzy, AzzyIsNotHere, BackeTako, BananaFlambe, Baptr0b0t, BarryNorfolk, BasedPugilist, BasedUser, Batuh1n, beck-thompson, BellwetherLogic, ben, benev0, benjamin-burges, BGare, bhespiritu, BIGZi0348, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, BlitzTheSquishy, bloodrizer, Bloody2372, blueDev2, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, boogiebogus, Boolean-Buckeye, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, buntobaggins, bvelliquette, byondfuckery, c0rigin, c4llv07e, CaasGit, Caconym27, Calecute, Callmore, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, Catofquestionableethics, CatTheSystem, Centronias, chairbender, Charlese2, charlie, ChaseFlorom, chavonadelal, Cheackraze, CheddaCheez, cheesePizza2, cheeseplated, Chief-Engineer, chillyconmor, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, Ciac32, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, cohanna, Cohnway, Cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, CookieMasterT, coolboy911, coolmankid12345, Coolsurf6, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, cutemoongod, Cyberboss, d34d10cc, dabigoose, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, de0rix, Deahaka, dean, DEATHB4DEFEAT, Deatherd, deathride58, DebugOk, Decappi, Decortex, Deeeeja, deepdarkdepths, DefinitelyNotFurryXD, degradka, Delete69, deltanedas, DeltaV-Bot, DenisShvalov, DerbyX, derek, dersheppard, Deserty0, Detintinto, DevilishMilk, dexlerxd, dffdff2423, dge21, DieselMohawk, digitalic, Dimastra, DinoWattz, DisposableCrewmember42, DjfjdfofdjfjD, doc-michael, docnite, Doctor-Cpu, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, dotcatshark, DoubleRiceEddiedd, DoutorWhite, dragonryan06, drakewill-CRL, Drayff, dreamlyjack, DrEnzyme, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, duskyjay, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, echo, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Elysium206, Emily9031, Emisse, emmafornash, EmoGarbage404, Endecc, eoineoineoin, eris, erohrs2, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, Eternally-Confused, eugene, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, FATFSAAM2, Feluk6174, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, firenamefn, FirinMaLazors, Fishfish458, FL-OZ, Flareguy, flashgnash, FluffiestFloof, FluffMe, FluidRock, flyingkarii, foboscheshir, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FryOfDestiny, FungiFellow, FunTust, Futuristic-OK, GalacticChimp, gamer3107, gansulalan, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, Git-Nivrak, githubuser508, gituhabu, GlassEclipse, GNF54, godisdeadLOL, goet, Goldminermac, Golinth, GoodWheatley, Gorox221, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, Gyrandola, h3half, Haltell, Hanzdegloker, HappyRoach, Hardly3D, harikattar, HawkeyeBlade, he1acdvv, Hebi, Henry, HerCoyote23, HighTechPuddle, hitomishirichan, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, Hreno, htmlsystem, hubismal, Hugal31, Huxellberger, Hyenh, hyphenationc, i-justuser-i, iacore, iamnotgray, IamVelcroboy, ian, icekot8, icesickleone, iczero, iglov, IgorAnt028, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, imrenq, imweax, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, itsmethom, Itzbenz, iztokbajcar, Jackal298, Jackrost, jacksonzck, Jackw2As, jacob, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, JerryImMouse, jerryimmouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, jimmy12or, JIPDawg, jjtParadox, jmcb, JoeHammad1844, JohnGinnane, johnku1, Jophire, joshepvodka, Jrpl, juliangiebel, JustArt1m, JustCone14, justdie12, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, Kaga-404, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, katzenminer, kbailey-git, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kirus59, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, kokoc9n, komunre, KonstantinAngelov, kosticia, koteq, Kr8art, KrasnoshchekovPavel, Krunklehorn, Kupie, Kurzaen, kxvvv, kyupolaris, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonidussaks, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, lgruthes, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, LittleNyanCat, lizelive, lleftTheDragon, localcc, lokachop, Lomcastar, LordCarve, LordEclipse, lucas, LucasTheDrgn, luckyshotpictures, LudwigVonChesterfield, luizwritescode, Lukasz825700516, luminight, lunarcomets, luringens, lvvova1, Lyndomen, lyroth001, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, manelnavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, maylokana, MehimoNemo, MeltedPixel, MemeProof, memoblob, MendaxxDev, Menshin, Mephisto72, MerrytheManokit, Mervill, metalgearsloth, MetalSage, MFMessage, mhamsterr, michaelcu, micheel665, mifia, MilenVolf, MilonPL, Minemoder5000, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MissKay1994, MisterMecky, Mith-randalf, MjrLandWhale, mkanke-real, MLGTASTICa, mnemotechnician, moderatelyaware, modern-nm, mokiros, Moneyl, Monotheonist, Moomoobeef, moony, Morb0, MossyGreySlope, mr-bo-jangles, Mr0maks, MrFippik, mrrobdemo, muburu, MureixloI, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, NakataRin, namespace-Memory, Nannek, NazrinNya, neutrino-laser, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, noelkathegod, nok-ko, NonchalantNoob, NoobyLegion, Nopey, not-gavnaed, notafet, notquitehadouken, notsodana, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, NullWanderer, nyeogmi, Nylux, Nyranu, och-och, ocotheomega, OctoRocket, OldDanceJacket, OnyxTheBrave, OrangeMoronage9622, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, packmore, paige404, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, peccneck, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Pgriha, Phantom-Lily, PHCodes, pheenty, Phill101, phunnyguy, PilgrimViis, Pill-U, Piras314, Pireax, pissdemon, PixeltheAertistContrib, PixelTheKermit, PJB3005, Plasmaguy, plinyvic, Plykiya, pofitlo, pointer-to-null, pok27, poklj, PolterTzi, PoorMansDreams, PopGamer45, portfiend, potato1234x, PotentiallyTom, PPooch, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QueerNB, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, Ramlik, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, RedBookcase, Redfire1331, Redict, RedlineTriad, redmushie, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, rinary1, Rinkashikachi, riolume, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, Roudenn, router, RumiTiger, S1rFl0, S1ss3l, Saakra, Sadie-silly, saga3152, saintmuntzer, Salex08, sam, samgithubaccount, SaphireLattice, SapphicOverload, sarahon, sativaleanne, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, schrodinger71, scrato, Scribbles0, scrivoy, scruq445, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, sh18rw, Shaddap1, ShadeAware, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, Slyfox333, snebl, sniperchance, Snowni, snowsignal, solaris7518, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, Soydium, SpaceLizardSky, SpaceManiac, SpaceRox1244, SpaceyLady, Spanky, spartak, SpartanKadence, SpeltIncorrectyl, Spessmann, SphiraI, SplinterGP, spoogemonster, sporekto, sporkyz, Squishy77, SsalamethVersaach, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stomf, Stop-Signs, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, strO0pwafel, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, Tainakov, takemysoult, tap, TaralGit, Taran, taurie, Tayrtahn, tday93, teamaki, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, ThataKat, ThatGuyUSA, ThatOneGoblin25, thatrandomcanadianguy, TheArturZh, theashtronaut, thecopbennet, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TheOneWhoIsManyFrame, TherapyGoth, therealDLondon, TheShuEd, thetolbean, thevinter, TheWaffleJesus, Thinbug0, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, timurjavid, tin-man-tim, Titian3, tk-a369, tkdrg, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, Toly65, tom-leys, tomasalves8, Tomce795, Tomeno, Tonydatguy, topy, Tornado-Technology, tosatur, TotallyLemon, Tr1bute, tropicalhibi, truepaintgit, Truoizys, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, tyashley, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, Unisol, Unkn0wnGh0st333, unusualcrow, Uriende, UristMcDorf, user424242420, Vaaankas, valentfingerov, Varen, Vasilis, VasilisThePikachu, Velcroboy, veliebm, VelonacepsCalyxEggs, venn, veprolet, veritable-calamity, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, vitalvitriol, vlados1408, VMSolidus, voidnull000, volotomite, volundr-, Voomra, Vordenburg, vorkathbruh, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, widgetbeck, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, wtcwr68, xkreksx, xprospero, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, youtissoum, yunii, YuriyKiss, yuriykiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zero, ZeroDiamond, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, zonespace27, ZweiHawke, Zylofan, Zymem, zzylex
diff --git a/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl b/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl
index 4314cbf4496..4d849c5bdab 100644
--- a/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl
+++ b/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl
@@ -18,3 +18,10 @@ bounty-console-flavor-right = v1.4
bounty-manifest-header = [font size=14][bold]Official cargo bounty manifest[/bold] (ID#{$id})[/font]
bounty-manifest-list-start = Item manifest:
+
+bounty-console-tab-available-label = Available
+bounty-console-tab-history-label = History
+bounty-console-history-notice-completed-label = {$time} - Completed
+bounty-console-history-notice-skipped-label = {$time} - Skipped by {$id}
+bounty-console-history-completed-label = [color=limegreen]Completed[/color]
+bounty-console-history-skipped-label = [color=red]Skipped[/color]
diff --git a/Resources/Locale/en-US/deltav/abilities/psionic.ftl b/Resources/Locale/en-US/deltav/abilities/psionic.ftl
new file mode 100644
index 00000000000..677c0b19def
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/abilities/psionic.ftl
@@ -0,0 +1,46 @@
+psionic-power-precognition-failure-by-damage = Your concentration was broken! You fail to decipher anything of use.
+psionic-power-precognition-no-event-result-message = You see a vision of an undisturbed lake.
+
+psionic-power-precognition-xeno-vents-result-message = You see a vision, peering around a corner you see a strange, squelching beast tear at the insides of one of your coworkers as they let out a bloodcurdling scream.
+psionic-power-precognition-mothroach-spawn-result-message = You see a hungering mass of newborns, chittering and screeching as they sink their mandibles into the station's knitwork.
+psionic-power-precognition-listening-post-result-message = you hear a cacophony of foreign voices speaking over radio static; you wake with a creeping sense of paranoia.
+psionic-power-precognition-paradox-anomaly-result-message = You see your coworker splitting in two. Where there was one, there are now two. You are unsure which of the beings is truly your coworker.
+psionic-power-precognition-fugitive-result-message = You see hounds around every corner all hunting for someone who does not belong.
+psionic-power-precognition-syndicate-recruiter-result-message = You see someone cutting ties on a chain-link fence and reforging its now disparate parts under a new oath of blood.
+psionic-power-precognition-synthesis-specialist-result-message = You smell a dangerous mixture of chemicals in the air; the distant sound of a small plasma engine roars to life.
+psionic-power-precognition-cargo-gifts-base-result-message = You see a vision of yourself, gathered for a time-old tradition of receiving gifts. You didn't ask for these, but you must pretend to appreciate nonetheless.
+psionic-power-precognition-anomoly-spawn-result-message = You attempt to look forward, but the future is distorted by a blast of noöspheric energies converging on a single point.
+psionic-power-precognition-bluespace-artifact-result-message = You attempt to look forward but are blinded by noöspheric energies coalescing into an object beyond comprehension.
+psionic-power-precognition-bluespace-locker-result-message = You attempt to look forward, but the noösphere seems distorted by a constantly shifting bluespace energy.
+psionic-power-precognition-breaker-flip-result-message = You see torches snuff around you and keepers rekindling the lost flames.
+psionic-power-precognition-bureaucratic-error-result-message = You see a vision of yourself trapped in a room, trying to solve a puzzle with both missing and duplicate pieces.
+psionic-power-precognition-clerical-error-result-message = You see faces you once knew being obscured in a fog of static, identities lost.
+psionic-power-precognition-closet-skeleton-result-message = You hear a crackling laugh echo and clinking bones in the dusty recesses of the station.
+psionic-power-precognition-dragon-spawn-result-message = Reality around you bulges and breaks as a great beast cries for war. The smell of salty sea and blood fills the air.
+psionic-power-precognition-ninja-spawn-result-message = You see a vision of shadows brought to life, hounds of war howling their cries as they chase it through dark corners of the station.
+psionic-power-precognition-revenant-spawn-result-message = The shadows around you grow threefold taller and threefold darker. Something lurks within them, a predator stalking you in the darkness.
+psionic-power-precognition-gas-leak-result-message = For but a moment, it feels as if you cannot breathe. With a blink, everything returns to normal.
+psionic-power-precognition-kudzu-growth-result-message = Leaves and vines pierce through the dusty tiles of the station, crawling about your ankles, trying to drag you down with them.
+psionic-power-precognition-power-grid-check-result-message = You see torches snuff around you only to spontaneously ignite moments later.
+psionic-power-precognition-solar-flare-result-message = The stars look beautiful tonight, shrinking and growing and shooting great bolts like fireworks into the sky.
+psionic-power-precognition-vent-clog-result-message = You smell something horrific on the artificial breeze of the station, for a moment your eyes fill with fog. When you blink it away, the smell is gone.
+psionic-power-precognition-slimes-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. Soft squelches and bubbling howls accompany the call.
+psionic-power-precognition-snake-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. The sounds of hissing growls accompany the call.
+psionic-power-precognition-spider-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. A symphony of clicks and chitters accompanies the call.
+psionic-power-precognition-spider-clown-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. An unholy mass of honks accompanies the call.
+psionic-power-precognition-zombie-outbreak-result-message = Your coworker lies on the cold ground before you; skull ripped open, eyes blank. You think you see the body twitch.
+psionic-power-precognition-lone-ops-spawn-result-message = You see a vision of a beast with a blood-red carapace, laughing as it eats through the station, bite by bite.
+psionic-power-precognition-sleeper-agents-result-message = You see a vision of life through the eyes of a non-descript coworker, a soft but dangerous buzzing accompanies you at the base of their skull. It sounds like radio static.
+psionic-power-precognition-mass-hallucinations-result-message = You attempt to see a vision of the future, but all you see is a phantasmagoria of chaotic shapes.
+psionic-power-precognition-ion-storm-result-message = You see a vision of the rigid being destroyed and reshaped into something new and wrong.
+psionic-power-precognition-meteor-swarm-result-message = You see a fiery vision of shooting stars falling from the sky, colorful trails shooting through the station you call home.
+psionic-power-precognition-game-rule-urist-swarm-result-message = You see a fiery vision of... PEOPLE falling from the sky! colorful trails shooting through the station you call home.
+psionic-power-precognition-immovable-rod-spawn-result-message = You see a fiery vision of a MASSIVE star falling from the sky! colorful trails shooting through the station you call home.
+psionic-power-precognition-mouse-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension.
+psionic-power-precognition-king-rat-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension.
+psionic-power-precognition-cockroach-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension.
+psionic-power-precognition-snail-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension.
+psionic-power-precognition-random-sentience-result-message = Something bright and beautiful sparks to life within your third eye. Nothing brings wonder quite like new life.
+psionic-power-precognition-unknown-shuttle-cargo-lost-result-message = You see a vision of a simple ship of old Terra, adrift of the sea, far away from home.
+psionic-power-precognition-unknown-shuttle-traveling-cuisine-result-message = You see a vision of peace, a cozy meal sizzling on a warm stove. A delicious smells wafts through the air.
+psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message = You see a vision of death and blood, of a destruction so complete only few survive, drifting through the coldness of space.
diff --git a/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl
index 6c93c98ed3c..c324675f688 100644
--- a/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl
+++ b/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl
@@ -29,6 +29,54 @@ flavor-complex-blellow = like an impossible color
flavor-complex-candy-strawberry = like strawberries
flavor-complex-candy-bubblegum = like bubble gum
flavor-complex-double-ice-cream = like ice cream, twice
+flavor-complex-drgibbbloodred = like severe malpractice
+
+## Delta-V additional drink flavors
+flavor-complex-absinthe = like green death
+flavor-complex-blue-curacao = like fermented oranges
+flavor-complex-deadrum = like a botched murder
+flavor-complex-n-t-cahors = five hundred dollars too expensive
+flavor-complex-poison-wine = like a dark velvet
+flavor-complex-acidspit = like stomach acid
+flavor-complex-allies-cocktail = like wartime camaraderie
+flavor-complex-amasec = like a smoking gun
+flavor-complex-andalusia = like summer
+flavor-complex-b52 = like a nuclear arms race
+flavor-complex-bahama-mama = like a tropical vacation
+flavor-complex-barefoot = like berry-picking, but without the shoes
+flavor-complex-booger = like no one is watching
+flavor-complex-brave-bull = like you're seeing red
+flavor-complex-demons-blood = like brimstone
+flavor-complex-devils-kiss = like temptation
+flavor-complex-doctors-delight = like a medical miracle
+flavor-complex-driest-martini = like a dry sense of humor
+flavor-complex-erika-surprise = like a green dream, perfect for a warm day
+flavor-complex-gin-fizz = like a fizzy lemon
+flavor-complex-gildlager = like a spicy secret told over spring break
+flavor-complex-grog = like a day on the high seas
+flavor-complex-hippies-delight = like, totally trippy, man
+flavor-complex-hooch = like homemade firewater
+flavor-complex-irish-cream = like whiskey and cream
+flavor-complex-kira-special = kawaii
+flavor-complex-manhattan = dark and mysterious
+flavor-complex-manhattan-project = like two minutes to midnight
+flavor-complex-margarita = like a paradise in space
+flavor-complex-martini = like a sense of humor
+flavor-complex-mojito = minty fresh, and a little sweet
+flavor-complex-neurotoxin = like a trip to the ER
+flavor-complex-patron = like luxury
+flavor-complex-red-mead = like fermented honey with a splash of blood
+flavor-complex-rewriter = like an all-nighter
+flavor-complex-sbiten = like you'll need a glass of milk
+flavor-complex-silencer = like a broken vow
+flavor-complex-snow-white = like a mistake
+flavor-complex-sui-dream = like a fruit salad, perfect for the working lady
+flavor-complex-syndicate-bomb = like it will blow your mind
+flavor-complex-toxins-special = like a plasma fire
+flavor-complex-vodka-martini = shaken, not stirred
+flavor-complex-vodka-tonic = like depression in denial
+flavor-complex-kvass = like bread tossed into a blender
+flavor-complex-mothamphetamine = like there are buzzing wings in your mouth
candy-flavor-profile = This one is supposed to taste {$flavor}.
candy-flavor-profile-multiple = This one is supposed to taste {$flavors} and {$lastFlavor}.
diff --git a/Resources/Locale/en-US/deltav/fugitive/sets.ftl b/Resources/Locale/en-US/deltav/fugitive/sets.ftl
index bc1361dc352..e353fd38de7 100644
--- a/Resources/Locale/en-US/deltav/fugitive/sets.ftl
+++ b/Resources/Locale/en-US/deltav/fugitive/sets.ftl
@@ -22,3 +22,8 @@ fugitive-set-infiltrator-name = infiltrator's kit
fugitive-set-infiltrator-description =
Use an Agent ID to steal access from others and go anywhere.
Your freedom implanter can be used as a plan B if all else fails.
+
+fugitive-set-disruptor-name = disruptor's kit
+fugitive-set-disruptor-description =
+ Hack the stations various systems and use them to your advantage.
+ Comes with a cryptographic sequencer and camera bug.
diff --git a/Resources/Locale/en-US/deltav/job/job-description.ftl b/Resources/Locale/en-US/deltav/job/job-description.ftl
index 37d9dfd5dc8..aeabcf5e533 100644
--- a/Resources/Locale/en-US/deltav/job/job-description.ftl
+++ b/Resources/Locale/en-US/deltav/job/job-description.ftl
@@ -5,3 +5,4 @@ job-description-prosecutor = Take statements from security and prepare cases aga
job-description-courier = Deliver mail and other packages from and to logistics. Avoid dogs.
job-description-security-borg = Purpose-built to ensure the right of every crew member to liberty, justice and freedom, ensure the peace aboard the space station by following your laws and patrolling the halls.
job-description-roboticist = Fabricate borgs and other robots, repair and upgrade the station's silicon life, and scream "State Laws" when the AI takes too long to open a door.
+job-description-cargo-assistant = Learn the basics of the logistics department, deliver crates and take buy orders from the rest of the station.
diff --git a/Resources/Locale/en-US/deltav/job/job-names.ftl b/Resources/Locale/en-US/deltav/job/job-names.ftl
index e08645c5ea6..9e1b5f818db 100644
--- a/Resources/Locale/en-US/deltav/job/job-names.ftl
+++ b/Resources/Locale/en-US/deltav/job/job-names.ftl
@@ -4,6 +4,7 @@ job-name-clerk = Clerk
job-name-prosecutor = Prosecutor
job-name-lawyer = Attorney
job-name-courier = Courier
+job-name-cargo-assistant = Cargo Assistant
job-name-security-borg = Security Cyborg
# Used by the Agent ID
job-name-senior-physician = Senior Physician
@@ -55,6 +56,10 @@ job-alt-title-fool = Fool
job-alt-title-hygiene-technician = Hygiene Technician
+job-alt-title-psychiatrist = Psychiatrist
+job-alt-title-social-worker = Social Worker
+job-alt-title-therapist = Therapist
+
# Role timers
JobMedicalBorg = Medical Cyborg
JobCourier = Courier
@@ -63,3 +68,4 @@ JobClerk = Clerk
JobProsecutor = Prosecutor
JobSecurityBorg = Security Cyborg
JobRoboticist = Roboticist
+JobCargoAssistant = Cargo Assistant
diff --git a/Resources/Locale/en-US/deltav/markings/moth.ftl b/Resources/Locale/en-US/deltav/markings/moth.ftl
new file mode 100644
index 00000000000..59ecbdae659
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/markings/moth.ftl
@@ -0,0 +1,6 @@
+marking-MothWingsClassicSelene = Wings (Selene, Classic)
+
+marking-MothWingsSelene-selene_primary = Primary
+marking-MothWingsSelene-selene_secondary = Secondary
+marking-MothWingsSelene-selene_tertiary = Tertiary
+marking-MothWingsSelene = Wings (Selene)
diff --git a/Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl b/Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl
new file mode 100644
index 00000000000..1d043930db6
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl
@@ -0,0 +1 @@
+objective-condition-traitor-kill-title = Kill fellow traitor {$targetName}, {CAPITALIZE($job)}
diff --git a/Resources/Locale/en-US/deltav/paper/book-salvage.ftl b/Resources/Locale/en-US/deltav/paper/book-salvage.ftl
index 1daf8bd3db0..007699f1121 100644
--- a/Resources/Locale/en-US/deltav/paper/book-salvage.ftl
+++ b/Resources/Locale/en-US/deltav/paper/book-salvage.ftl
@@ -50,3 +50,9 @@ book-text-vulpkanin = Vulpkanin for Dummies, an Exhaustive Guide
How to Kiss: Kiss
Don't Underestimate Them: Vulpkanin may look cute and cuddly, but they can be fierce fighters when provoked. Treat them with respect and avoid unnecessary conflict.
+
+book-text-gorlexgirlfriend = It's the 197th version of the infamous Gorlex Girlfriends magazine. This issue includes several pictures and interviews of multiple agents working in the syndicate alongside actors who work on the Syndicate TV show "Nukies". The best part by far was about Operative November who is the star of this edition, with her picture being on the cover.
+
+ Most of the magazine is either Syndicate propaganda or advertisements for Syndicate-branded items like soda or merch from the show. At least there are some coupons on the back for them.
+
+ On the last page is an ad for the Gorlex Girlfriends dating app... and the Gorlex Girlfriends Hotline.
diff --git a/Resources/Locale/en-US/deltav/paper/paper-misc.ftl b/Resources/Locale/en-US/deltav/paper/paper-misc.ftl
index 69b0d09c0b1..84587f30d7b 100644
--- a/Resources/Locale/en-US/deltav/paper/paper-misc.ftl
+++ b/Resources/Locale/en-US/deltav/paper/paper-misc.ftl
@@ -9,4 +9,13 @@ book-text-lunchbox-healthy = Hello Honey!
book-text-lunchbox-unhealthy = Hello Honey!
I've packed you something fun for this shift! I hope you enjoy it!!
Love you so so much,
- - Mum.
\ No newline at end of file
+ - Mum.
+book-text-subscription-notice = [head=2]Greetings loyal subscriber,[/head]
+
+ We hope you enjoy this months edition of Gorlex Girlfriends™ sponsored by the Syndicate.
+
+ With this months issue we will be heading behind the scenes with some of our famous actors working on the amazing "[color=#780606]Nukies[/color]" TV show and maybe show some teasers for next season. Read up on the personal interview with beloved Operative November as she explains the troubles of fake blood getting in her hair!
+
+ All that and more waiting for you inside!
+
+ Signing off,
diff --git a/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl b/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl
index 9d0b06d8804..d26e9e3ab02 100644
--- a/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl
+++ b/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl
@@ -49,6 +49,12 @@ loadout-group-mail-carrier-head = Mail Carrier head
loadout-group-mail-carrier-jumpsuit = Mail Carrier jumpsuit
loadout-group-mail-carrier-outerclothing = Mail Carrier outer clothing
+loadout-group-cargo-assistant-head = Cargo Assistant head
+loadout-group-cargo-assistant-jumpsuit = Cargo Assistant jumpsuit
+loadout-group-cargo-assistant-backpack = Cargo Assistant backpack
+loadout-group-cargo-assistant-outerclothing = Cargo Assistant outer clothing
+loadout-group-cargo-assistant-shoes = Cargo Assistant shoes
+
loadout-group-salvage-specialist-neck = Salvage Specialist neck
loadout-group-salvage-id-delta = Salvage Specialist PDA
@@ -62,6 +68,11 @@ loadout-group-medical-doctor-neck = Medical Doctor neck
loadout-group-medical-intern-id-delta = Medical Intern PDA
+loadout-group-psychologist-head = Psychologist head
+loadout-group-psychologist-outerclothing = Psychologist outer clothing
+loadout-group-psychologist-shoes = Psychologist shoes
+loadout-group-psychologist-id-delta = Psychologist PDA
+
# Miscellaneous
loadout-group-scarfs = Scarf
diff --git a/Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl b/Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl
new file mode 100644
index 00000000000..156f8aaa73a
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl
@@ -0,0 +1,2 @@
+reagent-name-dr-gibb-blood-red = Dr. Gibb Blood Red
+reagent-desc-dr-gibb-blood-red = A drink to quench YOUR blood thirst.
diff --git a/Resources/Locale/en-US/deltav/research/technologies.ftl b/Resources/Locale/en-US/deltav/research/technologies.ftl
index ae1a8fe69ab..aa0e121ef57 100644
--- a/Resources/Locale/en-US/deltav/research/technologies.ftl
+++ b/Resources/Locale/en-US/deltav/research/technologies.ftl
@@ -6,3 +6,4 @@ research-technology-energy-gun-advance = Advanced Energy Manipulation
research-technology-advance-laser = Advanced Laser Manipulation
research-technology-robust-melee = Robust Melee
research-technology-syringe-gun = Syringe Gun
+research-technology-ionized-cryogenic-emission-equipment = Ionized Cryogenic Emission Equipment
diff --git a/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl b/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl
index d2d7ad97289..ed67706ee08 100644
--- a/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl
+++ b/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl
@@ -1 +1,3 @@
salvage-map-wreck-size-unknown = [color=purple]Unidentified[/color]
+
+salvage-magnet-mining-points-cost = Cost: {$points} Mining Points
diff --git a/Resources/Locale/en-US/deltav/station-events/station-event-system.ftl b/Resources/Locale/en-US/deltav/station-events/station-event-system.ftl
new file mode 100644
index 00000000000..d845303ee26
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/station-events/station-event-system.ftl
@@ -0,0 +1 @@
+station-event-system-run-event-delayed = Running event {$eventName} in {$seconds} seconds
diff --git a/Resources/Locale/en-US/deltav/weather/ashstorm.ftl b/Resources/Locale/en-US/deltav/weather/ashstorm.ftl
new file mode 100644
index 00000000000..49778522502
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/weather/ashstorm.ftl
@@ -0,0 +1,3 @@
+ash-storm-telegraph = [color=red][bold]An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.[/bold][/color]
+ash-storm-alert = [color=red][bolditalic]Smoldering clouds of scorching ash billow down around you! Get inside![/bolditalic][/color]
+ash-storm-clearing = [color=red]The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.[/color]
diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl
index 0b0970ec08f..91a803da6ea 100644
--- a/Resources/Locale/en-US/research/technologies.ftl
+++ b/Resources/Locale/en-US/research/technologies.ftl
@@ -22,7 +22,6 @@ research-technology-portable-fission = Portable Fission
research-technology-space-scanning = Space Scanning
research-technology-excavation = Mass Excavation
-research-technology-salvage-weapons = Salvage Weapons
research-technology-draconic-munitions = Draconic Munitions
research-technology-uranium-munitions = Uranium Munitions
research-technology-explosive-technology = Explosive Technology
@@ -32,6 +31,7 @@ research-technology-nonlethal-ammunition = Nonlethal Ammunition
research-technology-practice-ammunition = Practice Ammunition
research-technology-concentrated-laser-weaponry = Concentrated Laser Weaponry
research-technology-wave-particle-harnessing = Wave Particle Harnessing
+research-technology-experimental-salvage-weaponry = Experimental Salvage Weaponry
research-technology-advanced-riot-control = Advanced Riot Control
research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponry
research-technology-experimental-battery-ammo = Experimental Battery Ammo
diff --git a/Resources/Maps/DeltaV/centcomm.yml b/Resources/Maps/DeltaV/centcomm.yml
index de085904d4b..5b367f2a7f4 100644
--- a/Resources/Maps/DeltaV/centcomm.yml
+++ b/Resources/Maps/DeltaV/centcomm.yml
@@ -3240,12 +3240,6 @@ entities:
- type: Transform
pos: 33.5,-5.5
parent: 1668
- - type: Door
- secondsUntilStateChange: -3769.445
- state: Opening
- - type: DeviceLinkSource
- lastSignals:
- DoorStatus: True
- proto: AirlockEngineeringGlassLocked
entities:
- uid: 5175
@@ -28750,6 +28744,8 @@ entities:
- type: Transform
pos: 21.5,8.5
parent: 1668
+ missingComponents:
+ - WarpPoint
- proto: PlushieAtmosian
entities:
- uid: 6890
diff --git a/Resources/Maps/arena.yml b/Resources/Maps/arena.yml
index 948411a6fd3..ca0fd4dfaeb 100644
--- a/Resources/Maps/arena.yml
+++ b/Resources/Maps/arena.yml
@@ -240,7 +240,7 @@ entities:
version: 6
-1,3:
ind: -1,3
- tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-3,-1:
ind: -3,-1
@@ -8953,7 +8953,8 @@ entities:
-4,1:
0: 3569
-5,1:
- 0: 32767
+ 0: 16383
+ 1: 16384
-4,2:
0: 241
-5,2:
@@ -9146,35 +9147,35 @@ entities:
0: 30591
-4,6:
0: 307
- 1: 34952
+ 2: 34952
-5,6:
0: 65535
-4,7:
- 1: 63624
+ 2: 63624
-4,8:
- 1: 4369
+ 2: 4369
0: 61166
-3,5:
0: 65535
-3,6:
- 1: 4369
+ 2: 4369
0: 140
-3,7:
- 1: 29457
+ 2: 29457
-3,8:
0: 13115
- 1: 17476
+ 2: 17476
-2,5:
0: 65535
-2,6:
0: 19
- 1: 34944
+ 2: 34944
-2,8:
0: 28799
-1,5:
0: 4095
-1,6:
- 1: 30576
+ 2: 30576
-1,7:
0: 13107
-1,8:
@@ -9439,18 +9440,18 @@ entities:
0: 65535
15,0:
0: 4369
- 1: 49164
+ 2: 49164
15,1:
0: 28672
- 1: 8
+ 2: 8
15,2:
0: 61559
15,-1:
0: 4369
16,0:
- 1: 61455
+ 2: 61455
16,1:
- 1: 15
+ 2: 15
0: 65280
16,2:
0: 57599
@@ -9633,7 +9634,7 @@ entities:
-1,-7:
0: 65535
-1,-6:
- 2: 65520
+ 3: 65520
0: 4
-1,-9:
0: 64160
@@ -9644,7 +9645,7 @@ entities:
0,-7:
0: 57305
0,-6:
- 2: 4368
+ 3: 4368
0: 52416
-8,-8:
0: 65535
@@ -9716,7 +9717,7 @@ entities:
0: 65535
-12,-1:
0: 63247
- 3: 2048
+ 4: 2048
-13,0:
0: 65528
-12,1:
@@ -9731,7 +9732,7 @@ entities:
0: 63231
-12,4:
0: 63
- 1: 2048
+ 2: 2048
-11,0:
0: 61183
-11,1:
@@ -9740,11 +9741,11 @@ entities:
0: 24695
-11,3:
0: 255
- 1: 49152
+ 2: 49152
-11,-1:
0: 65294
-11,4:
- 1: 53198
+ 2: 53198
-10,0:
0: 60943
-10,1:
@@ -9753,11 +9754,11 @@ entities:
0: 4095
-10,3:
0: 255
- 1: 28672
+ 2: 28672
-10,-1:
0: 65473
-10,4:
- 1: 4471
+ 2: 4471
0: 51336
-8,-16:
0: 4080
@@ -9837,7 +9838,7 @@ entities:
0: 61166
14,-8:
0: 65416
- 1: 1
+ 2: 1
14,-7:
0: 15
14,-6:
@@ -9860,7 +9861,7 @@ entities:
0: 16383
16,-8:
0: 65416
- 1: 1
+ 2: 1
16,-7:
0: 34831
8,-12:
@@ -9915,17 +9916,17 @@ entities:
0: 61166
14,-10:
0: 14
- 1: 256
+ 2: 256
14,-13:
0: 52428
- 1: 256
+ 2: 256
15,-12:
0: 65535
15,-11:
0: 65535
15,-10:
0: 15
- 1: 256
+ 2: 256
15,-13:
0: 20479
16,-12:
@@ -10063,19 +10064,19 @@ entities:
-1,9:
0: 65535
0,10:
- 1: 29760
+ 2: 29760
0: 34944
0,11:
0: 153
- 1: 29542
+ 2: 29542
-1,10:
- 1: 61440
+ 2: 61440
-1,11:
0: 52462
- 1: 13073
+ 2: 13073
0,12:
0: 785
- 1: 29794
+ 2: 29794
1,10:
0: 4912
1,11:
@@ -10092,89 +10093,89 @@ entities:
0: 3272
8,9:
0: 816
- 1: 2176
+ 2: 2176
8,10:
0: 30583
8,11:
0: 880
- 1: 128
+ 2: 128
7,12:
- 1: 8
+ 2: 8
8,12:
- 1: 4371
+ 2: 4371
9,9:
- 1: 4080
+ 2: 4080
9,10:
- 4: 273
- 5: 1092
+ 5: 273
+ 6: 1092
9,11:
- 1: 240
+ 2: 240
10,9:
- 1: 4080
+ 2: 4080
10,10:
- 6: 273
- 7: 1092
+ 7: 273
+ 8: 1092
10,11:
- 1: 752
+ 2: 752
0: 28672
10,12:
0: 119
11,9:
- 1: 4080
+ 2: 4080
11,10:
- 7: 1365
+ 8: 1365
11,11:
- 1: 35056
+ 2: 35056
12,9:
- 1: 4080
+ 2: 4080
12,10:
- 7: 273
+ 8: 273
0: 34816
12,11:
- 1: 5936
+ 2: 5936
0: 136
11,12:
- 1: 34952
+ 2: 34952
-4,9:
- 1: 143
+ 2: 143
-4,10:
- 1: 49152
+ 2: 49152
-4,11:
- 1: 33860
+ 2: 33860
0: 2184
-3,9:
- 1: 13175
+ 2: 13175
0: 8
-3,10:
- 1: 62259
+ 2: 62259
-3,11:
0: 947
- 1: 29772
+ 2: 29772
-2,9:
0: 15
-2,10:
- 1: 63616
+ 2: 63616
-2,11:
- 1: 32863
+ 2: 32863
0: 160
-1,12:
- 1: 61457
+ 2: 61457
0: 4078
0,13:
- 1: 13107
+ 2: 13107
0,14:
- 1: 51
+ 2: 51
-2,12:
- 1: 34944
+ 2: 34944
-1,13:
- 1: 13107
+ 2: 13107
-1,14:
- 1: 51
+ 2: 51
-12,-4:
0: 65134
-13,-4:
0: 56780
- 1: 1
+ 2: 1
-12,-3:
0: 65103
-13,-3:
@@ -10312,13 +10313,13 @@ entities:
-12,-7:
0: 26214
-13,-7:
- 1: 52431
+ 2: 52431
-12,-6:
0: 26214
-13,-6:
- 1: 52974
+ 2: 52974
-13,-5:
- 1: 8140
+ 2: 8140
0: 49152
-11,-8:
0: 48050
@@ -10354,10 +10355,10 @@ entities:
0: 34952
16,-5:
0: 136
- 1: 16384
+ 2: 16384
16,-9:
0: 34952
- 1: 8192
+ 2: 8192
17,-8:
0: 65315
17,-7:
@@ -10368,7 +10369,7 @@ entities:
0: 52479
17,-9:
0: 13107
- 1: 32768
+ 2: 32768
17,-4:
0: 204
18,-8:
@@ -10383,22 +10384,22 @@ entities:
0: 61166
19,-7:
0: 28672
- 1: 32
+ 2: 32
19,-5:
0: 7
- 1: 4608
+ 2: 4608
16,-11:
0: 61166
16,-10:
0: 14
- 1: 8448
+ 2: 8448
17,-12:
0: 61439
17,-11:
0: 61166
17,-10:
0: 14
- 1: 33024
+ 2: 33024
17,-13:
0: 43690
18,-12:
@@ -10411,13 +10412,13 @@ entities:
0: 61440
19,-11:
0: 15
- 1: 2048
+ 2: 2048
19,-10:
0: 61440
- 1: 136
+ 2: 136
19,-9:
0: 15
- 1: 512
+ 2: 512
20,-12:
0: 28672
20,-11:
@@ -10449,7 +10450,8 @@ entities:
11,-14:
0: 47872
12,-14:
- 0: 47872
+ 0: 47360
+ 9: 512
12,-13:
0: 3003
4,-20:
@@ -10471,10 +10473,10 @@ entities:
5,-18:
0: 47887
5,-20:
- 1: 1
+ 2: 1
0: 34952
5,-21:
- 1: 4369
+ 2: 4369
0: 34816
6,-20:
0: 57297
@@ -10514,22 +10516,22 @@ entities:
0: 30476
-13,-12:
0: 28535
- 1: 8
+ 2: 8
-12,-11:
0: 65319
-13,-11:
0: 56640
- 1: 16
+ 2: 16
-12,-10:
0: 65295
-13,-10:
0: 52236
- 1: 4097
+ 2: 4097
-13,-9:
0: 52364
-12,-13:
0: 25275
- 1: 4096
+ 2: 4096
-11,-11:
0: 65280
-11,-10:
@@ -10552,7 +10554,7 @@ entities:
0: 47935
-13,-16:
0: 52972
- 1: 12560
+ 2: 12560
-12,-15:
0: 6827
-13,-15:
@@ -10563,10 +10565,10 @@ entities:
0: 36588
-13,-13:
0: 26608
- 1: 38912
+ 2: 38912
-12,-17:
0: 60544
- 1: 15
+ 2: 15
-11,-16:
0: 65518
-11,-15:
@@ -10621,7 +10623,7 @@ entities:
0: 30578
2,-21:
0: 17408
- 1: 238
+ 2: 238
-5,-20:
0: 44643
-4,-19:
@@ -10672,16 +10674,16 @@ entities:
0: 3
-17,3:
0: 15
- 1: 34816
+ 2: 34816
-15,0:
0: 65399
-15,1:
0: 1911
-15,-1:
0: 28672
- 1: 68
+ 2: 68
-15,2:
- 1: 17476
+ 2: 17476
-15,3:
0: 34944
-14,0:
@@ -10701,9 +10703,9 @@ entities:
-13,4:
0: 255
-13,3:
- 1: 512
+ 2: 512
-16,-4:
- 1: 4096
+ 2: 4096
-16,-2:
0: 4915
-17,-2:
@@ -10711,12 +10713,12 @@ entities:
-17,-1:
0: 47295
-15,-2:
- 1: 19456
+ 2: 19456
-14,-4:
- 1: 1
+ 2: 1
0: 65024
-14,-5:
- 1: 7953
+ 2: 7953
0: 204
-14,-3:
0: 65166
@@ -10726,19 +10728,19 @@ entities:
0: 13056
13,-13:
0: 819
- 1: 2048
+ 2: 2048
14,-14:
0: 49152
15,-14:
0: 61440
16,-13:
- 1: 10
+ 2: 10
17,-14:
0: 43680
18,-13:
- 1: 2
+ 2: 2
19,-13:
- 1: 8448
+ 2: 8448
0,-23:
0: 8191
-1,-23:
@@ -10750,41 +10752,41 @@ entities:
1,-22:
0: 4369
1,-24:
- 1: 17988
+ 2: 17988
1,-25:
- 1: 61263
+ 2: 61263
2,-23:
- 1: 63624
+ 2: 63624
2,-22:
- 1: 59528
+ 2: 59528
2,-24:
- 1: 34952
+ 2: 34952
2,-25:
- 1: 36623
+ 2: 36623
3,-24:
- 1: 16
+ 2: 16
0: 3822
3,-23:
- 1: 16
+ 2: 16
0: 3822
3,-22:
- 1: 16
+ 2: 16
0: 3822
3,-21:
- 1: 16
+ 2: 16
0: 3822
4,-24:
0: 1911
- 1: 128
+ 2: 128
4,-23:
0: 1911
- 1: 128
+ 2: 128
4,-22:
0: 1911
- 1: 128
+ 2: 128
4,-21:
0: 1911
- 1: 128
+ 2: 128
-4,-24:
0: 65382
-4,-23:
@@ -10809,7 +10811,7 @@ entities:
0: 57580
-2,-25:
0: 57344
- 1: 3822
+ 2: 3822
-1,-24:
0: 272
-1,-22:
@@ -10865,23 +10867,23 @@ entities:
-6,-18:
0: 16352
-12,-20:
- 1: 46
+ 2: 46
-13,-20:
0: 34952
- 1: 35
+ 2: 35
-13,-19:
0: 34952
- 1: 4896
+ 2: 4896
-12,-19:
- 1: 36384
+ 2: 36384
-12,-18:
0: 3891
- 1: 32904
+ 2: 32904
-13,-18:
0: 3276
- 1: 4369
+ 2: 4369
-13,-17:
- 1: 15
+ 2: 15
-11,-18:
0: 52673
-11,-19:
@@ -10893,105 +10895,105 @@ entities:
-10,-20:
0: 32768
16,-4:
- 1: 32768
+ 2: 32768
16,-3:
- 1: 8
+ 2: 8
17,-3:
0: 65518
17,-2:
0: 239
16,-2:
- 1: 2048
+ 2: 2048
18,-3:
0: 13073
- 1: 4
+ 2: 4
18,-2:
0: 19
- 1: 1024
+ 2: 1024
18,-4:
- 1: 16384
+ 2: 16384
-16,-7:
- 1: 1103
+ 2: 1103
-17,-7:
- 1: 15
+ 2: 15
-16,-6:
- 1: 1525
+ 2: 1525
-17,-6:
- 1: 1525
+ 2: 1525
-16,-8:
0: 3822
- 1: 16384
+ 2: 16384
-16,-9:
0: 61152
- 1: 4
+ 2: 4
-15,-7:
- 1: 47
+ 2: 47
0: 34816
-15,-6:
- 1: 20016
+ 2: 20016
0: 8
-15,-8:
0: 3822
- 1: 16384
+ 2: 16384
-15,-9:
0: 61152
- 1: 4
+ 2: 4
-15,-5:
- 1: 19524
+ 2: 19524
-14,-7:
- 1: 15
+ 2: 15
0: 65472
-14,-6:
0: 52431
- 1: 4352
+ 2: 4352
-14,-8:
0: 3822
- 1: 16384
+ 2: 16384
-14,-9:
0: 61152
- 1: 4
+ 2: 4
-16,-12:
- 1: 29218
+ 2: 29218
-17,-12:
- 1: 63078
+ 2: 63078
-16,-11:
- 1: 30562
+ 2: 30562
-17,-11:
- 1: 65382
+ 2: 65382
-16,-10:
- 1: 61444
+ 2: 61444
-17,-10:
- 1: 61440
+ 2: 61440
-16,-13:
- 1: 61440
+ 2: 61440
0: 4081
-15,-10:
- 1: 61440
+ 2: 61440
0: 14
-15,-12:
- 1: 819
+ 2: 819
-15,-13:
- 1: 61442
+ 2: 61442
0: 4080
-15,-11:
0: 61152
-14,-10:
- 1: 61452
+ 2: 61452
-14,-12:
- 1: 36650
+ 2: 36650
-14,-13:
- 1: 61440
+ 2: 61440
0: 4080
-14,-11:
- 1: 192
+ 2: 192
0: 52224
12,12:
- 1: 28945
+ 2: 28945
13,9:
0: 26470
13,10:
0: 65286
- 1: 240
+ 2: 240
13,11:
0: 4095
13,12:
@@ -11000,81 +11002,81 @@ entities:
0: 32628
14,10:
0: 4352
- 1: 26208
+ 2: 26208
14,11:
0: 17
- 1: 1638
+ 2: 1638
15,9:
0: 65520
15,10:
0: 65535
16,9:
- 1: 240
+ 2: 240
0: 13056
16,10:
0: 13107
12,13:
- 1: 61713
+ 2: 61713
11,13:
- 1: 63624
+ 2: 63624
12,14:
- 1: 31
+ 2: 31
11,14:
- 1: 63624
+ 2: 63624
13,13:
- 1: 61440
+ 2: 61440
13,14:
- 1: 15
+ 2: 15
14,13:
- 1: 62063
+ 2: 62063
14,14:
- 1: 255
+ 2: 255
14,12:
- 1: 24576
+ 2: 24576
15,13:
- 1: 15
+ 2: 15
15,14:
- 1: 15
+ 2: 15
16,13:
- 1: 15
+ 2: 15
16,14:
- 1: 15
+ 2: 15
-20,-6:
- 1: 2296
+ 2: 2296
-21,-6:
- 1: 240
+ 2: 240
-19,-6:
- 1: 2039
+ 2: 2039
-19,-8:
- 1: 40857
+ 2: 40857
-19,-9:
- 1: 39417
+ 2: 39417
-19,-7:
- 1: 4383
+ 2: 4383
-18,-7:
- 1: 17487
+ 2: 17487
-18,-6:
- 1: 244
+ 2: 244
-18,-8:
0: 3822
- 1: 16384
+ 2: 16384
-18,-9:
0: 61152
- 1: 4
+ 2: 4
-17,-8:
0: 3822
- 1: 16384
+ 2: 16384
-17,-9:
0: 61152
- 1: 4
+ 2: 4
-10,5:
0: 52972
-10,6:
0: 136
-16,-20:
- 1: 15
+ 2: 15
-17,-20:
- 1: 8
+ 2: 8
-16,-19:
0: 54519
-17,-19:
@@ -11090,7 +11092,7 @@ entities:
-16,-16:
0: 3942
-15,-20:
- 1: 7
+ 2: 7
-15,-19:
0: 65280
-15,-18:
@@ -11098,7 +11100,7 @@ entities:
-15,-17:
0: 63675
-15,-21:
- 1: 17408
+ 2: 17408
0: 287
-14,-19:
0: 4096
@@ -11107,49 +11109,49 @@ entities:
-14,-17:
0: 273
-14,-20:
- 1: 8
+ 2: 8
-13,-21:
0: 36863
-16,-22:
- 1: 15
+ 2: 15
0: 61184
-17,-22:
- 1: 34952
+ 2: 34952
-16,-21:
0: 3838
-17,-21:
- 1: 34952
+ 2: 34952
-15,-22:
- 1: 1095
+ 2: 1095
0: 4352
-14,-21:
0: 15
-14,-22:
- 1: 1216
+ 2: 1216
-13,-22:
0: 61440
-12,-22:
0: 61440
- 1: 128
+ 2: 128
-12,-21:
0: 1911
-11,-22:
- 1: 16
+ 2: 16
0: 61440
-10,-22:
0: 64704
- 1: 17
+ 2: 17
-10,-23:
- 1: 61440
+ 2: 61440
-10,-21:
- 1: 61712
+ 2: 61712
0: 204
-9,-23:
- 1: 12288
+ 2: 12288
-9,-21:
- 1: 12834
+ 2: 12834
-9,-22:
- 1: 8738
+ 2: 8738
-17,-16:
0: 28671
-16,-15:
@@ -11160,17 +11162,17 @@ entities:
0: 13117
-17,-13:
0: 4086
- 1: 61440
+ 2: 61440
-15,-16:
0: 25344
- 1: 2048
+ 2: 2048
-15,-14:
0: 3
- 1: 8736
+ 2: 8736
-15,-15:
0: 26214
-14,-16:
- 1: 36608
+ 2: 36608
-20,-20:
0: 65280
-20,-19:
@@ -11219,83 +11221,83 @@ entities:
0: 60943
9,-24:
0: 4369
- 1: 136
+ 2: 136
9,-23:
0: 24593
9,-22:
0: 61159
9,-25:
- 1: 53007
+ 2: 53007
10,-24:
- 1: 9010
+ 2: 9010
10,-23:
- 1: 30498
+ 2: 30498
10,-22:
0: 13104
10,-25:
- 1: 26487
+ 2: 26487
5,-24:
- 1: 39385
+ 2: 39385
5,-23:
- 1: 7577
+ 2: 7577
5,-22:
- 1: 4369
+ 2: 4369
0: 3276
5,-25:
- 1: 57231
+ 2: 57231
6,-23:
- 1: 256
+ 2: 256
0: 49356
6,-22:
0: 52703
6,-24:
0: 52428
-2,-26:
- 1: 57344
+ 2: 57344
-1,-25:
- 1: 3855
+ 2: 3855
0,-25:
- 1: 3855
+ 2: 3855
3,-25:
- 1: 3855
+ 2: 3855
4,-25:
- 1: 3855
+ 2: 3855
6,-25:
- 1: 7951
+ 2: 7951
7,-25:
- 1: 3855
+ 2: 3855
8,-25:
- 1: 3855
+ 2: 3855
10,-26:
- 1: 28672
+ 2: 28672
-16,4:
- 1: 16
+ 2: 16
-15,5:
- 1: 4
+ 2: 4
8,13:
- 1: 63249
+ 2: 63249
7,13:
- 1: 34816
+ 2: 34816
8,14:
- 1: 50247
+ 2: 50247
7,14:
- 1: 8
+ 2: 8
8,15:
- 1: 50244
+ 2: 50244
8,16:
- 1: 50244
+ 2: 50244
9,13:
- 1: 12288
+ 2: 12288
0: 52224
9,14:
- 1: 12288
+ 2: 12288
0: 52236
9,15:
- 1: 12288
+ 2: 12288
0: 52236
9,16:
0: 52236
- 1: 12288
+ 2: 12288
10,13:
0: 65280
10,14:
@@ -11305,41 +11307,41 @@ entities:
10,16:
0: 65295
11,15:
- 1: 63624
+ 2: 63624
11,16:
- 1: 63624
+ 2: 63624
-20,-11:
- 1: 2184
+ 2: 2184
-19,-11:
- 1: 65331
+ 2: 65331
-19,-12:
- 1: 61713
+ 2: 61713
-19,-13:
- 1: 61940
+ 2: 61940
-19,-10:
- 1: 61713
+ 2: 61713
-18,-12:
- 1: 62259
+ 2: 62259
-18,-11:
- 1: 65331
+ 2: 65331
-18,-10:
- 1: 62532
+ 2: 62532
-18,-13:
0: 65528
-24,-6:
- 1: 497
+ 2: 497
-23,-6:
- 1: 240
+ 2: 240
-22,-6:
- 1: 240
+ 2: 240
-25,-6:
- 1: 1863
+ 2: 1863
-20,0:
- 1: 49664
+ 2: 49664
-20,1:
- 1: 2
+ 2: 2
-19,0:
- 1: 4096
+ 2: 4096
0: 52428
-19,1:
0: 3276
@@ -11354,15 +11356,15 @@ entities:
-18,2:
0: 12
-17,4:
- 1: 72
+ 2: 72
-17,-4:
- 1: 16384
+ 2: 16384
-17,-3:
- 1: 2184
+ 2: 2184
17,0:
- 1: 61999
+ 2: 61999
17,1:
- 1: 15
+ 2: 15
0: 56576
17,2:
0: 61661
@@ -11371,9 +11373,9 @@ entities:
17,4:
0: 36863
18,0:
- 1: 61455
+ 2: 61455
18,1:
- 1: 15
+ 2: 15
0: 30464
18,2:
0: 12407
@@ -11382,19 +11384,19 @@ entities:
18,4:
0: 3067
19,0:
- 1: 12847
+ 2: 12847
19,1:
- 1: 13107
+ 2: 13107
19,2:
- 1: 3891
+ 2: 3891
19,3:
0: 1911
19,4:
0: 52733
20,0:
- 1: 15
+ 2: 15
20,3:
- 1: 4096
+ 2: 4096
16,7:
0: 61166
16,8:
@@ -11405,7 +11407,7 @@ entities:
0: 4369
17,8:
0: 4369
- 1: 50176
+ 2: 50176
17,5:
0: 3276
18,5:
@@ -11414,41 +11416,41 @@ entities:
0: 30583
20,4:
0: 4369
- 1: 3808
+ 2: 3808
17,9:
- 1: 244
+ 2: 244
18,8:
- 1: 61440
+ 2: 61440
18,9:
- 1: 245
+ 2: 245
19,8:
- 1: 61440
+ 2: 61440
19,9:
- 1: 36080
+ 2: 36080
20,8:
- 1: 61440
+ 2: 61440
20,9:
- 1: 40176
+ 2: 40176
8,17:
- 1: 60996
+ 2: 60996
8,18:
- 1: 14
+ 2: 14
9,17:
- 1: 61440
+ 2: 61440
0: 12
10,17:
0: 15
- 1: 61440
+ 2: 61440
11,17:
- 1: 64648
+ 2: 64648
11,18:
- 1: 12
+ 2: 12
12,17:
- 1: 4352
+ 2: 4352
12,18:
- 1: 1
+ 2: 1
21,4:
- 1: 36856
+ 2: 36856
21,5:
0: 52428
21,6:
@@ -11456,7 +11458,7 @@ entities:
21,3:
0: 52428
22,4:
- 1: 36856
+ 2: 36856
22,5:
0: 56797
22,6:
@@ -11464,7 +11466,7 @@ entities:
22,3:
0: 56797
23,4:
- 1: 36856
+ 2: 36856
23,5:
0: 56797
23,6:
@@ -11472,7 +11474,7 @@ entities:
23,3:
0: 56797
24,4:
- 1: 36856
+ 2: 36856
24,5:
0: 56797
24,6:
@@ -11480,150 +11482,150 @@ entities:
24,3:
0: 56797
25,4:
- 1: 4080
+ 2: 4080
25,5:
0: 4369
25,6:
0: 17
27,7:
- 1: 25668
+ 2: 25668
27,8:
- 1: 29783
+ 2: 29783
27,4:
- 1: 17476
+ 2: 17476
27,3:
- 1: 17476
+ 2: 17476
27,5:
- 1: 17476
+ 2: 17476
27,6:
- 1: 17476
+ 2: 17476
21,0:
- 1: 15
+ 2: 15
21,2:
0: 52224
22,0:
- 1: 143
+ 2: 143
22,2:
0: 56576
22,-1:
- 1: 32768
+ 2: 32768
23,0:
- 1: 62335
+ 2: 62335
23,2:
0: 56576
23,-1:
- 1: 29491
+ 2: 29491
24,0:
- 1: 61455
+ 2: 61455
24,2:
0: 56576
24,-1:
- 1: 17476
+ 2: 17476
25,0:
- 1: 61455
+ 2: 61455
25,2:
0: 4352
25,3:
0: 4369
26,0:
- 1: 61455
+ 2: 61455
26,1:
- 1: 140
+ 2: 140
27,0:
- 1: 29303
+ 2: 29303
27,1:
- 1: 26452
+ 2: 26452
27,-1:
- 1: 28672
+ 2: 28672
27,2:
- 1: 17476
+ 2: 17476
23,-4:
- 1: 13107
+ 2: 13107
23,-5:
- 1: 13107
+ 2: 13107
23,-3:
- 1: 13107
+ 2: 13107
23,-2:
- 1: 13299
+ 2: 13299
24,-2:
- 1: 17524
+ 2: 17524
23,-6:
- 1: 61440
+ 2: 61440
24,-6:
- 1: 28672
+ 2: 28672
24,-4:
- 1: 17476
+ 2: 17476
24,-5:
- 1: 17476
+ 2: 17476
24,-3:
- 1: 17476
+ 2: 17476
24,8:
- 1: 61440
+ 2: 61440
23,8:
- 1: 61440
+ 2: 61440
24,9:
- 1: 240
+ 2: 240
23,9:
- 1: 240
+ 2: 240
25,8:
- 1: 61440
+ 2: 61440
25,9:
- 1: 240
+ 2: 240
26,8:
- 1: 64640
+ 2: 64640
26,9:
- 1: 240
+ 2: 240
27,9:
- 1: 116
+ 2: 116
20,10:
- 1: 35051
+ 2: 35051
21,8:
- 1: 61440
+ 2: 61440
21,9:
- 1: 9968
+ 2: 9968
20,11:
- 1: 34952
+ 2: 34952
20,12:
- 1: 51336
+ 2: 51336
21,10:
- 1: 8814
+ 2: 8814
21,11:
- 1: 8738
+ 2: 8738
21,12:
- 1: 12834
+ 2: 12834
22,8:
- 1: 61440
+ 2: 61440
22,9:
- 1: 14064
+ 2: 14064
22,10:
- 1: 1
+ 2: 1
17,13:
- 1: 15
+ 2: 15
17,14:
- 1: 15
+ 2: 15
18,13:
- 1: 15
+ 2: 15
18,14:
- 1: 15
+ 2: 15
19,13:
- 1: 15
+ 2: 15
19,14:
- 1: 15
+ 2: 15
20,13:
- 1: 51407
+ 2: 51407
20,14:
- 1: 207
+ 2: 207
21,13:
- 1: 4115
+ 2: 4115
21,14:
- 1: 17
+ 2: 17
-21,-16:
0: 14
-19,-15:
0: 26214
-19,-14:
0: 12
- 1: 17472
+ 2: 17472
-18,-15:
0: 4095
-18,-14:
@@ -11648,6 +11650,21 @@ entities:
- 0
- 0
- 0
+ - volume: 2500
+ temperature: 293.14975
+ moles:
+ - 21.824879
+ - 82.10312
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- volume: 2500
immutable: True
moles:
@@ -11753,6 +11770,21 @@ entities:
- 0
- 0
- 0
+ - volume: 2500
+ temperature: 293.1495
+ moles:
+ - 20.078888
+ - 75.53487
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
chunkSize: 4
- type: OccluderTree
- type: GridPathfinding
@@ -14665,6 +14697,14 @@ entities:
rot: 3.141592653589793 rad
pos: 21.5,36.5
parent: 6747
+- proto: AirlockExternalGlassShuttleMiningFilled
+ entities:
+ - uid: 17305
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -11.5,50.5
+ parent: 6747
- proto: AirlockExternalGlassShuttleShipyard
entities:
- uid: 1047
@@ -20569,7 +20609,7 @@ entities:
- uid: 17306
components:
- type: Transform
- parent: 17305
+ parent: 136
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -59586,27 +59626,6 @@ entities:
- type: Transform
pos: -28.5,-39.5
parent: 6747
- - uid: 17305
- components:
- - type: Transform
- pos: 49.5,-53.5
- parent: 6747
- - type: ContainerContainer
- containers:
- entity_storage: !type:Container
- showEnts: False
- occludes: True
- ents:
- - 17319
- - 17306
- - 17307
- - 17308
- - 17317
- - 17318
- paper_label: !type:ContainerSlot
- showEnts: False
- occludes: True
- ent: null
- uid: 21078
components:
- type: Transform
@@ -60634,7 +60653,7 @@ entities:
- uid: 17319
components:
- type: Transform
- parent: 17305
+ parent: 136
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -60841,7 +60860,7 @@ entities:
- uid: 17318
components:
- type: Transform
- parent: 17305
+ parent: 136
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -60863,7 +60882,7 @@ entities:
- uid: 17307
components:
- type: Transform
- parent: 17305
+ parent: 136
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -60880,7 +60899,7 @@ entities:
- uid: 17317
components:
- type: Transform
- parent: 17305
+ parent: 136
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -63542,6 +63561,13 @@ entities:
- type: Transform
pos: 67.5,14.5
parent: 6747
+- proto: DefaultStationBeaconAnchor
+ entities:
+ - uid: 29475
+ components:
+ - type: Transform
+ pos: 77.5,14.5
+ parent: 6747
- proto: DefaultStationBeaconAnomalyGenerator
entities:
- uid: 27409
@@ -75134,11 +75160,6 @@ entities:
parent: 6747
- proto: DresserFilled
entities:
- - uid: 136
- components:
- - type: Transform
- pos: -15.5,6.5
- parent: 6747
- uid: 4272
components:
- type: Transform
@@ -127461,10 +127482,10 @@ entities:
parent: 6747
- proto: LockerDetectiveFilled
entities:
- - uid: 15707
+ - uid: 8609
components:
- type: Transform
- pos: -17.5,7.5
+ pos: -15.5,6.5
parent: 6747
- proto: LockerEngineerFilled
entities:
@@ -127697,6 +127718,47 @@ entities:
- type: Transform
pos: 20.5,-34.5
parent: 6747
+- proto: LockerPsychologistFilled
+ entities:
+ - uid: 136
+ components:
+ - type: Transform
+ pos: 49.5,-53.5
+ parent: 6747
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.1465
+ moles:
+ - 1.7459903
+ - 6.568249
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - type: ContainerContainer
+ containers:
+ entity_storage: !type:Container
+ showEnts: False
+ occludes: True
+ ents:
+ - 17318
+ - 17317
+ - 17308
+ - 17307
+ - 17306
+ - 17319
+ paper_label: !type:ContainerSlot
+ showEnts: False
+ occludes: True
+ ent: null
- proto: LockerQuarterMasterFilled
entities:
- uid: 9424
@@ -136462,7 +136524,7 @@ entities:
- type: MetaData
name: pill canister (dump me)
- type: Transform
- parent: 17305
+ parent: 136
- type: ContainerContainer
containers:
storagebase: !type:Container
@@ -138372,6 +138434,325 @@ entities:
rot: 1.5707963267948966 rad
pos: -71.5,-57.5
parent: 6747
+- proto: PoweredDimSmallLight
+ entities:
+ - uid: 8815
+ components:
+ - type: Transform
+ pos: 35.5,-55.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 9046
+ components:
+ - type: Transform
+ pos: 4.5,5.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 11158
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 53.5,-18.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 11845
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 34.5,22.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 11848
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 55.5,21.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 11869
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 11.5,0.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 11871
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -5.5,-70.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 11873
+ components:
+ - type: Transform
+ pos: -0.5,-63.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 12024
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -0.5,-67.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13045
+ components:
+ - type: Transform
+ pos: -33.5,-57.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13047
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -35.5,-58.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13049
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -38.5,-42.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13237
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 30.5,-73.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13239
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 32.5,-70.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13255
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 37.5,-69.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13258
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 35.5,-86.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13963
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 26.5,-88.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 13978
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 51.5,-39.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 14033
+ components:
+ - type: Transform
+ pos: 43.5,-37.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 14054
+ components:
+ - type: Transform
+ pos: 59.5,-5.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16010
+ components:
+ - type: Transform
+ pos: 30.5,-63.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16171
+ components:
+ - type: Transform
+ pos: 2.5,-30.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16172
+ components:
+ - type: Transform
+ pos: 48.5,4.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16173
+ components:
+ - type: Transform
+ pos: 5.5,-17.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16174
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 52.5,-1.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16176
+ components:
+ - type: Transform
+ pos: 1.5,-14.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16289
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -41.5,11.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16290
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -44.5,11.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16293
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -51.5,-5.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16296
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 2.5,-28.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16799
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 42.5,-54.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16802
+ components:
+ - type: Transform
+ pos: 53.5,-12.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 27533
+ components:
+ - type: Transform
+ pos: -44.5,16.5
+ parent: 6747
+ - type: PointLight
+ enabled: False
+ - type: ApcPowerReceiver
+ powerLoad: 0
- proto: Poweredlight
entities:
- uid: 683
@@ -143089,325 +143470,6 @@ entities:
enabled: False
- type: ApcPowerReceiver
powerLoad: 0
-- proto: PoweredSmallLightMaintenanceRed
- entities:
- - uid: 8815
- components:
- - type: Transform
- pos: 35.5,-55.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 9046
- components:
- - type: Transform
- pos: 4.5,5.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 11158
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 53.5,-18.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 11845
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 34.5,22.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 11848
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 55.5,21.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 11869
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 11.5,0.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 11871
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -5.5,-70.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 11873
- components:
- - type: Transform
- pos: -0.5,-63.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 12024
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -0.5,-67.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13045
- components:
- - type: Transform
- pos: -33.5,-57.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13047
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -35.5,-58.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13049
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -38.5,-42.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13237
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 30.5,-73.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13239
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 32.5,-70.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13255
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 37.5,-69.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13258
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 35.5,-86.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13963
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 26.5,-88.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 13978
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 51.5,-39.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 14033
- components:
- - type: Transform
- pos: 43.5,-37.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 14054
- components:
- - type: Transform
- pos: 59.5,-5.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16010
- components:
- - type: Transform
- pos: 30.5,-63.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16171
- components:
- - type: Transform
- pos: 2.5,-30.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16172
- components:
- - type: Transform
- pos: 48.5,4.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16173
- components:
- - type: Transform
- pos: 5.5,-17.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16174
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 52.5,-1.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16176
- components:
- - type: Transform
- pos: 1.5,-14.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16289
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -41.5,11.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16290
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -44.5,11.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16293
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -51.5,-5.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16296
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 2.5,-28.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16799
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 42.5,-54.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16802
- components:
- - type: Transform
- pos: 53.5,-12.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 27533
- components:
- - type: Transform
- pos: -44.5,16.5
- parent: 6747
- - type: PointLight
- enabled: False
- - type: ApcPowerReceiver
- powerLoad: 0
- proto: PresentRandom
entities:
- uid: 22513
@@ -144685,24 +144747,6 @@ entities:
- type: Transform
pos: -14.5,31.5
parent: 6747
- - uid: 8608
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -12.5,47.5
- parent: 6747
- - uid: 8609
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -11.5,47.5
- parent: 6747
- - uid: 8610
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -10.5,47.5
- parent: 6747
- uid: 8611
components:
- type: Transform
@@ -144735,8 +144779,8 @@ entities:
- uid: 8622
components:
- type: Transform
- rot: 1.5707963267948966 rad
- pos: -9.5,45.5
+ rot: -1.5707963267948966 rad
+ pos: -12.5,48.5
parent: 6747
- uid: 23831
components:
@@ -144804,6 +144848,24 @@ entities:
rot: 3.141592653589793 rad
pos: 79.5,19.5
parent: 6747
+ - uid: 29470
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -12.5,49.5
+ parent: 6747
+ - uid: 29471
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -10.5,48.5
+ parent: 6747
+ - uid: 29472
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -10.5,49.5
+ parent: 6747
- proto: RailingCorner
entities:
- uid: 379
@@ -144957,11 +145019,22 @@ entities:
parent: 6747
- proto: RailingCornerSmall
entities:
+ - uid: 8610
+ components:
+ - type: Transform
+ pos: -12.5,47.5
+ parent: 6747
+ - uid: 15707
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -10.5,47.5
+ parent: 6747
- uid: 15900
components:
- type: Transform
rot: -1.5707963267948966 rad
- pos: -9.5,44.5
+ pos: -9.5,45.5
parent: 6747
- uid: 17802
components:
@@ -167863,6 +167936,13 @@ entities:
- type: Transform
pos: 24.5,-58.5
parent: 6747
+- proto: VendingMachineDetDrobe
+ entities:
+ - uid: 8608
+ components:
+ - type: Transform
+ pos: -17.5,7.5
+ parent: 6747
- proto: VendingMachineDinnerware
entities:
- uid: 2713
@@ -178696,6 +178776,18 @@ entities:
- type: Transform
pos: -55.5,-73.5
parent: 6747
+ - uid: 29473
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -12.5,50.5
+ parent: 6747
+ - uid: 29474
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -10.5,50.5
+ parent: 6747
- proto: WallRiveted
entities:
- uid: 22305
diff --git a/Resources/Maps/hammurabi.yml b/Resources/Maps/hammurabi.yml
index 33e760d7a2e..995367bb209 100644
--- a/Resources/Maps/hammurabi.yml
+++ b/Resources/Maps/hammurabi.yml
@@ -384,7 +384,7 @@ entities:
version: 6
0,2:
ind: 0,2
- tiles: fwAAAAAAfwAAAAAAJQAAAAAAJQAAAAAAJQAAAAADUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAABJQAAAAABUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAJQAAAAADJQAAAAACUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAATwAAAAABTwAAAAAAQwAAAAAATwAAAAAATwAAAAAATwAAAAAATwAAAAAAUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAaQAAAAAATwAAAAABTwAAAAABQwAAAAAATwAAAAACTwAAAAABQwAAAAAAQwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAaQAAAAADQwAAAAAAQwAAAAAATwAAAAACTwAAAAAATwAAAAADTwAAAAAATwAAAAACUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAATwAAAAACTwAAAAADTwAAAAABTwAAAAABTwAAAAADTwAAAAADTwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAJQAAAAABJQAAAAABfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAAAJQAAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ tiles: fwAAAAAAfwAAAAAAJQAAAAAAJQAAAAAAJQAAAAADUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAABJQAAAAABUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAJQAAAAADJQAAAAACUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAATwAAAAABTwAAAAAAQwAAAAAATwAAAAAATwAAAAAATwAAAAAATwAAAAAAUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAaQAAAAAATwAAAAABTwAAAAABQwAAAAAATwAAAAACTwAAAAABQwAAAAAAQwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAaQAAAAADQwAAAAAAQwAAAAAATwAAAAACTwAAAAAATwAAAAADTwAAAAAATwAAAAACUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAATwAAAAACTwAAAAADTwAAAAABTwAAAAABTwAAAAADTwAAAAADTwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAJQAAAAABJQAAAAABfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAAAJQAAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-2,2:
ind: -2,2
@@ -548,7 +548,7 @@ entities:
version: 6
0,3:
ind: 0,3
- tiles: fwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ tiles: fwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,3:
ind: -1,3
@@ -13102,7 +13102,8 @@ entities:
-3,-6:
0: 61183
-3,-9:
- 0: 53691
+ 0: 53689
+ 3: 2
-2,-8:
0: 3583
-2,-7:
@@ -14153,12 +14154,12 @@ entities:
-7,-14:
0: 65039
-7,-16:
- 3: 3822
+ 4: 3822
-7,-17:
- 3: 57344
+ 4: 57344
2: 255
-6,-16:
- 3: 819
+ 4: 819
0: 136
2: 32768
-6,-15:
@@ -14167,7 +14168,7 @@ entities:
-6,-14:
0: 15
-6,-17:
- 3: 12288
+ 4: 12288
0: 34944
-5,-17:
0: 65496
@@ -15136,7 +15137,7 @@ entities:
-24,-13:
0: 12288
2: 34952
- 3: 34
+ 4: 34
-25,-12:
0: 65535
-24,-11:
@@ -15626,7 +15627,7 @@ entities:
2: 2
-28,-13:
2: 33280
- 3: 128
+ 4: 128
-27,-11:
0: 13107
-27,-10:
@@ -15635,18 +15636,18 @@ entities:
0: 3822
-27,-13:
0: 57344
- 3: 48
- 4: 136
+ 4: 48
+ 5: 136
-26,-12:
0: 4095
-26,-11:
- 3: 1911
+ 4: 1911
-26,-10:
0: 61168
-26,-13:
0: 61440
- 4: 17
- 5: 204
+ 5: 17
+ 6: 204
-25,-13:
0: 62702
-40,-1:
@@ -16204,14 +16205,14 @@ entities:
2: 3840
-28,-16:
0: 15
- 3: 1792
+ 4: 1792
-28,-17:
0: 65391
-28,-15:
- 6: 7
- 3: 1792
+ 7: 7
+ 4: 1792
-28,-14:
- 3: 7
+ 4: 7
0: 34816
-27,-16:
0: 65535
@@ -16246,18 +16247,18 @@ entities:
-27,-20:
2: 1
0: 4352
- 3: 52224
+ 4: 52224
-27,-19:
0: 4371
- 3: 204
+ 4: 204
2: 49152
-27,-18:
0: 4369
2: 52428
-26,-20:
- 3: 30464
+ 4: 30464
-26,-19:
- 3: 119
+ 4: 119
2: 28672
-26,-18:
2: 30583
@@ -17111,6 +17112,21 @@ entities:
- 0
- 0
- 0
+ - volume: 2500
+ temperature: 293.1495
+ moles:
+ - 20.078888
+ - 75.53487
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- volume: 2500
temperature: 293.15
moles:
@@ -20986,6 +21002,16 @@ entities:
- DoorStatus: DoorBolt
10226:
- DoorStatus: DoorBolt
+ - uid: 11352
+ components:
+ - type: Transform
+ pos: 5.5,48.5
+ parent: 1
+ - uid: 11629
+ components:
+ - type: Transform
+ pos: 5.5,49.5
+ parent: 1
- uid: 23891
components:
- type: Transform
@@ -21737,6 +21763,14 @@ entities:
rot: 3.141592653589793 rad
pos: -72.5,45.5
parent: 1
+- proto: AirlockExternalGlassShuttleMiningFilled
+ entities:
+ - uid: 13128
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 8.5,51.5
+ parent: 1
- proto: AirlockExternalGlassShuttleShipyard
entities:
- uid: 14485
@@ -86169,25 +86203,6 @@ entities:
- type: Transform
pos: 23.5,-28.5
parent: 1
- - uid: 28497
- components:
- - type: Transform
- pos: -10.5,-35.5
- parent: 1
- - type: ContainerContainer
- containers:
- entity_storage: !type:Container
- showEnts: False
- occludes: True
- ents:
- - 28501
- - 28498
- - 28499
- - 28500
- paper_label: !type:ContainerSlot
- showEnts: False
- occludes: True
- ent: null
- uid: 30777
components:
- type: Transform
@@ -87051,7 +87066,7 @@ entities:
- uid: 28500
components:
- type: Transform
- parent: 28497
+ parent: 11350
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -87256,7 +87271,7 @@ entities:
- uid: 28498
components:
- type: Transform
- parent: 28497
+ parent: 11350
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -187943,11 +187958,6 @@ entities:
- type: Transform
pos: 5.5,28.5
parent: 1
- - uid: 11629
- components:
- - type: Transform
- pos: 5.5,49.5
- parent: 1
- uid: 11632
components:
- type: Transform
@@ -188338,11 +188348,6 @@ entities:
- type: Transform
pos: 2.5,48.5
parent: 1
- - uid: 13128
- components:
- - type: Transform
- pos: 5.5,48.5
- parent: 1
- uid: 13148
components:
- type: Transform
@@ -194278,6 +194283,21 @@ entities:
- type: Transform
pos: 57.5,-37.5
parent: 1
+ - uid: 44018
+ components:
+ - type: Transform
+ pos: 7.5,51.5
+ parent: 1
+ - uid: 44024
+ components:
+ - type: Transform
+ pos: 9.5,48.5
+ parent: 1
+ - uid: 44025
+ components:
+ - type: Transform
+ pos: 9.5,49.5
+ parent: 1
- proto: GrilleBroken
entities:
- uid: 12229
@@ -197692,6 +197712,45 @@ entities:
- type: Transform
pos: 1.5,-40.5
parent: 1
+- proto: LockerPsychologistFilled
+ entities:
+ - uid: 11350
+ components:
+ - type: Transform
+ pos: -10.5,-35.5
+ parent: 1
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.1465
+ moles:
+ - 1.7459903
+ - 6.568249
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - type: ContainerContainer
+ containers:
+ entity_storage: !type:Container
+ showEnts: False
+ occludes: True
+ ents:
+ - 28500
+ - 28499
+ - 28498
+ - 28501
+ paper_label: !type:ContainerSlot
+ showEnts: False
+ occludes: True
+ ent: null
- proto: LockerQuarterMasterFilled
entities:
- uid: 13174
@@ -210846,7 +210905,7 @@ entities:
- uid: 28499
components:
- type: Transform
- parent: 28497
+ parent: 11350
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -212437,6 +212496,292 @@ entities:
- type: Transform
pos: 35.55366,-29.443964
parent: 1
+- proto: PoweredDimSmallLight
+ entities:
+ - uid: 818
+ components:
+ - type: Transform
+ pos: -20.5,-17.5
+ parent: 1
+ - uid: 2374
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 26.5,13.5
+ parent: 1
+ - uid: 12954
+ components:
+ - type: Transform
+ pos: -21.5,-69.5
+ parent: 1
+ - uid: 13158
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 10.5,-28.5
+ parent: 1
+ - uid: 15217
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -18.5,27.5
+ parent: 1
+ - uid: 15269
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 18.5,13.5
+ parent: 1
+ - uid: 15288
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 13.5,8.5
+ parent: 1
+ - uid: 15292
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -14.5,11.5
+ parent: 1
+ - uid: 15298
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -19.5,14.5
+ parent: 1
+ - uid: 15309
+ components:
+ - type: Transform
+ pos: -47.5,12.5
+ parent: 1
+ - uid: 15326
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -62.5,-8.5
+ parent: 1
+ - uid: 15360
+ components:
+ - type: Transform
+ pos: -87.5,23.5
+ parent: 1
+ - uid: 15362
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -100.5,15.5
+ parent: 1
+ - uid: 15409
+ components:
+ - type: Transform
+ pos: -77.5,-42.5
+ parent: 1
+ - uid: 15414
+ components:
+ - type: Transform
+ pos: -67.5,-56.5
+ parent: 1
+ - uid: 15415
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -55.5,-67.5
+ parent: 1
+ - uid: 15417
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -40.5,-77.5
+ parent: 1
+ - uid: 15420
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -46.5,-77.5
+ parent: 1
+ - uid: 15426
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -45.5,-50.5
+ parent: 1
+ - uid: 15427
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -36.5,-36.5
+ parent: 1
+ - uid: 15432
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -44.5,-77.5
+ parent: 1
+ - uid: 15433
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -51.5,-73.5
+ parent: 1
+ - uid: 15447
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 11.5,-42.5
+ parent: 1
+ - uid: 15449
+ components:
+ - type: Transform
+ pos: -2.5,-41.5
+ parent: 1
+ - uid: 15492
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -97.5,15.5
+ parent: 1
+ - uid: 15499
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -58.5,-28.5
+ parent: 1
+ - uid: 15501
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -50.5,-77.5
+ parent: 1
+ - uid: 15554
+ components:
+ - type: Transform
+ pos: 15.5,-28.5
+ parent: 1
+ - uid: 16378
+ components:
+ - type: Transform
+ pos: -41.5,-74.5
+ parent: 1
+ - uid: 16420
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 20.5,6.5
+ parent: 1
+ - uid: 31551
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 27.5,5.5
+ parent: 1
+ - uid: 36312
+ components:
+ - type: Transform
+ pos: 27.5,9.5
+ parent: 1
+ - uid: 41005
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 39.5,-51.5
+ parent: 1
+ - uid: 41082
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -106.5,-6.5
+ parent: 1
+ - uid: 41135
+ components:
+ - type: Transform
+ pos: -137.5,-30.5
+ parent: 1
+ - uid: 41136
+ components:
+ - type: Transform
+ pos: -134.5,-30.5
+ parent: 1
+ - uid: 41138
+ components:
+ - type: Transform
+ pos: -108.5,-45.5
+ parent: 1
+ - uid: 41139
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -111.5,-47.5
+ parent: 1
+ - uid: 41140
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -102.5,-32.5
+ parent: 1
+ - uid: 41142
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -96.5,-26.5
+ parent: 1
+ - uid: 41143
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -116.5,-52.5
+ parent: 1
+ - uid: 41145
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -118.5,-67.5
+ parent: 1
+ - uid: 41147
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -111.5,-83.5
+ parent: 1
+ - uid: 41149
+ components:
+ - type: Transform
+ pos: -96.5,-79.5
+ parent: 1
+ - uid: 41151
+ components:
+ - type: Transform
+ pos: -90.5,-68.5
+ parent: 1
+ - uid: 41152
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -90.5,-70.5
+ parent: 1
+ - uid: 41154
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -78.5,-59.5
+ parent: 1
+ - uid: 41158
+ components:
+ - type: Transform
+ pos: -27.5,-69.5
+ parent: 1
+ - uid: 41159
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -28.5,-54.5
+ parent: 1
+ - uid: 42043
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -81.5,-40.5
+ parent: 1
- proto: Poweredlight
entities:
- uid: 4066
@@ -216783,292 +217128,6 @@ entities:
- type: Transform
pos: 23.5,6.5
parent: 1
-- proto: PoweredSmallLightMaintenanceRed
- entities:
- - uid: 818
- components:
- - type: Transform
- pos: -20.5,-17.5
- parent: 1
- - uid: 2374
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 26.5,13.5
- parent: 1
- - uid: 12954
- components:
- - type: Transform
- pos: -21.5,-69.5
- parent: 1
- - uid: 13158
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 10.5,-28.5
- parent: 1
- - uid: 15217
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -18.5,27.5
- parent: 1
- - uid: 15269
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 18.5,13.5
- parent: 1
- - uid: 15288
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 13.5,8.5
- parent: 1
- - uid: 15292
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -14.5,11.5
- parent: 1
- - uid: 15298
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -19.5,14.5
- parent: 1
- - uid: 15309
- components:
- - type: Transform
- pos: -47.5,12.5
- parent: 1
- - uid: 15326
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -62.5,-8.5
- parent: 1
- - uid: 15360
- components:
- - type: Transform
- pos: -87.5,23.5
- parent: 1
- - uid: 15362
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -100.5,15.5
- parent: 1
- - uid: 15409
- components:
- - type: Transform
- pos: -77.5,-42.5
- parent: 1
- - uid: 15414
- components:
- - type: Transform
- pos: -67.5,-56.5
- parent: 1
- - uid: 15415
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -55.5,-67.5
- parent: 1
- - uid: 15417
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -40.5,-77.5
- parent: 1
- - uid: 15420
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -46.5,-77.5
- parent: 1
- - uid: 15426
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -45.5,-50.5
- parent: 1
- - uid: 15427
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -36.5,-36.5
- parent: 1
- - uid: 15432
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -44.5,-77.5
- parent: 1
- - uid: 15433
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -51.5,-73.5
- parent: 1
- - uid: 15447
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 11.5,-42.5
- parent: 1
- - uid: 15449
- components:
- - type: Transform
- pos: -2.5,-41.5
- parent: 1
- - uid: 15492
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -97.5,15.5
- parent: 1
- - uid: 15499
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -58.5,-28.5
- parent: 1
- - uid: 15501
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -50.5,-77.5
- parent: 1
- - uid: 15554
- components:
- - type: Transform
- pos: 15.5,-28.5
- parent: 1
- - uid: 16378
- components:
- - type: Transform
- pos: -41.5,-74.5
- parent: 1
- - uid: 16420
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 20.5,6.5
- parent: 1
- - uid: 31551
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 27.5,5.5
- parent: 1
- - uid: 36312
- components:
- - type: Transform
- pos: 27.5,9.5
- parent: 1
- - uid: 41005
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 39.5,-51.5
- parent: 1
- - uid: 41082
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -106.5,-6.5
- parent: 1
- - uid: 41135
- components:
- - type: Transform
- pos: -137.5,-30.5
- parent: 1
- - uid: 41136
- components:
- - type: Transform
- pos: -134.5,-30.5
- parent: 1
- - uid: 41138
- components:
- - type: Transform
- pos: -108.5,-45.5
- parent: 1
- - uid: 41139
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -111.5,-47.5
- parent: 1
- - uid: 41140
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -102.5,-32.5
- parent: 1
- - uid: 41142
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -96.5,-26.5
- parent: 1
- - uid: 41143
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -116.5,-52.5
- parent: 1
- - uid: 41145
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -118.5,-67.5
- parent: 1
- - uid: 41147
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -111.5,-83.5
- parent: 1
- - uid: 41149
- components:
- - type: Transform
- pos: -96.5,-79.5
- parent: 1
- - uid: 41151
- components:
- - type: Transform
- pos: -90.5,-68.5
- parent: 1
- - uid: 41152
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -90.5,-70.5
- parent: 1
- - uid: 41154
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -78.5,-59.5
- parent: 1
- - uid: 41158
- components:
- - type: Transform
- pos: -27.5,-69.5
- parent: 1
- - uid: 41159
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -28.5,-54.5
- parent: 1
- - uid: 42043
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -81.5,-40.5
- parent: 1
- proto: Protolathe
entities:
- uid: 9039
@@ -232251,21 +232310,11 @@ entities:
- type: Transform
pos: 2.5,42.5
parent: 1
- - uid: 11350
- components:
- - type: Transform
- pos: 5.5,48.5
- parent: 1
- uid: 11351
components:
- type: Transform
pos: 5.5,41.5
parent: 1
- - uid: 11352
- components:
- - type: Transform
- pos: 5.5,49.5
- parent: 1
- uid: 11356
components:
- type: Transform
@@ -235196,6 +235245,21 @@ entities:
- type: Transform
pos: 57.5,-37.5
parent: 1
+ - uid: 44019
+ components:
+ - type: Transform
+ pos: 7.5,51.5
+ parent: 1
+ - uid: 44026
+ components:
+ - type: Transform
+ pos: 9.5,48.5
+ parent: 1
+ - uid: 44027
+ components:
+ - type: Transform
+ pos: 9.5,49.5
+ parent: 1
- proto: RemoteSignaller
entities:
- uid: 2874
@@ -247987,7 +248051,7 @@ entities:
- uid: 28501
components:
- type: Transform
- parent: 28497
+ parent: 11350
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -253436,6 +253500,13 @@ entities:
- type: Transform
pos: -86.5,-23.5
parent: 1
+- proto: VendingMachineWinter
+ entities:
+ - uid: 44028
+ components:
+ - type: Transform
+ pos: -43.5,-10.5
+ parent: 1
- proto: VendingMachineYouTool
entities:
- uid: 9352
@@ -268437,6 +268508,12 @@ entities:
- type: Transform
pos: -114.5,-70.5
parent: 1
+ - uid: 28497
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 9.5,51.5
+ parent: 1
- uid: 28525
components:
- type: Transform
@@ -270362,6 +270439,32 @@ entities:
- type: Transform
pos: -66.5,-40.5
parent: 1
+ - uid: 44017
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 6.5,51.5
+ parent: 1
+ - uid: 44020
+ components:
+ - type: Transform
+ pos: 9.5,50.5
+ parent: 1
+ - uid: 44021
+ components:
+ - type: Transform
+ pos: 9.5,47.5
+ parent: 1
+ - uid: 44022
+ components:
+ - type: Transform
+ pos: 8.5,47.5
+ parent: 1
+ - uid: 44023
+ components:
+ - type: Transform
+ pos: 7.5,47.5
+ parent: 1
- proto: WallSolid
entities:
- uid: 301
@@ -278589,7 +278692,7 @@ entities:
lastSignals:
DoorStatus: True
- type: Door
- secondsUntilStateChange: -38865.67
+ secondsUntilStateChange: -39100.785
state: Opening
- type: Airlock
autoClose: False
diff --git a/Resources/Maps/hive.yml b/Resources/Maps/hive.yml
index 4f410be15f6..b2e86c71e92 100644
--- a/Resources/Maps/hive.yml
+++ b/Resources/Maps/hive.yml
@@ -347,7 +347,7 @@ entities:
version: 6
-3,-4:
ind: -3,-4
- tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
5,1:
ind: 5,1
@@ -8616,7 +8616,7 @@ entities:
0: 65039
0,4:
0: 33279
- 2: 12288
+ 1: 12288
0,-1:
0: 61166
1,0:
@@ -8715,17 +8715,17 @@ entities:
0: 39743
-8,-9:
0: 65280
- 1: 4
+ 2: 4
-9,-8:
0: 65416
-8,-7:
0: 4369
- 1: 52428
+ 2: 52428
-9,-7:
0: 48056
-8,-6:
0: 4593
- 1: 49152
+ 2: 49152
-9,-6:
0: 63931
-8,-5:
@@ -8737,13 +8737,13 @@ entities:
-7,-8:
0: 21839
-7,-7:
- 1: 65521
+ 2: 65521
0: 4
-7,-6:
- 1: 65535
+ 2: 65535
-7,-5:
0: 61681
- 1: 14
+ 2: 14
-7,-9:
0: 65535
-7,-4:
@@ -8751,24 +8751,24 @@ entities:
-6,-8:
0: 65535
-6,-7:
- 1: 65520
+ 2: 65520
-6,-6:
- 1: 16383
+ 2: 16383
-6,-5:
- 1: 1
+ 2: 1
0: 47290
-6,-9:
0: 65297
- 1: 4
+ 2: 4
-6,-4:
0: 65225
-5,-8:
0: 13119
- 1: 34816
+ 2: 34816
-5,-7:
- 1: 30712
+ 2: 30712
-5,-6:
- 1: 7
+ 2: 7
0: 60928
-5,-5:
0: 53631
@@ -8778,7 +8778,7 @@ entities:
0: 57309
-4,-8:
0: 15
- 1: 65280
+ 2: 65280
-4,-6:
0: 65294
-4,-5:
@@ -8909,7 +8909,7 @@ entities:
0: 63351
-8,-1:
0: 21572
- 1: 17
+ 2: 17
-9,0:
0: 65501
-8,1:
@@ -8918,15 +8918,15 @@ entities:
0: 56831
-8,2:
0: 17477
- 1: 4352
+ 2: 4352
-9,2:
0: 284
- 1: 52224
+ 2: 52224
-8,3:
- 1: 23
+ 2: 23
0: 31744
-9,3:
- 1: 255
+ 2: 255
0: 53504
-8,4:
0: 57460
@@ -8971,19 +8971,19 @@ entities:
-4,3:
0: 65287
-9,-4:
- 1: 65248
+ 2: 65248
-8,-3:
0: 17873
- 1: 4096
+ 2: 4096
-9,-3:
- 1: 65535
+ 2: 65535
-8,-2:
- 1: 30583
+ 2: 30583
-9,-2:
- 1: 52462
+ 2: 52462
0: 785
-9,-1:
- 1: 204
+ 2: 204
0: 49425
-7,-3:
0: 30591
@@ -9013,10 +9013,10 @@ entities:
0: 61160
-1,4:
0: 4607
- 2: 49152
+ 1: 49152
-9,4:
0: 196
- 1: 61713
+ 2: 61713
-8,5:
0: 65534
-8,6:
@@ -9029,48 +9029,48 @@ entities:
0: 56558
-8,8:
0: 141
- 1: 57856
+ 2: 57856
-7,5:
0: 511
- 1: 49152
+ 2: 49152
-7,7:
0: 12289
- 1: 35054
+ 2: 35054
-7,6:
- 1: 61166
+ 2: 61166
-7,8:
0: 55
- 1: 63624
+ 2: 63624
-6,5:
0: 3827
-6,6:
- 1: 30481
+ 2: 30481
0: 102
-6,7:
- 1: 65527
+ 2: 65527
-6,8:
- 1: 65535
+ 2: 65535
-5,5:
0: 15344
-5,6:
0: 49151
-5,7:
- 1: 65328
+ 2: 65328
0: 8
-5,8:
- 1: 8191
+ 2: 8191
-4,5:
0: 52700
-4,6:
0: 65311
-4,7:
0: 79
- 1: 28928
+ 2: 28928
0,5:
- 2: 51
+ 1: 51
0: 63628
-1,5:
- 2: 204
+ 1: 204
0: 61457
0,6:
0: 62702
@@ -9078,12 +9078,12 @@ entities:
0: 62347
0,7:
0: 3087
- 1: 13056
+ 2: 13056
-1,7:
0: 13103
- 1: 34816
+ 2: 34816
0,8:
- 1: 4095
+ 2: 4095
1,5:
0: 61183
1,6:
@@ -9091,7 +9091,7 @@ entities:
1,7:
0: 53007
1,8:
- 1: 273
+ 2: 273
0: 3276
2,5:
0: 56575
@@ -9121,21 +9121,21 @@ entities:
0: 58976
-3,-8:
0: 3299
- 1: 4096
+ 2: 4096
-3,-7:
- 1: 52479
+ 2: 52479
0: 4096
-3,-6:
0: 65281
- 1: 12
+ 2: 12
-3,-9:
0: 40160
-2,-8:
0: 20465
-2,-7:
- 1: 65393
+ 2: 65393
-2,-6:
- 1: 15
+ 2: 15
0: 65280
-2,-9:
0: 56784
@@ -9143,18 +9143,18 @@ entities:
0: 49136
-1,-7:
0: 3
- 1: 65408
+ 2: 65408
-1,-6:
- 1: 15
+ 2: 15
0: 65280
-1,-9:
0: 48058
0,-8:
0: 4080
0,-7:
- 1: 16382
+ 2: 16382
0,-6:
- 1: 3
+ 2: 3
0: 65292
0,-9:
0: 61199
@@ -9189,7 +9189,7 @@ entities:
4,-6:
0: 65295
-4,8:
- 1: 4095
+ 2: 4095
-3,5:
0: 54551
-3,6:
@@ -9197,7 +9197,7 @@ entities:
-3,7:
0: 33727
-3,8:
- 1: 4095
+ 2: 4095
-2,5:
0: 55807
-2,6:
@@ -9205,10 +9205,10 @@ entities:
-2,7:
0: 28783
-2,8:
- 1: 247
+ 2: 247
0: 10240
-1,8:
- 1: 248
+ 2: 248
0: 16640
-12,0:
0: 32767
@@ -9230,7 +9230,7 @@ entities:
0: 15291
-12,4:
0: 7
- 1: 61064
+ 2: 61064
-11,0:
0: 65535
-11,1:
@@ -9242,7 +9242,7 @@ entities:
-11,-1:
0: 64796
-11,4:
- 1: 65535
+ 2: 65535
-10,0:
0: 61438
-10,1:
@@ -9252,30 +9252,30 @@ entities:
-10,3:
0: 35591
-10,4:
- 1: 65535
+ 2: 65535
-10,-1:
0: 36591
4,8:
0: 819
- 1: 2184
+ 2: 2184
5,5:
0: 49617
5,6:
0: 64433
5,7:
0: 783
- 1: 52224
+ 2: 52224
5,8:
- 1: 4095
+ 2: 4095
6,5:
0: 48120
6,6:
0: 16305
6,7:
0: 79
- 1: 28928
+ 2: 28928
6,8:
- 1: 255
+ 2: 255
0: 10240
7,5:
0: 47931
@@ -9283,9 +9283,9 @@ entities:
0: 33720
7,7:
0: 959
- 1: 32768
+ 2: 32768
7,8:
- 1: 255
+ 2: 255
0: 16640
8,4:
0: 65485
@@ -9295,9 +9295,9 @@ entities:
0: 63803
8,7:
0: 15
- 1: 65024
+ 2: 65024
8,8:
- 1: 255
+ 2: 255
0: 3840
9,4:
0: 65535
@@ -9310,7 +9310,7 @@ entities:
9,3:
0: 65359
9,8:
- 1: 30719
+ 2: 30719
10,4:
0: 65535
10,5:
@@ -9319,20 +9319,20 @@ entities:
0: 65520
10,7:
0: 271
- 1: 60928
+ 2: 60928
10,3:
0: 65294
10,8:
- 1: 51
+ 2: 51
0: 63616
11,4:
0: 53213
11,6:
0: 4371
- 1: 52360
+ 2: 52360
11,7:
0: 1
- 1: 4044
+ 2: 4044
11,3:
0: 53709
11,5:
@@ -9343,9 +9343,9 @@ entities:
0: 30583
12,5:
0: 7
- 1: 15872
+ 2: 15872
12,6:
- 1: 3
+ 2: 3
0: 61320
12,7:
0: 18190
@@ -9354,20 +9354,20 @@ entities:
12,8:
0: 65535
13,4:
- 1: 29491
+ 2: 29491
0: 136
13,5:
- 1: 1911
+ 2: 1911
13,6:
0: 48059
13,7:
0: 65419
13,3:
- 1: 13107
+ 2: 13107
0: 32844
13,8:
0: 13107
- 1: 34944
+ 2: 34944
14,4:
0: 48059
14,5:
@@ -9376,7 +9376,7 @@ entities:
0: 65535
14,7:
0: 287
- 1: 1024
+ 2: 1024
14,3:
0: 16360
15,4:
@@ -9387,7 +9387,7 @@ entities:
0: 48059
15,7:
0: 139
- 1: 512
+ 2: 512
15,3:
0: 7163
16,4:
@@ -9436,17 +9436,17 @@ entities:
0: 55807
13,2:
0: 49629
- 1: 12288
+ 2: 12288
13,-1:
0: 56592
- 1: 15
+ 2: 15
14,0:
0: 65435
14,1:
0: 47359
14,2:
0: 35003
- 1: 12288
+ 2: 12288
14,-1:
0: 48014
15,0:
@@ -9491,25 +9491,25 @@ entities:
0: 65535
11,-5:
0: 61440
- 1: 238
+ 2: 238
12,-4:
0: 4096
- 1: 35942
+ 2: 35942
12,-3:
0: 28531
12,-2:
0: 26215
12,-5:
- 1: 26163
+ 2: 26163
0: 76
13,-4:
0: 15
- 1: 30464
+ 2: 30464
13,-3:
- 1: 8743
+ 2: 8743
0: 2048
13,-2:
- 1: 30583
+ 2: 30583
13,-5:
0: 15245
14,-4:
@@ -9543,33 +9543,33 @@ entities:
7,-8:
0: 49136
8,-7:
- 1: 65534
+ 2: 65534
7,-7:
- 1: 65408
+ 2: 65408
0: 3
8,-6:
- 1: 15
+ 2: 15
0: 65280
7,-6:
- 1: 15
+ 2: 15
0: 65280
9,-8:
0: 1775
9,-7:
- 1: 8191
+ 2: 8191
9,-6:
- 1: 1
+ 2: 1
0: 65422
9,-9:
0: 64733
10,-8:
0: 61439
10,-7:
- 1: 18224
+ 2: 18224
0: 8
10,-6:
0: 61699
- 1: 204
+ 2: 204
10,-9:
0: 4369
11,-8:
@@ -9577,7 +9577,7 @@ entities:
11,-7:
0: 61247
11,-6:
- 1: 58992
+ 2: 58992
0: 128
12,-8:
0: 65535
@@ -9585,24 +9585,24 @@ entities:
0: 65295
12,-6:
0: 51258
- 1: 12288
+ 2: 12288
4,-9:
0: 48027
5,-8:
0: 4080
5,-7:
- 1: 53247
+ 2: 53247
5,-6:
0: 65283
- 1: 12
+ 2: 12
5,-9:
0: 47931
6,-8:
0: 20466
6,-7:
- 1: 65393
+ 2: 65393
6,-6:
- 1: 15
+ 2: 15
0: 65280
6,-9:
0: 30471
@@ -9633,64 +9633,64 @@ entities:
18,4:
0: 14327
19,0:
- 1: 15
+ 2: 15
0: 65280
19,1:
0: 12543
- 1: 32768
+ 2: 32768
19,2:
0: 65283
- 1: 8
+ 2: 8
19,3:
0: 30479
19,-1:
- 1: 61440
+ 2: 61440
0: 191
19,4:
0: 1919
20,0:
- 1: 15
+ 2: 15
0: 65280
20,1:
0: 255
- 1: 61440
+ 2: 61440
20,2:
- 1: 1
+ 2: 1
0: 56576
20,3:
0: 65309
20,-1:
- 1: 61440
+ 2: 61440
0: 187
20,4:
0: 64511
21,0:
- 1: 15
+ 2: 15
0: 65280
21,1:
0: 255
- 1: 61440
+ 2: 61440
21,2:
0: 4352
- 1: 34952
+ 2: 34952
21,3:
0: 54721
21,-1:
- 1: 63488
+ 2: 63488
0: 55
21,4:
0: 56541
22,0:
- 1: 3
+ 2: 3
0: 65416
22,1:
0: 51455
- 1: 4096
+ 2: 4096
22,2:
- 1: 12561
+ 2: 12561
0: 32972
22,-1:
- 1: 13107
+ 2: 13107
0: 34952
22,3:
0: 43688
@@ -9762,7 +9762,7 @@ entities:
0: 45311
0,-13:
0: 65280
- 1: 7
+ 2: 7
-1,-12:
0: 57583
0,-11:
@@ -9781,7 +9781,7 @@ entities:
0: 56575
1,-13:
0: 65281
- 1: 12
+ 2: 12
2,-12:
0: 55551
2,-11:
@@ -9790,7 +9790,7 @@ entities:
0: 8191
2,-13:
0: 65280
- 1: 15
+ 2: 15
3,-12:
0: 45567
3,-11:
@@ -9799,7 +9799,7 @@ entities:
0: 36863
3,-13:
0: 65280
- 1: 15
+ 2: 15
4,-12:
0: 63743
4,-11:
@@ -9810,7 +9810,7 @@ entities:
0: 47359
8,-13:
0: 28672
- 1: 200
+ 2: 200
7,-12:
0: 53631
8,-11:
@@ -9829,15 +9829,15 @@ entities:
0: 56829
10,-12:
0: 4352
- 1: 35023
+ 2: 35023
10,-11:
0: 12561
- 1: 35016
+ 2: 35016
10,-10:
0: 13107
- 1: 34952
+ 2: 34952
10,-13:
- 1: 43694
+ 2: 43694
4,12:
0: 3838
5,9:
@@ -9936,7 +9936,7 @@ entities:
0: 61951
13,-7:
0: 13070
- 1: 2048
+ 2: 2048
13,-6:
0: 56559
13,-8:
@@ -9945,7 +9945,7 @@ entities:
0: 65523
14,-7:
0: 34831
- 1: 768
+ 2: 768
14,-6:
0: 47935
14,-9:
@@ -9966,7 +9966,7 @@ entities:
0: 4380
16,-9:
0: 4352
- 1: 19456
+ 2: 19456
17,-8:
0: 4401
17,-7:
@@ -9988,26 +9988,26 @@ entities:
20,-5:
0: 4092
8,-14:
- 1: 36608
+ 2: 36608
7,-14:
- 1: 3584
+ 2: 3584
9,-14:
- 1: 3840
+ 2: 3840
9,-13:
- 1: 272
+ 2: 272
10,-14:
- 1: 28416
+ 2: 28416
11,-14:
- 1: 4352
+ 2: 4352
11,-13:
- 1: 17
+ 2: 17
4,-14:
0: 43520
4,-13:
0: 65450
5,-13:
0: 65280
- 1: 14
+ 2: 14
5,-12:
0: 64767
6,-13:
@@ -10018,25 +10018,25 @@ entities:
0: 65535
7,-13:
0: 30464
- 1: 8
+ 2: 8
-1,-13:
- 1: 8
+ 2: 8
0: 65282
1,-14:
0: 4096
-4,-14:
- 1: 61440
+ 2: 61440
-5,-14:
- 1: 61440
+ 2: 61440
-3,-14:
- 1: 28672
+ 2: 28672
-3,-13:
- 1: 498
+ 2: 498
0: 49152
-3,-12:
0: 14206
-2,-13:
- 1: 18
+ 2: 18
0: 56320
-2,-12:
0: 65295
@@ -10062,26 +10062,26 @@ entities:
0: 63351
-9,-9:
0: 32768
- 1: 17
+ 2: 17
-8,-10:
- 1: 17484
+ 2: 17484
-8,-12:
- 1: 34952
+ 2: 34952
-8,-13:
- 1: 34956
+ 2: 34956
-8,-11:
- 1: 34952
+ 2: 34952
-7,-10:
0: 65280
-6,-10:
0: 4352
- 1: 17478
+ 2: 17478
-6,-12:
- 1: 8738
+ 2: 8738
-6,-13:
- 1: 8743
+ 2: 8743
-6,-11:
- 1: 8738
+ 2: 8738
5,-11:
0: 52511
5,-10:
@@ -10112,7 +10112,7 @@ entities:
0: 7631
23,-2:
0: 49425
- 1: 68
+ 2: 68
24,-4:
0: 61438
24,-3:
@@ -10166,37 +10166,37 @@ entities:
21,-6:
0: 47359
21,-8:
- 1: 3822
+ 2: 3822
0: 24576
21,-7:
0: 36590
22,-8:
- 1: 49971
+ 2: 49971
22,-7:
0: 273
- 1: 49152
+ 2: 49152
22,-6:
- 1: 3720
+ 2: 3720
22,-9:
- 1: 8738
+ 2: 8738
23,-8:
- 1: 61440
+ 2: 61440
23,-7:
- 1: 29218
+ 2: 29218
23,-6:
- 1: 256
+ 2: 256
0: 3264
23,-5:
0: 3822
24,-8:
- 1: 61440
+ 2: 61440
24,-5:
0: 33655
8,12:
0: 6015
9,9:
0: 65280
- 1: 6
+ 2: 6
9,10:
0: 48015
9,11:
@@ -10207,12 +10207,12 @@ entities:
0: 4095
10,10:
0: 12288
- 1: 34
+ 2: 34
10,11:
0: 13107
10,12:
0: 273
- 1: 16384
+ 2: 16384
11,9:
0: 34944
11,10:
@@ -10231,15 +10231,15 @@ entities:
0: 8
9,13:
0: 819
- 1: 32768
+ 2: 32768
9,14:
- 1: 12
+ 2: 12
10,13:
- 1: 61998
+ 2: 61998
11,13:
- 1: 64719
+ 2: 64719
12,13:
- 1: 61455
+ 2: 61455
-4,9:
0: 52701
-5,9:
@@ -10276,27 +10276,27 @@ entities:
0: 30576
-9,9:
0: 35071
- 1: 12288
+ 2: 12288
-8,10:
0: 207
-9,10:
0: 8
- 1: 48
+ 2: 48
-8,11:
- 1: 28672
+ 2: 28672
-9,11:
- 1: 61696
+ 2: 61696
-8,12:
- 1: 35946
+ 2: 35946
-7,9:
- 1: 255
+ 2: 255
0: 33536
-7,10:
0: 14591
-7,11:
0: 61439
-6,9:
- 1: 119
+ 2: 119
0: 28672
-6,10:
0: 14335
@@ -10307,13 +10307,13 @@ entities:
-5,12:
0: 52364
-7,12:
- 1: 12560
+ 2: 12560
-7,13:
- 1: 2246
+ 2: 2246
-6,13:
- 1: 3840
+ 2: 3840
-5,13:
- 1: 25360
+ 2: 25360
0: 140
-4,13:
0: 4095
@@ -10362,33 +10362,33 @@ entities:
13,10:
0: 119
14,8:
- 1: 16
+ 2: 16
0: 57344
14,9:
0: 65534
14,10:
0: 61183
14,11:
- 1: 32768
+ 2: 32768
14,12:
- 1: 4972
+ 2: 4972
15,11:
- 1: 8030
+ 2: 8030
15,10:
- 1: 32768
+ 2: 32768
16,10:
- 1: 5100
+ 2: 5100
16,11:
- 1: 3968
+ 2: 3968
-12,-4:
0: 255
- 1: 57344
+ 2: 57344
-12,-5:
0: 65520
-13,-4:
0: 62327
-12,-3:
- 1: 35054
+ 2: 35054
0: 28672
-13,-3:
0: 63487
@@ -10400,18 +10400,18 @@ entities:
0: 48051
-11,-4:
0: 255
- 1: 61440
+ 2: 61440
-11,-3:
- 1: 65535
+ 2: 65535
-11,-2:
0: 65520
-11,-5:
0: 65520
-10,-4:
- 1: 61440
+ 2: 61440
0: 238
-10,-3:
- 1: 65535
+ 2: 65535
-10,-2:
0: 30576
-10,-5:
@@ -10419,7 +10419,7 @@ entities:
-16,-4:
0: 61030
-17,-4:
- 1: 2296
+ 2: 2296
-16,-3:
0: 61166
-16,-2:
@@ -10459,32 +10459,32 @@ entities:
-13,-5:
0: 63346
-20,-4:
- 1: 4097
+ 2: 4097
-20,-5:
- 1: 4096
+ 2: 4096
-20,-3:
- 1: 61299
+ 2: 61299
-21,-4:
- 1: 62225
+ 2: 62225
-21,-3:
- 1: 4528
+ 2: 4528
-20,-1:
0: 65329
- 1: 8
+ 2: 8
-21,-1:
0: 31
- 1: 4576
+ 2: 4576
-20,0:
0: 43955
- 1: 4096
+ 2: 4096
-20,-2:
- 1: 34956
+ 2: 34956
-19,-3:
- 1: 4096
+ 2: 4096
-19,-2:
- 1: 4369
+ 2: 4369
-19,-1:
- 1: 1
+ 2: 1
0: 48896
-19,0:
0: 65522
@@ -10493,45 +10493,45 @@ entities:
-18,0:
0: 64434
-18,-4:
- 1: 17604
+ 2: 17604
-18,-5:
- 1: 17476
+ 2: 17476
-18,-3:
- 1: 12
+ 2: 12
-17,-3:
- 1: 1
+ 2: 1
-17,0:
0: 64441
-21,0:
0: 9
- 1: 37142
+ 2: 37142
-20,1:
- 1: 16
+ 2: 16
0: 15274
-21,1:
- 1: 4496
+ 2: 4496
0: 9
-20,2:
0: 15291
-21,2:
0: 4105
- 1: 57622
+ 2: 57622
-20,3:
0: 1
- 1: 34952
+ 2: 34952
-21,3:
0: 255
- 1: 4864
+ 2: 4864
-19,1:
0: 4095
-19,2:
0: 187
-19,3:
- 1: 4369
+ 2: 4369
-20,4:
- 1: 32748
+ 2: 32748
-19,4:
- 1: 17
+ 2: 17
-18,1:
0: 3007
-18,2:
@@ -10550,7 +10550,7 @@ entities:
0: 40951
-16,4:
0: 36044
- 1: 4368
+ 2: 4368
-15,1:
0: 45277
-15,2:
@@ -10570,15 +10570,15 @@ entities:
-13,4:
0: 65407
-16,-8:
- 1: 39
+ 2: 39
0: 34816
-17,-8:
- 1: 15
+ 2: 15
-16,-7:
- 1: 4384
+ 2: 4384
0: 51336
-16,-6:
- 1: 4369
+ 2: 4369
0: 52236
-15,-8:
0: 65520
@@ -10599,7 +10599,7 @@ entities:
-13,-6:
0: 32631
-13,-9:
- 1: 51200
+ 2: 51200
0: 8
-12,-8:
0: 64988
@@ -10608,7 +10608,7 @@ entities:
-12,-6:
0: 65295
-12,-9:
- 1: 4352
+ 2: 4352
0: 52431
-11,-8:
0: 65523
@@ -10627,25 +10627,25 @@ entities:
-10,-9:
0: 30579
-17,4:
- 1: 128
+ 2: 128
-16,5:
- 1: 4369
+ 2: 4369
0: 34952
-16,6:
- 1: 817
+ 2: 817
0: 32904
-17,5:
- 1: 32768
+ 2: 32768
-17,6:
- 1: 2063
+ 2: 2063
-16,7:
0: 52367
- 1: 4352
+ 2: 4352
-17,7:
0: 26120
- 1: 7
+ 2: 7
-16,8:
- 1: 17153
+ 2: 17153
0: 140
-15,5:
0: 4369
@@ -10681,7 +10681,7 @@ entities:
0: 65280
-12,5:
0: 65280
- 1: 14
+ 2: 14
-12,6:
0: 65535
-12,7:
@@ -10693,7 +10693,7 @@ entities:
3: 4
0: 65280
-11,5:
- 1: 3
+ 2: 3
0: 65292
-11,6:
0: 65535
@@ -10705,7 +10705,7 @@ entities:
0: 65484
-10,5:
0: 65283
- 1: 12
+ 2: 12
-10,6:
0: 65535
-10,7:
@@ -10713,47 +10713,47 @@ entities:
-10,8:
0: 30591
-9,5:
- 1: 1
+ 2: 1
0: 17732
-17,8:
- 1: 3840
+ 2: 3840
0: 6
-16,9:
- 1: 29696
+ 2: 29696
-16,10:
- 1: 36079
+ 2: 36079
-17,9:
- 1: 61440
+ 2: 61440
-15,9:
0: 4095
-15,10:
- 1: 4097
+ 2: 4097
-15,11:
- 1: 35939
+ 2: 35939
-14,9:
0: 3569
-14,11:
- 1: 12834
+ 2: 12834
-14,10:
- 1: 8743
+ 2: 8743
-14,12:
- 1: 8866
+ 2: 8866
0: 2056
-13,9:
0: 3568
-13,10:
- 1: 132
+ 2: 132
0: 8
-12,9:
0: 4080
-12,10:
0: 19655
- 1: 9008
+ 2: 9008
-12,11:
0: 17476
-12,12:
0: 17733
- 1: 176
+ 2: 176
-11,9:
0: 4080
-11,10:
@@ -10762,19 +10762,19 @@ entities:
0: 6128
-10,10:
0: 819
- 1: 34952
+ 2: 34952
-10,11:
- 1: 34956
+ 2: 34956
-10,12:
- 1: 35000
+ 2: 35000
0: 771
-9,12:
- 1: 1
+ 2: 1
-12,-12:
- 1: 48
+ 2: 48
0: 52416
-13,-12:
- 1: 20208
+ 2: 20208
-12,-11:
0: 30576
-13,-11:
@@ -10785,81 +10785,81 @@ entities:
0: 35071
-11,-12:
0: 13104
- 1: 52428
+ 2: 52428
-11,-11:
0: 48051
- 1: 8
+ 2: 8
-11,-10:
0: 48059
-11,-13:
- 1: 52241
+ 2: 52241
0: 238
-10,-12:
0: 48048
- 1: 17472
+ 2: 17472
-10,-11:
0: 65467
- 1: 68
+ 2: 68
-10,-10:
0: 191
- 1: 47872
+ 2: 47872
-9,-12:
0: 4368
-9,-11:
0: 13105
-9,-10:
0: 51
- 1: 4352
+ 2: 4352
-13,12:
0: 3855
- 1: 240
+ 2: 240
-12,13:
0: 17733
- 1: 176
+ 2: 176
-13,13:
0: 3855
- 1: 240
+ 2: 240
-12,14:
0: 17733
- 1: 176
+ 2: 176
-13,14:
0: 3855
- 1: 240
+ 2: 240
-12,15:
0: 325
- 1: 17584
+ 2: 17584
-13,15:
0: 3855
- 1: 240
+ 2: 240
-12,16:
- 1: 61444
+ 2: 61444
-11,12:
- 1: 240
+ 2: 240
0: 3855
-11,13:
- 1: 240
+ 2: 240
0: 3855
-11,14:
- 1: 240
+ 2: 240
0: 3855
-11,15:
- 1: 240
+ 2: 240
0: 3855
-10,13:
0: 771
- 1: 35000
+ 2: 35000
-10,14:
0: 771
- 1: 35000
+ 2: 35000
-10,15:
0: 771
- 1: 35000
+ 2: 35000
-10,16:
- 1: 64648
+ 2: 64648
-12,-13:
- 1: 255
+ 2: 255
-13,-13:
- 1: 204
+ 2: 204
0: 51
-11,-14:
0: 57344
@@ -10877,70 +10877,70 @@ entities:
0: 12526
21,8:
0: 19
- 1: 29696
+ 2: 29696
22,6:
0: 13311
22,7:
0: 3
- 1: 36352
+ 2: 36352
22,5:
0: 3816
23,7:
- 1: 36608
+ 2: 36608
22,8:
- 1: 234
+ 2: 234
23,5:
0: 1646
23,6:
- 1: 10
+ 2: 10
24,5:
0: 4087
24,7:
- 1: 36608
+ 2: 36608
23,8:
- 1: 248
+ 2: 248
24,6:
0: 238
25,5:
0: 8184
25,6:
0: 17
- 1: 1028
+ 2: 1028
25,7:
- 1: 36608
+ 2: 36608
24,8:
- 1: 248
+ 2: 248
26,5:
0: 30590
26,6:
0: 30706
26,7:
0: 7
- 1: 36608
+ 2: 36608
25,8:
- 1: 248
+ 2: 248
27,5:
0: 1
- 1: 63232
+ 2: 63232
27,6:
0: 30576
27,7:
0: 7
- 1: 36608
+ 2: 36608
26,8:
- 1: 248
+ 2: 248
28,4:
0: 4351
- 1: 8192
+ 2: 8192
28,5:
- 1: 63630
+ 2: 63630
28,6:
- 1: 117
+ 2: 117
0: 12288
28,7:
- 1: 36672
+ 2: 36672
27,8:
- 1: 248
+ 2: 248
25,-4:
0: 52243
25,-3:
@@ -10959,10 +10959,10 @@ entities:
0: 3581
26,-5:
0: 63255
- 1: 8
+ 2: 8
27,-4:
0: 15
- 1: 8704
+ 2: 8704
27,-3:
0: 65504
27,-2:
@@ -10971,7 +10971,7 @@ entities:
0: 4095
27,-5:
0: 61440
- 1: 15
+ 2: 15
28,-4:
0: 34959
28,-3:
@@ -10982,10 +10982,10 @@ entities:
0: 2039
28,-5:
0: 65024
- 1: 1
+ 2: 1
29,-4:
0: 62225
- 1: 4
+ 2: 4
29,-3:
0: 29371
29,-2:
@@ -10994,15 +10994,15 @@ entities:
0: 65399
29,-5:
0: 4352
- 1: 50176
+ 2: 50176
29,0:
0: 65535
30,-4:
0: 4096
- 1: 33010
+ 2: 33010
30,-3:
0: 28979
- 1: 136
+ 2: 136
30,-2:
0: 63255
30,-1:
@@ -11010,11 +11010,11 @@ entities:
30,0:
0: 65535
30,-5:
- 1: 28672
+ 2: 28672
31,-4:
- 1: 240
+ 2: 240
31,-3:
- 1: 61441
+ 2: 61441
31,-2:
0: 65520
31,-1:
@@ -11022,15 +11022,15 @@ entities:
31,0:
0: 65535
32,-4:
- 1: 20222
+ 2: 20222
32,-3:
- 1: 63044
+ 2: 63044
32,-2:
0: 4368
- 1: 17476
+ 2: 17476
32,-1:
0: 13185
- 1: 12
+ 2: 12
28,3:
0: 34952
29,1:
@@ -11041,561 +11041,561 @@ entities:
0: 16382
29,4:
0: 3
- 1: 4096
+ 2: 4096
30,1:
0: 65535
30,2:
0: 3839
30,3:
0: 273
- 1: 50252
+ 2: 50252
31,1:
0: 61135
31,3:
- 1: 61440
+ 2: 61440
32,0:
0: 13107
32,1:
0: 13065
- 1: 50368
+ 2: 50368
32,3:
- 1: 62528
+ 2: 62528
29,5:
- 1: 61441
+ 2: 61441
29,7:
- 1: 36608
+ 2: 36608
28,8:
- 1: 248
+ 2: 248
30,5:
- 1: 61440
+ 2: 61440
30,7:
- 1: 36608
+ 2: 36608
29,8:
- 1: 248
+ 2: 248
31,5:
- 1: 61440
+ 2: 61440
31,7:
- 1: 36608
+ 2: 36608
30,8:
- 1: 248
+ 2: 248
32,5:
- 1: 63044
+ 2: 63044
32,7:
- 1: 1860
+ 2: 1860
31,8:
- 1: 248
+ 2: 248
32,6:
- 1: 50246
+ 2: 50246
32,4:
- 1: 17476
+ 2: 17476
33,5:
- 1: 4369
+ 2: 4369
33,6:
- 1: 4369
+ 2: 4369
33,4:
- 1: 4373
+ 2: 4373
33,3:
- 1: 30020
+ 2: 30020
33,7:
- 1: 1
+ 2: 1
33,1:
0: 3
- 1: 12848
+ 2: 12848
33,0:
0: 43690
33,-1:
0: 43568
- 1: 3
+ 2: 3
33,2:
- 1: 17408
+ 2: 17408
34,0:
0: 30719
34,-1:
0: 30464
35,0:
0: 17
- 2: 65262
+ 1: 65262
35,1:
- 2: 15
+ 1: 15
34,1:
- 1: 2048
+ 2: 2048
35,-1:
- 2: 61424
+ 1: 61424
36,0:
- 2: 4369
+ 1: 4369
0: 52462
36,1:
- 2: 1
- 1: 512
+ 1: 1
+ 2: 512
32,-5:
- 1: 17484
+ 2: 17484
33,-4:
- 1: 9011
+ 2: 9011
33,-3:
- 1: 12834
+ 2: 12834
33,-5:
- 1: 8739
+ 2: 8739
33,-2:
- 1: 2
+ 2: 2
34,-2:
- 1: 32768
+ 2: 32768
36,-1:
- 2: 4368
+ 1: 4368
0: 52224
32,-7:
- 1: 61440
+ 2: 61440
31,-7:
- 1: 61440
+ 2: 61440
32,-6:
- 1: 18176
+ 2: 18176
31,-6:
- 1: 3976
+ 2: 3976
33,-7:
- 1: 12288
+ 2: 12288
33,-6:
- 1: 8706
+ 2: 8706
24,-7:
- 1: 30498
+ 2: 30498
24,-6:
0: 12000
25,-8:
- 1: 62532
+ 2: 62532
25,-7:
- 1: 65252
+ 2: 65252
25,-6:
- 1: 3722
+ 2: 3722
25,-9:
- 1: 50244
+ 2: 50244
26,-8:
- 1: 4369
+ 2: 4369
26,-7:
- 1: 61713
+ 2: 61713
26,-6:
- 1: 36744
+ 2: 36744
26,-9:
- 1: 4369
+ 2: 4369
27,-7:
- 1: 61440
+ 2: 61440
27,-6:
- 1: 3976
+ 2: 3976
28,-7:
- 1: 61440
+ 2: 61440
28,-6:
- 1: 8072
+ 2: 8072
29,-7:
- 1: 61440
+ 2: 61440
29,-6:
- 1: 3976
+ 2: 3976
30,-7:
- 1: 61440
+ 2: 61440
30,-6:
- 1: 3976
+ 2: 3976
-20,5:
- 1: 19
+ 2: 19
-21,4:
- 1: 45329
+ 2: 45329
-21,5:
- 1: 5104
+ 2: 5104
-20,6:
- 1: 17
+ 2: 17
-21,6:
- 1: 241
+ 2: 241
-19,5:
- 1: 19456
+ 2: 19456
-19,6:
- 1: 17484
+ 2: 17484
-19,7:
- 1: 19660
+ 2: 19660
-19,8:
- 1: 19660
+ 2: 19660
-18,6:
- 1: 15
+ 2: 15
-18,7:
- 1: 36092
+ 2: 36092
-18,8:
- 1: 3324
+ 2: 3324
-19,9:
- 1: 52292
+ 2: 52292
-19,10:
- 1: 3148
+ 2: 3148
-18,9:
- 1: 61440
+ 2: 61440
20,9:
0: 4099
- 1: 26112
+ 2: 26112
19,9:
0: 255
- 1: 61440
+ 2: 61440
20,10:
- 1: 17478
+ 2: 17478
20,11:
- 1: 1996
+ 2: 1996
19,11:
- 1: 3840
+ 2: 3840
21,11:
- 1: 1
+ 2: 1
21,10:
- 1: 16034
+ 2: 16034
21,9:
- 1: 8738
+ 2: 8738
22,10:
- 1: 19
+ 2: 19
22,9:
- 1: 8192
+ 2: 8192
16,9:
- 1: 35012
+ 2: 35012
17,9:
- 1: 41728
+ 2: 41728
0: 142
17,10:
- 1: 4371
+ 2: 4371
17,11:
- 1: 3889
+ 2: 3889
18,9:
0: 255
- 1: 61440
+ 2: 61440
18,11:
- 1: 3840
+ 2: 3840
-14,-12:
- 1: 128
+ 2: 128
-14,-11:
0: 2048
-14,-10:
0: 8
-14,13:
- 1: 8866
+ 2: 8866
0: 2056
-14,14:
- 1: 8866
+ 2: 8866
0: 2056
-14,15:
- 1: 8866
+ 2: 8866
0: 2056
-14,16:
- 1: 58914
+ 2: 58914
-13,16:
- 1: 61440
+ 2: 61440
-12,17:
- 1: 240
+ 2: 240
-13,17:
- 1: 240
+ 2: 240
-11,16:
- 1: 61440
+ 2: 61440
-11,17:
- 1: 240
+ 2: 240
-10,17:
- 1: 242
+ 2: 242
17,-9:
- 1: 3840
+ 2: 3840
18,-9:
- 1: 3840
+ 2: 3840
19,-9:
- 1: 3954
+ 2: 3954
19,-12:
- 1: 8738
+ 2: 8738
19,-13:
- 1: 8738
+ 2: 8738
19,-11:
- 1: 8738
+ 2: 8738
19,-10:
- 1: 8738
+ 2: 8738
20,-9:
- 1: 3840
+ 2: 3840
32,8:
- 1: 240
+ 2: 240
33,8:
- 1: 17
+ 2: 17
13,13:
- 1: 4975
+ 2: 4975
13,12:
- 1: 32768
+ 2: 32768
-14,17:
- 1: 232
+ 2: 232
-8,-14:
- 1: 49152
+ 2: 49152
-7,-14:
- 1: 61440
+ 2: 61440
-7,-13:
- 1: 1
+ 2: 1
-6,-14:
- 1: 61440
+ 2: 61440
20,-12:
0: 49344
- 1: 3072
+ 2: 3072
20,-11:
0: 49344
- 1: 3072
+ 2: 3072
20,-10:
0: 49344
- 1: 3072
+ 2: 3072
21,-12:
0: 61680
- 1: 3840
+ 2: 3840
21,-11:
0: 61680
- 1: 3840
+ 2: 3840
21,-10:
0: 61680
- 1: 3840
+ 2: 3840
21,-9:
- 1: 256
+ 2: 256
22,-12:
- 1: 12066
+ 2: 12066
0: 32896
22,-11:
- 1: 12066
+ 2: 12066
0: 32896
22,-10:
- 1: 12066
+ 2: 12066
0: 32896
22,-13:
- 1: 12066
+ 2: 12066
0: 32896
23,-12:
0: 61680
- 1: 3840
+ 2: 3840
23,-11:
0: 61680
- 1: 3840
+ 2: 3840
23,-10:
0: 61680
- 1: 3840
+ 2: 3840
24,-12:
0: 4112
- 1: 256
+ 2: 256
24,-11:
0: 4112
- 1: 256
+ 2: 256
24,-10:
0: 4112
- 1: 256
+ 2: 256
19,-15:
- 1: 62960
+ 2: 62960
19,-14:
- 1: 8743
+ 2: 8743
20,-15:
- 1: 62704
+ 2: 62704
-24,0:
0: 22355
- 1: 8236
+ 2: 8236
-24,-1:
0: 4415
- 1: 192
+ 2: 192
-25,0:
0: 61166
- 1: 1
+ 2: 1
-24,1:
0: 22353
- 1: 8238
+ 2: 8238
-25,1:
0: 61166
- 1: 1
+ 2: 1
-24,2:
0: 12563
- 1: 49164
+ 2: 49164
-25,2:
0: 61166
- 1: 1
+ 2: 1
-24,3:
0: 255
- 1: 2048
+ 2: 2048
-25,3:
0: 140
-23,0:
0: 32769
- 1: 4382
+ 2: 4382
-23,1:
0: 137
- 1: 4374
+ 2: 4374
-23,2:
0: 24065
- 1: 41246
+ 2: 41246
-23,3:
0: 255
- 1: 4864
+ 2: 4864
-23,-1:
- 1: 4512
+ 2: 4512
0: 3679
-23,4:
- 1: 12561
+ 2: 12561
-22,0:
0: 12289
- 1: 286
+ 2: 286
-22,1:
0: 51
- 1: 4364
+ 2: 4364
-22,2:
0: 19969
- 1: 45342
+ 2: 45342
-22,3:
0: 511
- 1: 2048
+ 2: 2048
-22,-1:
- 1: 4528
+ 2: 4528
0: 3663
-24,-4:
- 1: 63744
+ 2: 63744
-25,-4:
- 1: 52360
+ 2: 52360
-24,-2:
0: 61440
- 1: 2048
+ 2: 2048
-25,-2:
0: 32768
- 1: 1
+ 2: 1
-25,-1:
0: 61164
-23,-4:
- 1: 62225
+ 2: 62225
-24,-3:
- 1: 128
+ 2: 128
-23,-3:
- 1: 4400
+ 2: 4400
-23,-2:
- 1: 785
+ 2: 785
0: 61440
-23,-5:
- 1: 61440
+ 2: 61440
-22,-4:
- 1: 63488
+ 2: 63488
-22,-2:
0: 61696
- 1: 2048
+ 2: 2048
-22,-3:
- 1: 128
+ 2: 128
-21,-2:
- 1: 785
+ 2: 785
0: 61440
-21,-5:
- 1: 61440
+ 2: 61440
-27,-3:
- 1: 17484
+ 2: 17484
-27,-2:
- 1: 17484
+ 2: 17484
-27,-1:
- 1: 17484
+ 2: 17484
-27,0:
- 1: 17484
+ 2: 17484
-26,-2:
- 1: 17511
+ 2: 17511
-26,-1:
- 1: 17479
+ 2: 17479
-26,-3:
- 1: 59392
+ 2: 59392
-26,0:
- 1: 25671
+ 2: 25671
-26,-4:
- 1: 8
+ 2: 8
-26,-5:
- 1: 32768
+ 2: 32768
-25,-3:
- 1: 14326
+ 2: 14326
-25,-5:
- 1: 61440
+ 2: 61440
-27,1:
- 1: 17484
+ 2: 17484
-27,2:
- 1: 17484
+ 2: 17484
-27,3:
- 1: 17484
+ 2: 17484
-27,4:
- 1: 17484
+ 2: 17484
-26,1:
- 1: 17511
+ 2: 17511
-26,2:
- 1: 17479
+ 2: 17479
-26,3:
- 1: 25671
+ 2: 25671
-26,4:
- 1: 2279
+ 2: 2279
-24,5:
- 1: 2544
+ 2: 2544
-25,5:
- 1: 36038
+ 2: 36038
-24,6:
- 1: 240
+ 2: 240
-25,6:
- 1: 248
+ 2: 248
-24,4:
- 1: 32768
+ 2: 32768
-23,5:
- 1: 5104
+ 2: 5104
-23,6:
- 1: 241
+ 2: 241
-22,5:
- 1: 2288
+ 2: 2288
-22,6:
- 1: 240
+ 2: 240
-22,4:
- 1: 32768
+ 2: 32768
-27,5:
- 1: 12
+ 2: 12
-25,4:
- 1: 63281
+ 2: 63281
-26,6:
- 1: 136
+ 2: 136
20,-13:
0: 49344
- 1: 3072
+ 2: 3072
21,-15:
- 1: 62704
+ 2: 62704
21,-13:
0: 61680
- 1: 3840
+ 2: 3840
22,-15:
- 1: 62704
+ 2: 62704
22,-14:
- 1: 8192
+ 2: 8192
23,-15:
- 1: 62704
+ 2: 62704
23,-13:
0: 61680
- 1: 3840
+ 2: 3840
24,-15:
- 1: 62704
+ 2: 62704
24,-13:
0: 4112
- 1: 256
+ 2: 256
25,-12:
- 1: 50244
+ 2: 50244
25,-13:
- 1: 50244
+ 2: 50244
25,-11:
- 1: 50244
+ 2: 50244
25,-10:
- 1: 50244
+ 2: 50244
26,-12:
- 1: 4369
+ 2: 4369
26,-11:
- 1: 4369
+ 2: 4369
26,-10:
- 1: 4369
+ 2: 4369
26,-13:
- 1: 4369
+ 2: 4369
25,-15:
- 1: 62576
+ 2: 62576
25,-14:
- 1: 50244
+ 2: 50244
26,-15:
- 1: 4368
+ 2: 4368
26,-14:
- 1: 4369
+ 2: 4369
-18,-8:
- 1: 17484
+ 2: 17484
-18,-9:
- 1: 17600
+ 2: 17600
-18,-7:
- 1: 17476
+ 2: 17476
-18,-6:
- 1: 17476
+ 2: 17476
-17,-9:
- 1: 16
+ 2: 16
37,0:
0: 36607
37,1:
0: 3822
37,2:
- 1: 2053
+ 2: 2053
37,-1:
0: 59630
38,0:
@@ -11605,7 +11605,7 @@ entities:
38,-1:
0: 61559
38,2:
- 1: 1024
+ 2: 1024
39,1:
0: 4095
39,0:
@@ -11613,30 +11613,30 @@ entities:
39,-1:
0: 61183
39,2:
- 1: 516
+ 2: 516
40,0:
0: 57343
40,1:
0: 825
36,-2:
- 1: 8192
+ 2: 8192
37,-2:
- 1: 80
+ 2: 80
4: 57344
37,-3:
- 1: 32768
+ 2: 32768
38,-2:
5: 28672
38,-3:
- 1: 16384
+ 2: 16384
39,-2:
0: 61440
- 1: 64
+ 2: 64
39,-3:
- 1: 8192
+ 2: 8192
40,-2:
0: 12288
- 1: 16
+ 2: 16
40,-1:
0: 64915
-14,-14:
@@ -11646,36 +11646,36 @@ entities:
-13,-14:
0: 12288
40,2:
- 1: 2561
+ 2: 2561
41,0:
0: 29298
41,1:
0: 7
- 1: 19968
+ 2: 19968
41,-1:
0: 30576
41,2:
- 1: 516
+ 2: 516
42,0:
- 1: 3089
+ 2: 3089
42,1:
- 1: 193
+ 2: 193
42,2:
- 1: 12
+ 2: 12
40,-3:
- 1: 40960
+ 2: 40960
41,-3:
- 1: 8192
+ 2: 8192
41,-2:
- 1: 58432
+ 2: 58432
42,-1:
- 1: 49180
+ 2: 49180
42,-2:
- 1: 192
+ 2: 192
-24,-5:
- 1: 61440
+ 2: 61440
-22,-5:
- 1: 61440
+ 2: 61440
uniqueMixes:
- volume: 2500
temperature: 293.15
@@ -11693,10 +11693,10 @@ entities:
- 0
- 0
- volume: 2500
- immutable: True
+ temperature: 235
moles:
- - 0
- - 0
+ - 21.824879
+ - 82.10312
- 0
- 0
- 0
@@ -11708,10 +11708,10 @@ entities:
- 0
- 0
- volume: 2500
- temperature: 235
+ immutable: True
moles:
- - 21.824879
- - 82.10312
+ - 0
+ - 0
- 0
- 0
- 0
@@ -14801,6 +14801,13 @@ entities:
rot: -1.5707963267948966 rad
pos: 81.5,-30.5
parent: 1
+- proto: AirlockExternalGlassShuttleMiningFilled
+ entities:
+ - uid: 19218
+ components:
+ - type: Transform
+ pos: -46.5,-52.5
+ parent: 1
- proto: AirlockExternalGlassShuttleShipyard
entities:
- uid: 6293
@@ -17380,13 +17387,6 @@ entities:
- type: Transform
pos: 12.5,45.5
parent: 1
-- proto: AlwaysPoweredSmallLightMaintenanceRed
- entities:
- - uid: 25397
- components:
- - type: Transform
- pos: -62.5,-8.5
- parent: 1
- proto: AmeController
entities:
- uid: 5808
@@ -64188,6 +64188,13 @@ entities:
- type: Transform
pos: 75.5,-22.5
parent: 1
+- proto: CrateNitrogenInternals
+ entities:
+ - uid: 20996
+ components:
+ - type: Transform
+ pos: -0.5,-9.5
+ parent: 1
- proto: CrateNPCChicken
entities:
- uid: 1184
@@ -64384,13 +64391,6 @@ entities:
- type: Transform
pos: 41.5,44.5
parent: 1
-- proto: CrateSlimepersonLifeSupport
- entities:
- - uid: 20996
- components:
- - type: Transform
- pos: -0.5,-9.5
- parent: 1
- proto: CrateTrainingBombs
entities:
- uid: 25232
@@ -65554,6 +65554,25 @@ entities:
rot: -1.5707963267948966 rad
pos: 120.467674,14.534573
parent: 1
+- proto: DimLightBulb
+ entities:
+ - uid: 13934
+ components:
+ - type: Transform
+ pos: -7.290815,-33.503067
+ parent: 1
+ - uid: 13935
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -7.551232,-33.51349
+ parent: 1
+ - uid: 22745
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -17.71097,48.727478
+ parent: 1
- proto: DiseaseDiagnoser
entities:
- uid: 9894
@@ -82546,6 +82565,11 @@ entities:
- type: Transform
pos: 58.153984,43.567505
parent: 1
+ - uid: 18827
+ components:
+ - type: Transform
+ pos: 76.67503,-5.5288234
+ parent: 1
- uid: 20642
components:
- type: Transform
@@ -128438,6 +128462,16 @@ entities:
- type: Transform
pos: 129.5,-4.5
parent: 1
+ - uid: 18828
+ components:
+ - type: Transform
+ pos: -45.5,-52.5
+ parent: 1
+ - uid: 18829
+ components:
+ - type: Transform
+ pos: -47.5,-52.5
+ parent: 1
- uid: 19930
components:
- type: Transform
@@ -132963,25 +132997,6 @@ entities:
rot: 1.5707963267948966 rad
pos: -17.49222,48.425186
parent: 1
-- proto: LightBulbMaintenanceRed
- entities:
- - uid: 13934
- components:
- - type: Transform
- pos: -7.290815,-33.503067
- parent: 1
- - uid: 13935
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -7.551232,-33.51349
- parent: 1
- - uid: 22745
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -17.71097,48.727478
- parent: 1
- proto: Lighter
entities:
- uid: 4003
@@ -133607,6 +133622,13 @@ entities:
- type: Transform
pos: 86.5,-12.5
parent: 1
+- proto: LockerPsychologistFilled
+ entities:
+ - uid: 18826
+ components:
+ - type: Transform
+ pos: 77.5,-6.5
+ parent: 1
- proto: LockerQuarterMasterFilled
entities:
- uid: 6768
@@ -139152,6 +139174,461 @@ entities:
- type: Transform
pos: 101.5,-19.5
parent: 1
+- proto: PoweredDimSmallLight
+ entities:
+ - uid: 680
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -61.5,16.5
+ parent: 1
+ - uid: 910
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -2.5,26.5
+ parent: 1
+ - uid: 1032
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -5.5,26.5
+ parent: 1
+ - uid: 3822
+ components:
+ - type: Transform
+ pos: -62.5,-3.5
+ parent: 1
+ - uid: 3823
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -64.5,15.5
+ parent: 1
+ - uid: 5634
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 96.5,17.5
+ parent: 1
+ - uid: 7627
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 55.5,-9.5
+ parent: 1
+ - uid: 14412
+ components:
+ - type: Transform
+ pos: 3.5,-23.5
+ parent: 1
+ - uid: 14413
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -16.5,-38.5
+ parent: 1
+ - uid: 14480
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 6.5,-33.5
+ parent: 1
+ - uid: 14481
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 6.5,-32.5
+ parent: 1
+ - uid: 14482
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 17.5,-32.5
+ parent: 1
+ - uid: 14483
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 17.5,-33.5
+ parent: 1
+ - uid: 14592
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 56.5,-15.5
+ parent: 1
+ - uid: 16380
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -18.5,21.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 16949
+ components:
+ - type: Transform
+ pos: 20.5,-23.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17212
+ components:
+ - type: Transform
+ pos: -11.5,-41.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17214
+ components:
+ - type: Transform
+ pos: -14.5,-31.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17215
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -2.5,-30.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17219
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -35.5,-29.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17220
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -31.5,-23.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17223
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -27.5,-9.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17225
+ components:
+ - type: Transform
+ pos: -10.5,-20.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17226
+ components:
+ - type: Transform
+ pos: -2.5,-18.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17236
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -41.5,-3.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17246
+ components:
+ - type: Transform
+ pos: -31.5,32.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17248
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -22.5,18.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17249
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -26.5,13.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17254
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -11.5,26.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17262
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 25.5,27.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17265
+ components:
+ - type: Transform
+ pos: 39.5,28.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17266
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 49.5,13.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17273
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 51.5,-9.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17275
+ components:
+ - type: Transform
+ pos: 36.5,-20.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17276
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 40.5,-21.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17277
+ components:
+ - type: Transform
+ pos: 30.5,-19.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17285
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 29.5,-30.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17287
+ components:
+ - type: Transform
+ pos: 41.5,-36.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17289
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 41.5,-40.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17295
+ components:
+ - type: Transform
+ pos: 50.5,-24.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17304
+ components:
+ - type: Transform
+ pos: 89.5,-14.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17315
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 51.5,32.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17321
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 33.5,38.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17322
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 39.5,46.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17326
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -17.5,44.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17330
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -21.5,42.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17332
+ components:
+ - type: Transform
+ pos: -10.5,40.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17334
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -31.5,27.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17339
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 91.5,19.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 17341
+ components:
+ - type: Transform
+ pos: 93.5,22.5
+ parent: 1
+ - type: ApcPowerReceiver
+ powerLoad: 0
+ - uid: 20591
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 100.5,21.5
+ parent: 1
+ - uid: 20603
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 91.5,11.5
+ parent: 1
+ - uid: 20610
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 117.5,-13.5
+ parent: 1
+ - uid: 21455
+ components:
+ - type: Transform
+ pos: 97.5,-12.5
+ parent: 1
+ - uid: 22568
+ components:
+ - type: Transform
+ pos: 111.5,17.5
+ parent: 1
+ - uid: 22619
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 105.5,-17.5
+ parent: 1
+ - uid: 22620
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 106.5,23.5
+ parent: 1
+ - uid: 22621
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 104.5,23.5
+ parent: 1
+ - uid: 23489
+ components:
+ - type: Transform
+ pos: 28.5,30.5
+ parent: 1
+ - uid: 23927
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 45.5,-13.5
+ parent: 1
+ - uid: 25317
+ components:
+ - type: Transform
+ pos: 75.5,-24.5
+ parent: 1
+ - uid: 25397
+ components:
+ - type: Transform
+ pos: -62.5,-8.5
+ parent: 1
+ - uid: 26840
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 97.5,-15.5
+ parent: 1
+ - uid: 26841
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 101.5,-19.5
+ parent: 1
+ - uid: 26880
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 113.5,-17.5
+ parent: 1
+ - uid: 26881
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 116.5,-17.5
+ parent: 1
+ - uid: 26882
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 95.5,-15.5
+ parent: 1
- proto: Poweredlight
entities:
- uid: 110
@@ -142400,456 +142877,6 @@ entities:
rot: 3.141592653589793 rad
pos: -64.5,-1.5
parent: 1
-- proto: PoweredSmallLightMaintenanceRed
- entities:
- - uid: 680
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -61.5,16.5
- parent: 1
- - uid: 910
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -2.5,26.5
- parent: 1
- - uid: 1032
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -5.5,26.5
- parent: 1
- - uid: 3822
- components:
- - type: Transform
- pos: -62.5,-3.5
- parent: 1
- - uid: 3823
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -64.5,15.5
- parent: 1
- - uid: 5634
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 96.5,17.5
- parent: 1
- - uid: 7627
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 55.5,-9.5
- parent: 1
- - uid: 14412
- components:
- - type: Transform
- pos: 3.5,-23.5
- parent: 1
- - uid: 14413
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -16.5,-38.5
- parent: 1
- - uid: 14480
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 6.5,-33.5
- parent: 1
- - uid: 14481
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 6.5,-32.5
- parent: 1
- - uid: 14482
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 17.5,-32.5
- parent: 1
- - uid: 14483
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 17.5,-33.5
- parent: 1
- - uid: 14592
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 56.5,-15.5
- parent: 1
- - uid: 16380
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -18.5,21.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 16949
- components:
- - type: Transform
- pos: 20.5,-23.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17212
- components:
- - type: Transform
- pos: -11.5,-41.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17214
- components:
- - type: Transform
- pos: -14.5,-31.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17215
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -2.5,-30.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17219
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -35.5,-29.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17220
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -31.5,-23.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17223
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -27.5,-9.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17225
- components:
- - type: Transform
- pos: -10.5,-20.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17226
- components:
- - type: Transform
- pos: -2.5,-18.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17236
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -41.5,-3.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17246
- components:
- - type: Transform
- pos: -31.5,32.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17248
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -22.5,18.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17249
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -26.5,13.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17254
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -11.5,26.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17262
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 25.5,27.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17265
- components:
- - type: Transform
- pos: 39.5,28.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17266
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 49.5,13.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17273
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 51.5,-9.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17275
- components:
- - type: Transform
- pos: 36.5,-20.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17276
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 40.5,-21.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17277
- components:
- - type: Transform
- pos: 30.5,-19.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17285
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 29.5,-30.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17287
- components:
- - type: Transform
- pos: 41.5,-36.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17289
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 41.5,-40.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17295
- components:
- - type: Transform
- pos: 50.5,-24.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17304
- components:
- - type: Transform
- pos: 89.5,-14.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17315
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 51.5,32.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17321
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 33.5,38.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17322
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 39.5,46.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17326
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -17.5,44.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17330
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -21.5,42.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17332
- components:
- - type: Transform
- pos: -10.5,40.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17334
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -31.5,27.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17339
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 91.5,19.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 17341
- components:
- - type: Transform
- pos: 93.5,22.5
- parent: 1
- - type: ApcPowerReceiver
- powerLoad: 0
- - uid: 20591
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 100.5,21.5
- parent: 1
- - uid: 20603
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 91.5,11.5
- parent: 1
- - uid: 20610
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 117.5,-13.5
- parent: 1
- - uid: 21455
- components:
- - type: Transform
- pos: 97.5,-12.5
- parent: 1
- - uid: 22568
- components:
- - type: Transform
- pos: 111.5,17.5
- parent: 1
- - uid: 22619
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 105.5,-17.5
- parent: 1
- - uid: 22620
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 106.5,23.5
- parent: 1
- - uid: 22621
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 104.5,23.5
- parent: 1
- - uid: 23489
- components:
- - type: Transform
- pos: 28.5,30.5
- parent: 1
- - uid: 23927
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 45.5,-13.5
- parent: 1
- - uid: 25317
- components:
- - type: Transform
- pos: 75.5,-24.5
- parent: 1
- - uid: 26840
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 97.5,-15.5
- parent: 1
- - uid: 26841
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 101.5,-19.5
- parent: 1
- - uid: 26880
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 113.5,-17.5
- parent: 1
- - uid: 26881
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 116.5,-17.5
- parent: 1
- - uid: 26882
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 95.5,-15.5
- parent: 1
- proto: PresentRandom
entities:
- uid: 22566
@@ -150785,6 +150812,16 @@ entities:
- type: Transform
pos: -63.5,-8.5
parent: 1
+ - uid: 18830
+ components:
+ - type: Transform
+ pos: -47.5,-52.5
+ parent: 1
+ - uid: 19217
+ components:
+ - type: Transform
+ pos: -45.5,-52.5
+ parent: 1
- uid: 20148
components:
- type: Transform
@@ -165475,6 +165512,7 @@ entities:
actions:
- ActionVendingThrow
- ActionVendingThrow
+ - ActionVendingThrow
- proto: VendingMachineClothing
entities:
- uid: 1697
@@ -165498,6 +165536,7 @@ entities:
actions:
- ActionVendingThrow
- ActionVendingThrow
+ - ActionVendingThrow
- proto: VendingMachineCondiments
entities:
- uid: 1019
@@ -187675,7 +187714,7 @@ entities:
lastSignals:
DoorStatus: True
- type: Door
- secondsUntilStateChange: -121221.1
+ secondsUntilStateChange: -121432.9
state: Opening
- uid: 5096
components:
@@ -187697,7 +187736,7 @@ entities:
lastSignals:
DoorStatus: True
- type: Door
- secondsUntilStateChange: -121221.1
+ secondsUntilStateChange: -121432.9
state: Opening
- uid: 5498
components:
@@ -187713,7 +187752,7 @@ entities:
lastSignals:
DoorStatus: True
- type: Door
- secondsUntilStateChange: -120944.72
+ secondsUntilStateChange: -121156.516
state: Opening
- uid: 8696
components:
@@ -187746,7 +187785,7 @@ entities:
lastSignals:
DoorStatus: True
- type: Door
- secondsUntilStateChange: -120942.836
+ secondsUntilStateChange: -121154.63
state: Opening
- uid: 18835
components:
@@ -187758,7 +187797,7 @@ entities:
lastSignals:
DoorStatus: True
- type: Door
- secondsUntilStateChange: -120939.836
+ secondsUntilStateChange: -121151.63
state: Opening
- uid: 23917
components:
diff --git a/Resources/Maps/tortuga.yml b/Resources/Maps/tortuga.yml
index f7c004a8c62..37b4562d381 100644
--- a/Resources/Maps/tortuga.yml
+++ b/Resources/Maps/tortuga.yml
@@ -449,7 +449,7 @@ entities:
version: 6
3,-1:
ind: 3,-1
- tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATgAAAAAAAAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,7:
ind: -1,7
@@ -10133,7 +10133,8 @@ entities:
-13,-1:
0: 33791
-12,0:
- 0: 30583
+ 0: 14199
+ 2: 16384
-12,-5:
0: 59630
-11,-4:
@@ -10982,10 +10983,10 @@ entities:
0: 65473
-4,14:
0: 4371
- 2: 52352
+ 3: 52352
-4,15:
0: 56705
- 2: 12
+ 3: 12
-4,16:
0: 61129
-3,12:
@@ -10993,10 +10994,10 @@ entities:
-3,13:
0: 65422
-3,14:
- 2: 30512
+ 3: 30512
0: 8
-3,15:
- 2: 7
+ 3: 7
0: 13056
-3,11:
0: 61198
@@ -11011,7 +11012,7 @@ entities:
1: 61440
-2,11:
0: 65281
- 2: 12
+ 3: 12
-1,12:
0: 65521
-1,13:
@@ -11023,7 +11024,7 @@ entities:
1: 61440
-1,11:
0: 65518
- 2: 1
+ 3: 1
0,12:
0: 65520
0,13:
@@ -11063,7 +11064,7 @@ entities:
0: 30583
-6,23:
0: 61527
- 3: 32
+ 4: 32
-6,19:
0: 30711
-6,24:
@@ -11199,8 +11200,8 @@ entities:
0: 65535
7,16:
0: 255
- 4: 32768
- 5: 8192
+ 5: 32768
+ 6: 8192
8,12:
0: 30583
8,13:
@@ -11337,11 +11338,11 @@ entities:
0: 26214
-1,9:
0: 15
- 2: 65280
+ 3: 65280
0,10:
0: 30566
-1,10:
- 2: 4607
+ 3: 4607
0: 60928
0,7:
0: 60637
@@ -11668,8 +11669,8 @@ entities:
0: 4359
8,16:
0: 255
- 6: 8192
- 7: 32768
+ 7: 8192
+ 8: 32768
9,12:
0: 14327
9,13:
@@ -11682,7 +11683,7 @@ entities:
0: 30583
9,16:
0: 255
- 7: 40960
+ 8: 40960
10,12:
0: 2032
10,13:
@@ -11695,7 +11696,7 @@ entities:
0: 65535
10,16:
0: 255
- 7: 40960
+ 8: 40960
11,12:
0: 30583
11,13:
@@ -11730,10 +11731,10 @@ entities:
0: 64443
-2,9:
0: 5003
- 2: 52224
+ 3: 52224
-2,10:
0: 4400
- 2: 52428
+ 3: 52428
-2,7:
0: 47359
-3,5:
@@ -12237,11 +12238,11 @@ entities:
23,13:
0: 4369
8,17:
- 6: 34
- 7: 136
+ 7: 34
+ 8: 136
7,17:
- 4: 136
- 5: 34
+ 5: 136
+ 6: 34
8,18:
1: 65311
7,18:
@@ -12255,7 +12256,7 @@ entities:
9,19:
1: 29936
9,17:
- 7: 170
+ 8: 170
9,20:
1: 62579
10,18:
@@ -12263,7 +12264,7 @@ entities:
10,19:
1: 17532
10,17:
- 7: 170
+ 8: 170
10,20:
1: 29764
11,18:
@@ -13091,6 +13092,21 @@ entities:
- 0
- 0
- 0
+ - volume: 2500
+ temperature: 293.1495
+ moles:
+ - 20.078888
+ - 75.53487
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- volume: 2500
temperature: 235
moles:
@@ -16798,6 +16814,14 @@ entities:
rot: 1.5707963267948966 rad
pos: 59.5,-20.5
parent: 33
+- proto: AirlockExternalGlassShuttleMiningFilled
+ entities:
+ - uid: 33525
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 53.5,-0.5
+ parent: 33
- proto: AirlockExternalGlassShuttleShipyard
entities:
- uid: 1495
@@ -67196,22 +67220,6 @@ entities:
- type: Transform
pos: -45.5,64.5
parent: 33
- - uid: 8928
- components:
- - type: Transform
- pos: -45.5,3.5
- parent: 33
- - type: ContainerContainer
- containers:
- entity_storage: !type:Container
- showEnts: False
- occludes: True
- ents:
- - 9007
- paper_label: !type:ContainerSlot
- showEnts: False
- occludes: True
- ent: null
- uid: 18499
components:
- type: Transform
@@ -72863,6 +72871,26 @@ entities:
- type: Transform
pos: -47.132412,74.153694
parent: 33
+- proto: DimLightBulb
+ entities:
+ - uid: 10634
+ components:
+ - type: Transform
+ parent: 10633
+ - type: Physics
+ canCollide: False
+ - uid: 10923
+ components:
+ - type: Transform
+ parent: 10633
+ - type: Physics
+ canCollide: False
+ - uid: 17651
+ components:
+ - type: Transform
+ parent: 10633
+ - type: Physics
+ canCollide: False
- proto: DiseaseDiagnoser
entities:
- uid: 30498
@@ -142126,6 +142154,16 @@ entities:
- type: Transform
pos: -19.5,-97.5
parent: 33
+ - uid: 33528
+ components:
+ - type: Transform
+ pos: 52.5,-0.5
+ parent: 33
+ - uid: 33529
+ components:
+ - type: Transform
+ pos: 54.5,-0.5
+ parent: 33
- proto: GrilleBroken
entities:
- uid: 5569
@@ -144700,26 +144738,6 @@ entities:
rot: -1.5707963267948966 rad
pos: 6.222972,-33.428795
parent: 33
-- proto: LightBulbMaintenanceRed
- entities:
- - uid: 10634
- components:
- - type: Transform
- parent: 10633
- - type: Physics
- canCollide: False
- - uid: 10923
- components:
- - type: Transform
- parent: 10633
- - type: Physics
- canCollide: False
- - uid: 17651
- components:
- - type: Transform
- parent: 10633
- - type: Physics
- canCollide: False
- proto: Lighter
entities:
- uid: 4387
@@ -145462,6 +145480,42 @@ entities:
showEnts: False
occludes: True
ent: null
+- proto: LockerPsychologistFilled
+ entities:
+ - uid: 8928
+ components:
+ - type: Transform
+ pos: -45.5,3.5
+ parent: 33
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.1465
+ moles:
+ - 1.7459903
+ - 6.568249
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - type: ContainerContainer
+ containers:
+ entity_storage: !type:Container
+ showEnts: False
+ occludes: True
+ ents:
+ - 9007
+ paper_label: !type:ContainerSlot
+ showEnts: False
+ occludes: True
+ ent: null
- proto: LockerQuarterMasterFilled
entities:
- uid: 11309
@@ -160018,6 +160072,223 @@ entities:
parent: 31478
- type: Physics
canCollide: False
+- proto: PoweredDimSmallLight
+ entities:
+ - uid: 1132
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -16.5,54.5
+ parent: 33
+ - uid: 5193
+ components:
+ - type: Transform
+ pos: -39.5,-19.5
+ parent: 33
+ - uid: 5930
+ components:
+ - type: Transform
+ pos: 16.5,6.5
+ parent: 33
+ - uid: 5936
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 28.5,36.5
+ parent: 33
+ - uid: 5937
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 17.5,2.5
+ parent: 33
+ - uid: 5938
+ components:
+ - type: Transform
+ pos: 38.5,50.5
+ parent: 33
+ - uid: 5939
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 22.5,55.5
+ parent: 33
+ - uid: 5941
+ components:
+ - type: Transform
+ pos: 7.5,72.5
+ parent: 33
+ - uid: 5946
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 2.5,35.5
+ parent: 33
+ - uid: 5947
+ components:
+ - type: Transform
+ pos: 2.5,47.5
+ parent: 33
+ - uid: 5949
+ components:
+ - type: Transform
+ pos: -16.5,56.5
+ parent: 33
+ - uid: 5954
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 36.5,-1.5
+ parent: 33
+ - uid: 5957
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 18.5,17.5
+ parent: 33
+ - uid: 5960
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 27.5,25.5
+ parent: 33
+ - uid: 9778
+ components:
+ - type: Transform
+ pos: 14.5,52.5
+ parent: 33
+ - uid: 9809
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 7.5,74.5
+ parent: 33
+ - uid: 9810
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: 3.5,85.5
+ parent: 33
+ - uid: 9811
+ components:
+ - type: Transform
+ pos: 9.5,82.5
+ parent: 33
+ - uid: 12710
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -86.5,-10.5
+ parent: 33
+ - uid: 12711
+ components:
+ - type: Transform
+ pos: -88.5,-0.5
+ parent: 33
+ - uid: 12738
+ components:
+ - type: Transform
+ pos: -58.5,24.5
+ parent: 33
+ - uid: 12740
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -35.5,26.5
+ parent: 33
+ - uid: 12741
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -38.5,26.5
+ parent: 33
+ - uid: 12742
+ components:
+ - type: Transform
+ pos: -42.5,26.5
+ parent: 33
+ - uid: 12747
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -15.5,86.5
+ parent: 33
+ - uid: 12759
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: 3.5,25.5
+ parent: 33
+ - uid: 12760
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -10.5,47.5
+ parent: 33
+ - uid: 12766
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -7.5,61.5
+ parent: 33
+ - uid: 18480
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -43.5,-30.5
+ parent: 33
+ - uid: 18501
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -92.5,-22.5
+ parent: 33
+ - uid: 18508
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -94.5,6.5
+ parent: 33
+ - uid: 20879
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -69.5,18.5
+ parent: 33
+ - uid: 26813
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -92.5,-25.5
+ parent: 33
+ - uid: 28833
+ components:
+ - type: Transform
+ pos: -21.5,96.5
+ parent: 33
+ - uid: 28834
+ components:
+ - type: Transform
+ rot: 3.141592653589793 rad
+ pos: -21.5,98.5
+ parent: 33
+ - uid: 28835
+ components:
+ - type: Transform
+ rot: 1.5707963267948966 rad
+ pos: -20.5,97.5
+ parent: 33
+ - uid: 28836
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -22.5,97.5
+ parent: 33
+ - uid: 30544
+ components:
+ - type: Transform
+ pos: -72.5,19.5
+ parent: 33
- proto: Poweredlight
entities:
- uid: 459
@@ -163802,223 +164073,6 @@ entities:
rot: 3.141592653589793 rad
pos: -83.5,12.5
parent: 33
-- proto: PoweredSmallLightMaintenanceRed
- entities:
- - uid: 1132
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -16.5,54.5
- parent: 33
- - uid: 5193
- components:
- - type: Transform
- pos: -39.5,-19.5
- parent: 33
- - uid: 5930
- components:
- - type: Transform
- pos: 16.5,6.5
- parent: 33
- - uid: 5936
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 28.5,36.5
- parent: 33
- - uid: 5937
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 17.5,2.5
- parent: 33
- - uid: 5938
- components:
- - type: Transform
- pos: 38.5,50.5
- parent: 33
- - uid: 5939
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 22.5,55.5
- parent: 33
- - uid: 5941
- components:
- - type: Transform
- pos: 7.5,72.5
- parent: 33
- - uid: 5946
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 2.5,35.5
- parent: 33
- - uid: 5947
- components:
- - type: Transform
- pos: 2.5,47.5
- parent: 33
- - uid: 5949
- components:
- - type: Transform
- pos: -16.5,56.5
- parent: 33
- - uid: 5954
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 36.5,-1.5
- parent: 33
- - uid: 5957
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 18.5,17.5
- parent: 33
- - uid: 5960
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: 27.5,25.5
- parent: 33
- - uid: 9778
- components:
- - type: Transform
- pos: 14.5,52.5
- parent: 33
- - uid: 9809
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 7.5,74.5
- parent: 33
- - uid: 9810
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: 3.5,85.5
- parent: 33
- - uid: 9811
- components:
- - type: Transform
- pos: 9.5,82.5
- parent: 33
- - uid: 12710
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -86.5,-10.5
- parent: 33
- - uid: 12711
- components:
- - type: Transform
- pos: -88.5,-0.5
- parent: 33
- - uid: 12738
- components:
- - type: Transform
- pos: -58.5,24.5
- parent: 33
- - uid: 12740
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -35.5,26.5
- parent: 33
- - uid: 12741
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -38.5,26.5
- parent: 33
- - uid: 12742
- components:
- - type: Transform
- pos: -42.5,26.5
- parent: 33
- - uid: 12747
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -15.5,86.5
- parent: 33
- - uid: 12759
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 3.5,25.5
- parent: 33
- - uid: 12760
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -10.5,47.5
- parent: 33
- - uid: 12766
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -7.5,61.5
- parent: 33
- - uid: 18480
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -43.5,-30.5
- parent: 33
- - uid: 18501
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -92.5,-22.5
- parent: 33
- - uid: 18508
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -94.5,6.5
- parent: 33
- - uid: 20879
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -69.5,18.5
- parent: 33
- - uid: 26813
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -92.5,-25.5
- parent: 33
- - uid: 28833
- components:
- - type: Transform
- pos: -21.5,96.5
- parent: 33
- - uid: 28834
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: -21.5,98.5
- parent: 33
- - uid: 28835
- components:
- - type: Transform
- rot: 1.5707963267948966 rad
- pos: -20.5,97.5
- parent: 33
- - uid: 28836
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -22.5,97.5
- parent: 33
- - uid: 30544
- components:
- - type: Transform
- pos: -72.5,19.5
- parent: 33
- proto: PresentRandom
entities:
- uid: 2958
@@ -174192,6 +174246,16 @@ entities:
- type: Transform
pos: -42.5,-70.5
parent: 33
+ - uid: 33526
+ components:
+ - type: Transform
+ pos: 52.5,-0.5
+ parent: 33
+ - uid: 33527
+ components:
+ - type: Transform
+ pos: 54.5,-0.5
+ parent: 33
- proto: RemoteSignaller
entities:
- uid: 27714
@@ -205446,6 +205510,16 @@ entities:
- type: Transform
pos: -49.5,-41.5
parent: 33
+ - uid: 33523
+ components:
+ - type: Transform
+ pos: 51.5,-0.5
+ parent: 33
+ - uid: 33524
+ components:
+ - type: Transform
+ pos: 55.5,-0.5
+ parent: 33
- proto: WallReinforcedRust
entities:
- uid: 31423
diff --git a/Resources/Migrations/deltaMigrations.yml b/Resources/Migrations/deltaMigrations.yml
index 590fb4215b5..d0c682215f9 100644
--- a/Resources/Migrations/deltaMigrations.yml
+++ b/Resources/Migrations/deltaMigrations.yml
@@ -125,4 +125,9 @@ VendingMachineAutomatrobe: null
SuitStorageSec: SuitStorageSecDeltaV
# 2024-12-17
+LightBulbMaintenanceRed: DimLightBulb
+PoweredSmallLightMaintenanceRed: PoweredDimSmallLight
+AlwaysPoweredSmallLightMaintenanceRed: PoweredDimSmallLight
+
+# 2024-12-22
VendingMachineRestockSalvageEquipment: null
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
index 59f0c33f1ca..6a254afc0bc 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
@@ -238,23 +238,6 @@
- type: AccessReader
access: [["Salvage"]]
-# DeltaV - Adding Paramedic Suit Storage Unit
-#Paramedic hardsuit
-- type: entity
- id: SuitStorageParamedic
- parent: SuitStorageBase
- suffix: Paramedic
- components:
- - type: StorageFill
- contents:
- - id: NitrogenTankFilled
- - id: OxygenTankFilled
- - id: ClothingOuterHardsuitVoidParamed
- - id: ClothingHeadHelmetVoidParamed
- - id: ClothingMaskBreathMedical
- - type: AccessReader
- access: [ [ "Paramedic" ] ]
-
# DeltaV - Adding Corpsman Suit Storage Unit
- type: entity
id: SuitStorageCorpsman
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml b/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml
index 13b100f8ec5..0a133d070cd 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml
@@ -13,7 +13,10 @@
- id: ClothingShoesColorBlack
amount: 2
- id: ClothingMaskMuzzle
- - id: ClothingHeadsetPrison #DV - Added prisoner headsets
+ # Begin DeltaV modifications
+ - id: ClothingHeadsetPrison # Added prisoner headsets
+ - id: PrisonKnife # Bread cutting knife, does 4 damage total.
+ # End DeltaV modifications
#- type: entity
# id: WardrobePajamaFilled
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
index 7343233b6b9..e897c1b6895 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
@@ -14,7 +14,7 @@
ReagentContainerOliveoil: 2
ReagentContainerMayo: 1
VariantCubeBox: 1
- FoodContainerEgg: 1
+ FoodContainerEgg: 2 # DeltaV - more eggs
DrinkMilkCarton: 2
DrinkSoyMilkCarton: 1
FoodButter: 3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml
index 2323d2f88b6..6c9d9be433b 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml
@@ -21,4 +21,10 @@
ClothingOuterApronChemist: 2 # Realistic PPE apron for chemistry
ClothingEyesGlassesChemist: 2 # Safety glasses
ClothingHandsGlovesChemist: 2 # Heavy duty chemistry gloves
- # End of modified code
\ No newline at end of file
+ # End of modified code
+ # Begin DeltaV modifications - Add contraband to the chemdrobe
+ contrabandInventory:
+ ClothingMaskInterdyneChemistry: 1
+ ClothingOuterInterdyneChemistrySuit: 1
+ ClothingUniformInterdyneChemist: 1
+ # End of DeltaV modifications
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml
index 98513a48a4a..171eb196f77 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml
@@ -2,6 +2,7 @@
id: DrGibbInventory
startingInventory:
DrinkDrGibbCan: 4
+ DrinkDrGibbBloodRedCan: 2 # Delta-V
DrinkGrapeCan: 2
DrinkRootBeerCan: 2
DrinkIcedTeaCan: 2
diff --git a/Resources/Prototypes/DeltaV/Actions/types.yml b/Resources/Prototypes/DeltaV/Actions/types.yml
index d1c7ac7ca35..8e8218a0798 100644
--- a/Resources/Prototypes/DeltaV/Actions/types.yml
+++ b/Resources/Prototypes/DeltaV/Actions/types.yml
@@ -1,4 +1,4 @@
-- type: entity
+- type: entity
id: ActionOpenRadioImplant
name: Open Radio Implant
description: Opens the bluespace key compartment of the radio implant embedded in your skull.
@@ -34,3 +34,17 @@
sprite: Structures/Furniture/Tables/generic.rsi
state: full
event: !type:ToggleCrawlingStateEvent
+
+- type: entity
+ id: ActionPrecognition
+ name: Precognition
+ description: See into the future to get a hint about the next random event.
+ components:
+ - type: InstantAction
+ icon:
+ sprite: DeltaV/Interface/Actions/actions_psionics.rsi
+ state: precognition
+ useDelay: 240
+ checkCanInteract: false
+ checkConsciousness: false
+ event: !type:PrecognitionPowerActionEvent
diff --git a/Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml b/Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml
new file mode 100644
index 00000000000..c0388ffd0ee
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml
@@ -0,0 +1,9 @@
+- type: entity
+ parent: OrganAnimalLungs
+ id: OrganAshWalkerLungs
+ name: ashwalker lungs
+ description: These lungs are adapted from isolation in lavaland, capable of withstanding the low oxygen content and ash storms.
+ components:
+ - type: Lung
+ saturationLoss: 0.5
+ # TODO SHITMED: add AshStormImmune when transplanted
diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml
new file mode 100644
index 00000000000..59c55e89f4e
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml
@@ -0,0 +1,50 @@
+# TODO: will need updating with shitmed
+- type: body
+ name: ashwalker
+ id: AshWalker
+ root: torso
+ slots:
+ head:
+ part: HeadReptilian
+ connections:
+ - torso
+ organs:
+ brain: OrganHumanBrain
+ eyes: OrganHumanEyes
+ torso:
+ part: TorsoReptilian
+ organs:
+ heart: OrganAnimalHeart
+ lungs: OrganAshWalkerLungs
+ stomach: OrganReptilianStomach
+ liver: OrganAnimalLiver
+ kidneys: OrganHumanKidneys
+ connections:
+ - right arm
+ - left arm
+ - right leg
+ - left leg
+ right arm:
+ part: RightArmReptilian
+ connections:
+ - right hand
+ left arm:
+ part: LeftArmReptilian
+ connections:
+ - left hand
+ right hand:
+ part: RightHandReptilian
+ left hand:
+ part: LeftHandReptilian
+ right leg:
+ part: RightLegReptilian
+ connections:
+ - right foot
+ left leg:
+ part: LeftLegReptilian
+ connections:
+ - left foot
+ right foot:
+ part: RightFootReptilian
+ left foot:
+ part: LeftFootReptilian
diff --git a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml
index f8645aa058a..325eb6e078a 100644
--- a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml
+++ b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml
@@ -57,3 +57,33 @@
cost: 1500
category: Food
group: market
+
+- type: cargoProduct
+ id: FoodBeerKeg
+ icon:
+ sprite: DeltaV/Objects/Storage/keg.rsi
+ state: base
+ product: WoodenKegBeer
+ cost: 500
+ category: Food
+ group: market
+
+- type: cargoProduct
+ id: FoodRootBeerKeg
+ icon:
+ sprite: DeltaV/Objects/Storage/keg.rsi
+ state: base
+ product: WoodenKegRootBeer
+ cost: 500
+ category: Food
+ group: market
+
+- type: cargoProduct
+ id: FoodWineBarrel
+ icon:
+ sprite: DeltaV/Objects/Storage/keg.rsi
+ state: base
+ product: WoodenKegWine
+ cost: 500
+ category: Food
+ group: market
diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml
new file mode 100644
index 00000000000..760401ef161
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml
@@ -0,0 +1,23 @@
+- type: entityTable
+ id: PsychologistLockerFill
+ table: !type:AllSelector
+ children:
+ - id: BoxFolderWhite
+ - id: PillCanisterBlissifylovene
+ - id: PillCanisterEquilibrazine
+ - id: PillCanisterNeurozenium
+ - id: PillCanisterSerenitol
+ - id: ClothingUniformJumpsuitPsychologist
+ - id: ClothingUniformJumpskirtPsychologist
+ - id: DrinkWhiskeyBottleFull
+ - id: ClothingHeadsetMedical
+
+- type: entity
+ parent: LockerPsychologist
+ id: LockerPsychologistFilled
+ suffix: Filled
+ components:
+ - type: EntityTableContainerFill
+ containers:
+ entity_storage: !type:NestedSelector
+ tableId: PsychologistLockerFill
diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml
index ab0542d0df2..b0bcd6aad9f 100644
--- a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml
+++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml
@@ -15,3 +15,25 @@
amount: 2
- id: JetpackSecurityFilled
amount: 2
+
+#Paramedic hardsuit
+- type: entityTable
+ id: ParamedicSuitStorageFill
+ table: !type:AllSelector
+ children:
+ - id: NitrogenTankFilled
+ - id: OxygenTankFilled
+ - id: ClothingOuterHardsuitVoidParamed
+ - id: ClothingMaskBreathMedical
+
+- type: entity
+ parent: SuitStorageBase
+ id: SuitStorageParamedic
+ suffix: Paramedic
+ components:
+ - type: EntityTableContainerFill
+ containers:
+ entity_storage: !type:NestedSelector
+ tableId: ParamedicSuitStorageFill
+ - type: AccessReader
+ access: [["Paramedic"]]
diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml
index fcb93c1c918..bafae422037 100644
--- a/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml
+++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml
@@ -23,4 +23,16 @@
suffix: Lunchbox, Unhealthy
components:
- type: Paper
- content: book-text-lunchbox-unhealthy
\ No newline at end of file
+ content: book-text-lunchbox-unhealthy
+
+- type: entity
+ parent: Paper
+ id: PaperWrittenSubscriptionNotice
+ name: "subscription notice"
+ description: "Thank you for your purchase"
+ components:
+ - type: Paper
+ content: book-text-subscription-notice
+ stampedBy:
+ - stampedColor: "#850000"
+ stampedName: stamp-component-stamped-name-syndicate
diff --git a/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml b/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml
index 4dc38e493c2..b2e2328693a 100644
--- a/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml
+++ b/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml
@@ -59,3 +59,14 @@
- AgentIDCard
- FreedomImplanter
- ClothingMaskGasSyndicate
+
+- type: thiefBackpackSet
+ id: FugitiveDisruptor
+ name: fugitive-set-disruptor-name
+ description: fugitive-set-disruptor-description
+ sprite:
+ sprite: Objects/Tools/emag.rsi
+ state: icon
+ content:
+ - Emag
+ - CameraBug
diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml
index 4c4c0f66660..bf7fc3cf3d0 100644
--- a/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml
@@ -84,6 +84,17 @@
- type: Clothing
sprite: DeltaV/Clothing/Eyes/Glasses/presccorpsglasses.rsi
+- type: entity
+ parent: [ClothingEyesGlassesChemical, ShowMedicalIcons]
+ id: ClothingEyesGlassesChemicalInterdyne
+ name: interdyne chemical analysis goggles
+ description: Goggles engineered to be unable to get a stain on the lenses. It comes with a medical HUD incorporated.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi
+ - type: Clothing
+ sprite: DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi
+
- type: entity
parent: ClothingEyesGlassesGar
id: ClothingEyesGlassesGarMeson
diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml
index 6bae05ae307..1505dec5d7f 100644
--- a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml
@@ -135,3 +135,26 @@
sprite: DeltaV/Clothing/Head/Hardsuits/Combat/hos.rsi
- type: Clothing
sprite: DeltaV/Clothing/Head/Hardsuits/Combat/hos.rsi
+
+#Paramedic Void Helmet
+- type: entity
+ parent: ClothingHeadHardsuitWithLightBase
+ id: ClothingHeadHelmetVoidParamedDeltaV
+ name: paramedic void helmet
+ components:
+ - type: Sprite
+ sprite: DeltaV/Clothing/Head/Helmets/paramedhelm.rsi
+ - type: Clothing
+ sprite: DeltaV/Clothing/Head/Helmets/paramedhelm.rsi
+ - type: ToggleableLightVisuals
+ - type: PointLight
+ radius: 6
+ color: "#addbff"
+ - type: TemperatureProtection
+ heatingCoefficient: 0.1
+ coolingCoefficient: 0.1
+ - type: Armor
+ modifiers:
+ coefficients:
+ Heat: 0.90
+ Radiation: 0.75
diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml
new file mode 100644
index 00000000000..0decd805c60
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml
@@ -0,0 +1,11 @@
+- type: entity
+ parent: ClothingHeadHatHoodBioGeneral
+ id: ClothingHeadHatInterdyneChemistryHood
+ categories: [ HideSpawnMenu ]
+ name: interdyne chemistry hood
+ description: A hood to complete the professional chemist look.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi
+ - type: Clothing
+ sprite: DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi
diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml
new file mode 100644
index 00000000000..7e024db5b13
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml
@@ -0,0 +1,10 @@
+- type: entity
+ parent: ClothingMaskGas
+ id: ClothingMaskInterdyneChemistry
+ name: interdyne gas mask
+ description: A face-covering mask that can be connected to an air supply.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Clothing/Mask/interdynechemmask.rsi
+ - type: Clothing
+ sprite: DeltaV/Clothing/Mask/interdynechemmask.rsi
diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml
index 70354ccf836..4586c8318d0 100644
--- a/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml
@@ -13,3 +13,20 @@
modifiers:
coefficients:
Caustic: 0.25
+
+- type: entity
+ parent: ClothingOuterBaseToggleable
+ id: ClothingOuterInterdyneChemistrySuit
+ name: interdyne chemistry suit
+ description: A spotless suit and durable, designed to protect you from chemical spills.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi
+ - type: Clothing
+ sprite: DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi
+ - type: Armor
+ modifiers:
+ coefficients:
+ Caustic: 0.40
+ - type: ToggleableClothing
+ clothingPrototype: ClothingHeadHatInterdyneChemistryHood
diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml
index 3646bbe0c9c..46e7cf6aea3 100644
--- a/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml
@@ -418,3 +418,14 @@
sprite: DeltaV/Clothing/Uniforms/Jumpsuit/cybersunattorney.rsi
- type: Clothing
sprite: DeltaV/Clothing/Uniforms/Jumpsuit/cybersunattorney.rsi
+
+- type: entity
+ parent: ClothingUniformBase
+ id: ClothingUniformInterdyneChemist
+ name: interdyne chemist uniform
+ description: An impecable uniform, sign of a good chemist.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi
+ - type: Clothing
+ sprite: DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi
diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml
index 50f08716086..e9b4deae0c1 100644
--- a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml
@@ -92,3 +92,16 @@
- state: green
- sprite: DeltaV/Markers/jobs.rsi
state: roboticist
+
+- type: entity
+ parent: SpawnPointJobBase
+ id: SpawnPointCargoAssistant
+ name: cargo assistant
+ components:
+ - type: SpawnPoint
+ job_id: CargoTechnician # Change to CargoAssistant once it's mapped on every map
+ - type: Sprite
+ layers:
+ - state: green
+ - sprite: DeltaV/Markers/jobs.rsi
+ state: cargoassistant
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml
new file mode 100644
index 00000000000..7097be16ffa
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml
@@ -0,0 +1,27 @@
+- type: marking
+ id: MothWingsClassicSelene
+ bodyPart: Tail
+ markingCategory: Tail
+ forcedColoring: true
+ speciesRestriction: [Moth]
+ coloring:
+ default:
+ type:
+ !type:SimpleColoring
+ color: "#FFFFFF"
+ sprites:
+ - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi
+ state: selene
+
+- type: marking
+ id: MothWingsSelene
+ bodyPart: Tail
+ markingCategory: Tail
+ speciesRestriction: [Moth]
+ sprites:
+ - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi
+ state: selene_primary
+ - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi
+ state: selene_secondary
+ - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi
+ state: selene_tertiary
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml
new file mode 100644
index 00000000000..4a397caaa37
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml
@@ -0,0 +1,11 @@
+- type: entity
+ save: false
+ parent: MobReptilian
+ id: MobAshWalker
+ name: Urist McAsh
+ suffix: ""
+ components:
+ - type: Body
+ prototype: AshWalker
+ - type: AshStormImmune
+ # TODO: shitmed stuff so you can steal ashwalker lungs
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml
new file mode 100644
index 00000000000..a7e16b8c33c
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml
@@ -0,0 +1,15 @@
+- type: entity
+ parent: DrinkCanBaseFull
+ id: DrinkDrGibbBloodRedCan
+ name: Dr. Gibb Blood Red can
+ description: A drink to quench YOUR bloodthirst.
+ components:
+ - type: SolutionContainerManager
+ solutions:
+ drink:
+ maxVol: 30
+ reagents:
+ - ReagentId: DrGibbBloodRed
+ Quantity: 30
+ - type: Sprite
+ sprite: DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml
new file mode 100644
index 00000000000..7f1275d763a
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml
@@ -0,0 +1,91 @@
+- type: entity
+ id: BushPlain
+ name: plain bush
+ description: A pretty bush.
+ placement:
+ mode: PlaceFree
+ components:
+ - type: SpriteFade
+ - type: Clickable
+ - type: InteractionOutline
+ - type: Sprite
+ noRot: true
+ sprite: DeltaV/Objects/Decoration/Flora/bush.rsi
+ state: base
+ drawdepth: Mobs
+ - type: Tag
+ tags:
+ - Structure
+ - type: Damageable
+ damageContainer: StructuralInorganic
+ damageModifierSet: Wood
+ - type: MeleeSound
+ soundGroups:
+ Brute:
+ path: /Audio/Effects/chop.ogg
+ params:
+ variation: 0.05
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 10
+ behaviors:
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WoodDestroy
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ MaterialWoodPlank:
+ min: 0
+ max: 1
+
+- type: entity
+ parent: BushPlain
+ id: BushPlainLight
+ components:
+ - type: Sprite
+ layers:
+ - state: base_light
+
+- type: entity
+ parent: BushPlain
+ id: BushHibiscus
+ name: hibiscus bush
+ description: A pretty bush, with hibiscuses!
+ components:
+ - type: Sprite
+ layers:
+ - state: base
+ - state: hibiscus
+
+- type: entity
+ parent: BushHibiscus
+ id: BushHibiscusLight
+ components:
+ - type: Sprite
+ layers:
+ - state: base_light
+ - state: hibiscus
+
+- type: entity
+ parent: BushPlain
+ id: BushHydrangea
+ name: hydrangea bush
+ description: A pretty bush, with hydrangeas!
+ components:
+ - type: Sprite
+ layers:
+ - state: base
+ - state: hydrangea
+
+- type: entity
+ parent: BushHydrangea
+ id: BushHydrangeaLight
+ components:
+ - type: Sprite
+ layers:
+ - state: base_light
+ - state: hydrangea
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml
index 8b4478d804c..9194afa30c9 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml
@@ -190,6 +190,16 @@
- MailMetricsCartridge
- NanoChatCartridge
+- type: entity
+ parent: CargoPDA
+ id: CargoAssistantPDA
+ name: cargo assistant PDA
+ description: It smells like cardboard.
+ components:
+ - type: Pda
+ id: CargoAssistantIDCard
+ state: pda-cargo-assistant
+
## Alternate Job Titles
# Passenger
@@ -310,6 +320,38 @@
id: ClinicianIDCard
state: pda-phys # - aPDA Sprite Rework
+# Psychologist
+
+- type: entity
+ parent: PsychologistPDA
+ id: PsychiatristPDA
+ name: psychiatrist PDA
+ description: Sterile-smelling and neutrally colored.
+ components:
+ - type: Pda
+ id: PsychiatristIDCard
+ state: pda-psychiatrist
+
+- type: entity
+ parent: PsychologistPDA
+ id: TherapistPDA
+ name: therapist PDA
+ description: Covered in a rubberized case in a reassuring shade of brown.
+ components:
+ - type: Pda
+ id: TherapistIDCard
+ state: pda-therapist
+
+- type: entity
+ parent: PsychologistPDA
+ id: SocialWorkerPDA
+ name: social worker PDA
+ description: Dented and scratched. It's been well-used.
+ components:
+ - type: Pda
+ id: SocialWorkerIDCard
+ state: pda-socialworker
+
# Atmospherics Technician
- type: entity
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml
index 012f46ae10e..b6ba4e1cac6 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml
@@ -44,3 +44,67 @@
color: "#2c5491"
- type: Paper
content: book-text-vulpkanin
+
+- type: entity
+ parent: BaseItem
+ id: BookGorlexGirlfriends
+ name: Gorlex Girlfriends
+ description: Issue 197 - Starring Operative November
+ components:
+ - type: Sprite
+ sprite: DeltaV/Objects/Misc/gorlex_magazine.rsi
+ state: icon
+ - type: Paper
+ contentSize: 12000
+ content: book-text-gorlexgirlfriend
+ stampedBy:
+ - stampedColor: "#850000"
+ stampedName: stamp-component-stamped-name-syndicate
+ - type: ActivatableUI
+ key: enum.PaperUiKey.Key
+ requiresComplex: false
+ - type: UserInterface
+ interfaces:
+ enum.PaperUiKey.Key:
+ type: PaperBoundUserInterface
+ - type: Tag
+ tags:
+ - Book
+ - type: PaperVisuals
+ backgroundImagePath: "/Textures/Interface/Paper/paper_background_book.svg.96dpi.png"
+ backgroundPatchMargin: 23.0, 16.0, 14.0, 15.0
+ contentMargin: 20.0, 20.0, 20.0, 20.0
+ - type: MeleeWeapon
+ soundHit:
+ collection: Punch
+ damage:
+ types:
+ Blunt: 1
+ - type: DamageOtherOnHit
+ damage:
+ types:
+ Blunt: 1
+
+
+- type: entity
+ id: BookLogistics
+ parent: BaseGuidebook
+ name: logistics 101
+ description: A Nanotrasen guide book for a new cargo assistant still on training
+ components:
+ - type: Sprite
+ layers:
+ - state: paper
+ - state: cover_strong
+ color: "#785214"
+ - state: decor_wingette
+ color: "#a8741e"
+ - state: decor_spine
+ color: "#a8741e"
+ - state: icon_diamond
+ - state: icon_text3
+ color: "#ffffff"
+ - type: GuideHelp
+ guides:
+ - Cargo
+ - Salvage
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml
index 8c93b96d4e6..193aed8af56 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml
@@ -50,6 +50,19 @@
- type: PresetIdCard
job: Courier
+- type: entity
+ parent: IDCardStandard
+ id: CargoAssistantIDCard
+ name: cargo assistant ID card
+ components:
+ - type: Sprite
+ layers:
+ - state: default
+ - sprite: DeltaV/Objects/Misc/id_cards.rsi
+ state: idcargoassistant
+ - type: PresetIdCard
+ job: CargoAssistant
+
## Alternate Job Titles
# Passenger
@@ -150,6 +163,32 @@
- type: IdCard
jobTitle: job-alt-title-clinician
+# Psychologist
+
+- type: entity
+ parent: PsychologistIDCard
+ id: PsychiatristIDCard
+ name: psychiatrist ID card
+ components:
+ - type: IdCard
+ jobTitle: job-alt-title-psychiatrist
+
+- type: entity
+ parent: PsychologistIDCard
+ id: TherapistIDCard
+ name: therapist ID card
+ components:
+ - type: IdCard
+ jobTitle: job-alt-title-therapist
+
+- type: entity
+ parent: PsychologistIDCard
+ id: SocialWorkerIDCard
+ name: social worker ID card
+ components:
+ - type: IdCard
+ jobTitle: job-alt-title-social-worker
+
# Atmospheric Technician
- type: entity
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml
index 9bb228637a3..09b3a8ae88f 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml
@@ -1741,3 +1741,13 @@
- type: Mail
contents:
- id: ClothingBeltFoamSheathFilled
+
+- type: entity
+ parent: BaseMail
+ id: MailGorlexGirlfriends
+ suffix: Gorlex Girlfriends
+ components:
+ - type: Mail
+ contents:
+ - id: PaperWrittenSubscriptionNotice
+ - id: BookGorlexGirlfriends
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml
index 305a9a801d3..b23f4635421 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml
@@ -13,3 +13,4 @@
- FugitiveGhost
- FugitiveLeverage
- FugitiveInfiltrator
+ - FugitiveDisruptor
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
index 8885134daef..6cdeba10d4c 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
@@ -262,6 +262,30 @@
zeroVisible: true
- type: Appearance
+- type: entity
+ parent: [ BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband ]
+ id: WeaponColdCannon
+ name: I.C.E.E.
+ description: It's cooler than a normal gun.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi
+ layers:
+ - state: base
+ map: ["enum.GunVisualLayers.Base"]
+ - state: mag-unshaded-4
+ map: ["enum.GunVisualLayers.MagUnshaded"]
+ shader: unshaded
+ - type: Clothing
+ sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi
+ - type: Gun
+ fireRate: 1.5
+ soundGunshot:
+ path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
+ - type: HitscanBatteryAmmoProvider
+ proto: ColdLaser
+ fireCost: 100
+
- type: entity
parent: [ BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband ]
id: WeaponBeamCannon
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml
index d2420ca3bfb..f7daf83b424 100644
--- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml
@@ -14,6 +14,21 @@
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: impact_omni
+- type: hitscan
+ id: ColdLaser
+ damage:
+ types:
+ Cold: 20
+ muzzleFlash:
+ sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
+ state: muzzle_omni
+ travelFlash:
+ sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
+ state: beam_omni
+ impactFlash:
+ sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
+ state: impact_omni
+ heatChange: -50000
- type: hitscan
id: BeamLaser
damage:
@@ -44,3 +59,4 @@
impactFlash:
sprite: DeltaV/Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: impact_laser
+
diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml
new file mode 100644
index 00000000000..b19fa1dbfe5
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml
@@ -0,0 +1,18 @@
+- type: entity
+ parent: KitchenKnife
+ id: PrisonKnife
+ name: prisoner's knife
+ description: A slightly dulled bread knife
+ components:
+ - type: Sprite
+ sprite: DeltaV/Objects/Weapons/Melee/prison_knife.rsi
+ state: icon
+ - type: Item
+ sprite: DeltaV/Objects/Weapons/Melee/prison_knife.rsi
+ - type: MeleeWeapon
+ damage:
+ types:
+ Slash: 3
+ Blunt: 1
+ - type: Execution
+ doAfterDuration: 10.0 # Duller knife.
diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml
index 3b2f72d5d9e..bb388fe66d4 100644
--- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml
@@ -1,19 +1,30 @@
+- type: entity
+ parent: LockerBase
+ id: LockerBaseDeltaV
+ components:
+ - type: Sprite
+ sprite: DeltaV/Structures/Storage/closet.rsi
+
+- type: entity
+ parent: [ LockerBaseDeltaV, LockerBaseSecure ]
+ id: LockerBaseSecureDeltaV
+
- type: entity
id: LockerChiefJustice
- parent: LockerBaseSecure
+ parent: LockerBaseSecureDeltaV
name: chief justice's locker
components:
- type: Appearance
- type: EntityStorageVisuals
- stateBaseClosed: cj
+ stateBaseClosed: cj
stateDoorOpen: cj_open
stateDoorClosed: cj_door
- type: AccessReader
access: [["ChiefJustice"]]
-
+
- type: entity
id: LockerClerk
- parent: LockerBaseSecure
+ parent: LockerBaseSecureDeltaV
name: clerk's locker
components:
- type: Appearance
@@ -23,3 +34,15 @@
stateDoorClosed: clerk_door
- type: AccessReader
access: [["Clerk"]]
+
+- type: entity
+ parent: LockerBaseSecureDeltaV
+ id: LockerPsychologist
+ name: psychologist's locker
+ components:
+ - type: EntityStorageVisuals
+ stateBaseClosed: psych
+ stateDoorOpen: psych_open
+ stateDoorClosed: psych_door
+ - type: AccessReader
+ access: [["Psychologist"]]
diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml
new file mode 100644
index 00000000000..aa64c070024
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml
@@ -0,0 +1,154 @@
+- type: entity
+ parent: CrateGeneric
+ id: WoodenBarrel
+ name: wooden barrel
+ description: A musty old wooden barrel.
+ components:
+ - type: Sprite
+ sprite: DeltaV/Objects/Storage/barrel.rsi
+ layers:
+ - state: base
+ map: ["enum.StorageVisualLayers.Base"]
+ - state: closed
+ map: ["enum.StorageVisualLayers.Door"]
+ - type: Icon
+ sprite: DeltaV/Objects/Storage/barrel.rsi
+ state: base
+ - type: Damageable
+ damageContainer: StructuralInorganic
+ damageModifierSet: Wood
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 30
+ behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ collection: WoodDestroy
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ MaterialWoodPlank1:
+ min: 1
+ max: 4
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: Construction
+ graph: WoodenBarrel
+ node: woodenbarrel
+ containers:
+ - entity_storage
+ - type: StaticPrice
+ price: 50
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.2,-0.3,0.2,0.4"
+ density: 150
+ mask:
+ - SmallMobMask #this is so they can go under plastic flaps
+ layer:
+ - MachineLayer
+ - type: Climbable
+
+- type: entity
+ parent: StorageTank
+ id: WoodenKeg
+ name: wooden keg
+ description: A musty old wooden keg, with a tap attached to the front.
+ components:
+ - type: SolutionContainerManager
+ solutions:
+ tank:
+ maxVol: 500
+ - type: ExaminableSolution
+ solution: tank
+ - type: UserInterface
+ interfaces:
+ enum.TransferAmountUiKey.Key:
+ type: TransferAmountBoundUserInterface
+ - type: DrawableSolution
+ solution: tank
+ - type: InjectableSolution
+ solution: tank
+ - type: Drink
+ solution: tank
+ - type: Spillable
+ solution: tank
+ - type: DumpableSolution
+ solution: tank
+ - type: Sprite
+ sprite: DeltaV/Objects/Storage/keg.rsi
+ layers:
+ - state: base
+ map: ["enum.StorageVisualLayers.Base"]
+ - type: Damageable
+ damageContainer: StructuralInorganic
+ damageModifierSet: Wood
+ - type: StaticPrice
+ price: 50
+ - type: Construction
+ graph: WoodenKeg
+ node: woodenkeg
+ containers:
+ - entity_storage
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.2,-0.3,0.2,0.4"
+ density: 200
+ mask:
+ - SmallMobMask #this is so they can go under plastic flaps
+ layer:
+ - MachineLayer
+ - type: Transform
+ noRot: false
+
+- type: entity
+ parent: WoodenKeg
+ name: root beer keg
+ description: A musty old wooden keg, with a tap attached to the front. Smells like root beer.
+ id: WoodenKegRootBeer
+ components:
+ - type: Label
+ currentLabel: reagent-name-root-beer
+ - type: SolutionContainerManager
+ solutions:
+ tank:
+ reagents:
+ - ReagentId: RootBeer
+ Quantity: 500
+
+- type: entity
+ parent: WoodenKeg
+ name: beer keg
+ description: A musty old wooden keg, with a tap attached to the front. Smells like beer.
+ id: WoodenKegBeer
+ components:
+ - type: Label
+ currentLabel: reagent-name-beer
+ - type: SolutionContainerManager
+ solutions:
+ tank:
+ reagents:
+ - ReagentId: Beer
+ Quantity: 500
+
+- type: entity
+ parent: WoodenKeg
+ name: wine keg
+ description: A musty old wooden keg, with a tap attached to the front. Smells like wine.
+ id: WoodenKegWine
+ components:
+ - type: Label
+ currentLabel: reagent-name-wine
+ - type: SolutionContainerManager
+ solutions:
+ tank:
+ reagents:
+ - ReagentId: Wine
+ Quantity: 500
diff --git a/Resources/Prototypes/DeltaV/Flavors/flavors.yml b/Resources/Prototypes/DeltaV/Flavors/flavors.yml
index 8d0d01efa0b..3dc68673b0d 100644
--- a/Resources/Prototypes/DeltaV/Flavors/flavors.yml
+++ b/Resources/Prototypes/DeltaV/Flavors/flavors.yml
@@ -121,6 +121,237 @@
flavorType: Complex
description: flavor-complex-blellow
+#Delta-V additional drink flavors
+- type: flavor
+ id: absinthe
+ flavorType: Complex
+ description: flavor-complex-absinthe
+
+- type: flavor
+ id: blue-curacao
+ flavorType: Complex
+ description: flavor-complex-blue-curacao
+
+- type: flavor
+ id: deadrum
+ flavorType: Complex
+ description: flavor-complex-deadrum
+
+- type: flavor
+ id: n-t-cahors
+ flavorType: Complex
+ description: flavor-complex-n-t-cahors
+
+- type: flavor
+ id: poison-wine
+ flavorType: Complex
+ description: flavor-complex-poison-wine
+
+- type: flavor
+ id: acidspit
+ flavorType: Complex
+ description: flavor-complex-acidspit
+
+- type: flavor
+ id: allies-cocktail
+ flavorType: Complex
+ description: flavor-complex-allies-cocktail
+
+- type: flavor
+ id: amasec
+ flavorType: Complex
+ description: flavor-complex-amasec
+
+- type: flavor
+ id: andalusia
+ flavorType: Complex
+ description: flavor-complex-andalusia
+
+- type: flavor
+ id: b52
+ flavorType: Complex
+ description: flavor-complex-b52
+
+- type: flavor
+ id: bahama-mama
+ flavorType: Complex
+ description: flavor-complex-bahama-mama
+
+- type: flavor
+ id: barefoot
+ flavorType: Complex
+ description: flavor-complex-barefoot
+
+- type: flavor
+ id: booger
+ flavorType: Complex
+ description: flavor-complex-booger
+
+- type: flavor
+ id: brave-bull
+ flavorType: Complex
+ description: flavor-complex-brave-bull
+
+- type: flavor
+ id: demons-blood
+ flavorType: Complex
+ description: flavor-complex-demons-blood
+
+- type: flavor
+ id: devils-kiss
+ flavorType: Complex
+ description: flavor-complex-devils-kiss
+
+- type: flavor
+ id: doctors-delight
+ flavorType: Complex
+ description: flavor-complex-doctors-delight
+
+- type: flavor
+ id: driest-martini
+ flavorType: Complex
+ description: flavor-complex-driest-martini
+
+- type: flavor
+ id: erika-surprise
+ flavorType: Complex
+ description: flavor-complex-erika-surprise
+
+- type: flavor
+ id: gin-fizz
+ flavorType: Complex
+ description: flavor-complex-gin-fizz
+
+- type: flavor
+ id: gildlager
+ flavorType: Complex
+ description: flavor-complex-gildlager
+
+- type: flavor
+ id: grog
+ flavorType: Complex
+ description: flavor-complex-grog
+
+- type: flavor
+ id: hippies-delight
+ flavorType: Complex
+ description: flavor-complex-hippies-delight
+
+- type: flavor
+ id: hooch
+ flavorType: Complex
+ description: flavor-complex-hooch
+
+- type: flavor
+ id: irish-cream
+ flavorType: Complex
+ description: flavor-complex-irish-cream
+
+- type: flavor
+ id: kira-special
+ flavorType: Complex
+ description: flavor-complex-kira-special
+
+- type: flavor
+ id: manhattan
+ flavorType: Complex
+ description: flavor-complex-manhattan
+
+- type: flavor
+ id: manhattan-project
+ flavorType: Complex
+ description: flavor-complex-manhattan-project
+
+- type: flavor
+ id: margarita
+ flavorType: Complex
+ description: flavor-complex-margarita
+
+- type: flavor
+ id: martini
+ flavorType: Complex
+ description: flavor-complex-martini
+
+- type: flavor
+ id: mojito
+ flavorType: Complex
+ description: flavor-complex-mojito
+
+- type: flavor
+ id: neurotoxin
+ flavorType: Complex
+ description: flavor-complex-neurotoxin
+
+- type: flavor
+ id: patron
+ flavorType: Complex
+ description: flavor-complex-patron
+
+- type: flavor
+ id: red-mead
+ flavorType: Complex
+ description: flavor-complex-red-mead
+
+- type: flavor
+ id: rewriter
+ flavorType: Complex
+ description: flavor-complex-rewriter
+
+- type: flavor
+ id: sbiten
+ flavorType: Complex
+ description: flavor-complex-sbiten
+
+- type: flavor
+ id: silencer
+ flavorType: Complex
+ description: flavor-complex-silencer
+
+- type: flavor
+ id: snow-white
+ flavorType: Complex
+ description: flavor-complex-snow-white
+
+- type: flavor
+ id: sui-dream
+ flavorType: Complex
+ description: flavor-complex-sui-dream
+
+- type: flavor
+ id: syndicate-bomb
+ flavorType: Complex
+ description: flavor-complex-syndicate-bomb
+
+- type: flavor
+ id: toxins-special
+ flavorType: Complex
+ description: flavor-complex-toxins-special
+
+- type: flavor
+ id: vodka-martini
+ flavorType: Complex
+ description: flavor-complex-vodka-martini
+
+- type: flavor
+ id: vodka-tonic
+ flavorType: Complex
+ description: flavor-complex-vodka-tonic
+
+- type: flavor
+ id: kvass
+ flavorType: Complex
+ description: flavor-complex-kvass
+
+- type: flavor
+ id: mothamphetamine
+ flavorType: Complex
+ description: flavor-complex-mothamphetamine
+
+- type: flavor
+ id: drgibbbloodred
+ flavorType: Complex
+ description: flavor-complex-drgibbbloodred
+
# this is prefixed with "candy" to avoid clashes with potential future strawberries upstream
- type: flavor
id: candystrawberry
diff --git a/Resources/Prototypes/DeltaV/GameRules/events.yml b/Resources/Prototypes/DeltaV/GameRules/events.yml
index 9e4496cf0ab..45a6a1d0237 100644
--- a/Resources/Prototypes/DeltaV/GameRules/events.yml
+++ b/Resources/Prototypes/DeltaV/GameRules/events.yml
@@ -30,6 +30,8 @@
params:
volume: -4
duration: null #ending is handled by MeteorSwarmRule
+ - type: PrecognitionResult
+ message: psionic-power-precognition-meteor-swarm-result-message
- type: MeteorSwarmRule
- type: entity
@@ -44,6 +46,8 @@
minimumPlayers: 20
weight: 1
duration: 60
+ - type: PrecognitionResult
+ message: psionic-power-precognition-xeno-vents-result-message
- type: VentCrittersRule
entries:
- id: MobXeno
@@ -72,6 +76,8 @@
minimumPlayers: 15
weight: 4
duration: 60
+ - type: PrecognitionResult
+ message: psionic-power-precognition-mothroach-spawn-result-message
- type: VentCrittersRule
entries:
- id: MobMothroach
@@ -87,6 +93,8 @@
minimumPlayers: 25
maxOccurrences: 1
duration: null
+ - type: PrecognitionResult
+ message: psionic-power-precognition-listening-post-result-message
- type: RuleGrids
- type: LoadFarGridRule
path: /Maps/Shuttles/DeltaV/listening_post.yml
@@ -146,6 +154,8 @@
components:
- type: StationEvent
duration: null
+ - type: PrecognitionResult
+ message: psionic-power-precognition-paradox-anomaly-result-message
- type: ParadoxClonerRule
- type: AntagObjectives
objectives:
@@ -169,6 +179,8 @@
- type: StationEvent
minimumPlayers: 40 # it's really easy to find fugitives on lowpop
duration: null
+ - type: PrecognitionResult
+ message: psionic-power-precognition-fugitive-result-message
- type: FugitiveRule
- type: AntagLoadProfileRule
- type: AntagObjectives
diff --git a/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml b/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml
index dc940422f8c..2d972f9809a 100644
--- a/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml
+++ b/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml
@@ -17,6 +17,7 @@
parent: BaseGameRule
id: GlimmerEventScheduler
components:
+ - type: NextEvent
- type: BasicStationEventScheduler
minMaxEventTiming:
min: 300
diff --git a/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml b/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml
index 2959bebcc0b..38ec9d0df36 100644
--- a/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml
+++ b/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml
@@ -14,6 +14,8 @@
minimumPlayers: 20
maxOccurrences: 1
duration: null
+ - type: PrecognitionResult
+ message: psionic-power-precognition-syndicate-recruiter-result-message
- type: RuleGrids
- type: LoadMapRule
preloadedGrid: SyndieRecruiterShip
@@ -56,6 +58,8 @@
minimumPlayers: 20
maxOccurrences: 1
duration: null
+ - type: PrecognitionResult
+ message: psionic-power-precognition-synthesis-specialist-result-message
- type: RuleGrids
- type: LoadMapRule
preloadedGrid: SyndieSynthesisShip
diff --git a/Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml b/Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml
new file mode 100644
index 00000000000..c7e252151ca
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml
@@ -0,0 +1,74 @@
+# PDA
+- type: loadout
+ id: PsychologistPDA
+ equipment:
+ id: PsychologistPDA
+
+- type: loadout
+ id: PsychiatristPDA
+ equipment:
+ id: PsychiatristPDA
+
+- type: loadout
+ id: TherapistPDA
+ equipment:
+ id: TherapistPDA
+ effects:
+ - !type:JobRequirementLoadoutEffect
+ requirement:
+ !type:RoleTimeRequirement
+ role: JobPsychologist
+ time: 14400 # 4 hours psychologist
+
+- type: loadout
+ id: SocialWorkerPDA
+ equipment:
+ id: SocialWorkerPDA
+ effects:
+ - !type:JobRequirementLoadoutEffect
+ requirement:
+ !type:DepartmentTimeRequirement
+ department: Civilian
+ time: 14400 # 4 hours service
+
+# Head
+- type: loadout
+ id: PsychologistFrenchBeret
+ equipment:
+ head: ClothingHeadHatBeretFrench
+
+- type: loadout
+ id: PsychologistGreyFlatcap
+ equipment:
+ head: ClothingHeadHatGreyFlatcap
+
+- type: loadout
+ id: PsychologistBrownFlatcap
+ equipment:
+ head: ClothingHeadHatBrownFlatcap
+
+# OuterClothing
+- type: loadout
+ id: PsychologistMedicalWinterCoat
+ equipment:
+ outerClothing: ClothingOuterWinterMed
+
+- type: loadout
+ id: PsychologistWinterCoat
+ equipment:
+ outerClothing: ClothingOuterWinterCoat
+
+- type: loadout
+ id: PsychologistWinterCoatPlaid
+ equipment:
+ outerClothing: ClothingOuterWinterCoatPlaid
+
+- type: loadout
+ id: PsychologistCoatBomber
+ equipment:
+ outerClothing: ClothingOuterCoatBomber
+
+- type: loadout
+ id: PsychologistSweater
+ equipment:
+ outerClothing: ClothingOuterCoatHyenhSweater
diff --git a/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml b/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml
index 8b5b827e09a..c30c9a43deb 100644
--- a/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml
+++ b/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml
@@ -71,6 +71,43 @@
- CourierPDA
- MailCarrierPDA
+## Cargo Assistant
+- type: loadoutGroup
+ id: CargoAssistantHead
+ name: loadout-group-cargo-assistant-head
+ minLimit: 0
+ loadouts:
+ - CargoTechnicianHead
+
+- type: loadoutGroup
+ id: CargoAssistantJumpsuit
+ name: loadout-group-cargo-assistant-jumpsuit
+ loadouts:
+ - CargoTechnicianJumpsuit
+ - CargoTechnicianJumpskirt
+
+- type: loadoutGroup
+ id: CargoAssistantBackpack
+ name: loadout-group-cargo-assistant-backpack
+ loadouts:
+ - CargoTechnicianBackpack
+ - CargoTechnicianSatchel
+ - CargoTechnicianDuffel
+
+- type: loadoutGroup
+ id: CargoAssistantOuterClothing
+ name: loadout-group-cargo-assistant-outerclothing
+ minLimit: 0
+ loadouts:
+ - CargoTechnicianWintercoat
+
+- type: loadoutGroup
+ id: CargoAssistantShoes
+ name: loadout-group-cargo-assistant-shoes
+ loadouts:
+ - BlackShoes
+ - CargoWinterBoots
+
# Security
## Brig Medic
- type: loadoutGroup
@@ -211,6 +248,38 @@
- SecurityFirearmSpeedLoaderSpecialRubber
- SecurityFirearmSpeedLoaderSpecial
+# Medical
+## Psychologist
+- type: loadoutGroup
+ id: PsychologistHead
+ name: loadout-group-psychologist-head
+ minLimit: 0
+ loadouts:
+ - MedicalBeret
+ - PsychologistFrenchBeret
+ - PsychologistGreyFlatcap
+ - PsychologistBrownFlatcap
+
+- type: loadoutGroup
+ id: PsychologistOuterClothing
+ name: loadout-group-psychologist-outerclothing
+ minLimit: 0
+ loadouts:
+ - PsychologistMedicalWinterCoat
+ - PsychologistWinterCoat
+ - PsychologistWinterCoatPlaid
+ - PsychologistCoatBomber
+ - PsychologistSweater
+
+- type: loadoutGroup
+ id: PsychologistShoes
+ name: loadout-group-psychologist-shoes
+ loadouts:
+ - LeatherShoes
+ - LaceupShoes
+ - MedicalWinterBoots
+ - WinterBoots
+
# Justice
## Chief Justice
- type: loadoutGroup
@@ -228,7 +297,7 @@
- ChiefJusticeJumpskirt
- ChiefJusticeFormalJumpsuit
- ChiefJusticeWhiteJumpsuit
-
+
- type: loadoutGroup
id: ChiefJusticeNeck
name: loadout-group-chiefjustice-neck
@@ -257,7 +326,7 @@
loadouts:
- ClerkJumpsuit
- ClerkJumpskirt
-
+
- type: loadoutGroup
id: ClerkNeck
name: loadout-group-clerk-neck
@@ -446,6 +515,15 @@
- JanitorPDA
- HygieneTechnicianPDA
+- type: loadoutGroup
+ id: PsychologistPDADelta
+ name: loadout-group-psychologist-id-delta
+ loadouts:
+ - PsychologistPDA
+ - PsychiatristPDA
+ - TherapistPDA
+ - SocialWorkerPDA
+
# Misc
- type: loadoutGroup
id: Scarfs
diff --git a/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml b/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml
index 7431e4f8a4a..d1f928d0a78 100644
--- a/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml
+++ b/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml
@@ -14,6 +14,20 @@
- Trinkets
- GroupSpeciesBreathTool
+- type: roleLoadout
+ id: JobCargoAssistant
+ groups:
+ - GroupTankHarness
+ - CargoAssistantHead
+ - CargoAssistantJumpsuit
+ - CargoAssistantBackpack
+ - CargoAssistantOuterClothing
+ - CargoAssistantShoes
+ - Glasses
+ - Survival
+ - Trinkets
+ - GroupSpeciesBreathTool
+
# Security
- type: roleLoadout
id: JobBrigmedic
diff --git a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml
index d7cd57d75bf..c8593060b70 100644
--- a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml
+++ b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml
@@ -66,6 +66,7 @@
MailFoamSabre: 0.1
# Mainly for Glacier
MailWinterCoat: 1.5
+ MailGorlexGirlfriends: 0.5
# Department and job-specific mail can have slightly higher weights,
# since they'll be merged with the everyone pool.
diff --git a/Resources/Prototypes/DeltaV/Objectives/traitor.yml b/Resources/Prototypes/DeltaV/Objectives/traitor.yml
index 371dbba0a71..1a45300a8f7 100644
--- a/Resources/Prototypes/DeltaV/Objectives/traitor.yml
+++ b/Resources/Prototypes/DeltaV/Objectives/traitor.yml
@@ -80,3 +80,17 @@
- type: TargetObjective
title: objective-condition-teach-person-title
- type: PickRandomPerson
+
+# Kill fellow traitor objective
+- type: entity
+ parent: [BaseTraitorObjective, BaseKillObjective]
+ id: KillRandomTraitorObjective
+ description: We have reason to believe that they have begun to question the syndicate and need to be eliminated.
+ components:
+ - type: Objective
+ difficulty: 2 # They can easily buy weapons to defend themselves if they think something is up.
+ - type: TargetObjective
+ title: objective-condition-traitor-kill-title
+ - type: PickRandomTraitor
+ - type: KillPersonCondition
+ requireDead: true # Being able to leave them on the shuttle doesn't make sense when killing another traitor.
diff --git a/Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml b/Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml
new file mode 100644
index 00000000000..b264f014844
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml
@@ -0,0 +1,46 @@
+# these have higher group size so more ores spawns
+
+# Plasma
+- type: biomeMarkerLayer
+ id: OrePlasma3
+ entityMask:
+ AsteroidRock: AsteroidRockPlasma
+ WallRock: WallRockPlasma
+ WallRockBasalt: WallRockBasaltPlasma
+ WallRockChromite: WallRockChromitePlasma
+ WallRockSand: WallRockSandPlasma
+ WallRockSnow: WallRockSnowPlasma
+ maxCount: 12
+ minGroupSize: 12
+ maxGroupSize: 24
+ radius: 4
+
+# Uranium
+- type: biomeMarkerLayer
+ id: OreUranium2
+ entityMask:
+ AsteroidRock: AsteroidRockUranium
+ WallRock: WallRockUranium
+ WallRockBasalt: WallRockBasaltUranium
+ WallRockChromite: WallRockChromiteUranium
+ WallRockSand: WallRockSandUranium
+ WallRockSnow: WallRockSnowUranium
+ maxCount: 15
+ minGroupSize: 8
+ maxGroupSize: 16
+ radius: 4
+
+# Diamond
+- type: biomeMarkerLayer
+ id: OreDiamond2
+ entityMask:
+ AsteroidRock: AsteroidRockDiamond
+ WallRock: WallRockDiamond
+ WallRockBasalt: WallRockBasaltDiamond
+ WallRockChromite: WallRockChromiteDiamond
+ WallRockSand: WallRockSandDiamond
+ WallRockSnow: WallRockSnowDiamond
+ maxCount: 6
+ minGroupSize: 2
+ maxGroupSize: 4
+ radius: 4
diff --git a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml
index d2e297f926a..ff847f2ac8b 100644
--- a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml
+++ b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml
@@ -171,7 +171,7 @@
parent: BaseDrink
desc: reagent-desc-kvass
physicalDesc: reagent-physical-desc-bubbly
- flavor: bread
+ flavor: kvass #Delta-V Flavor additions
color: "#381600"
metamorphicSprite:
sprite: DeltaV/Objects/Consumable/Drinks/kvass.rsi
@@ -186,7 +186,7 @@
parent: BaseDrink
desc: reagent-desc-mothamphetamine
physicalDesc: reagent-physical-desc-fuzzy
- flavor: cotton
+ flavor: mothamphetamine #Delta-V Flavor additions
color: "#2fa1ef"
metamorphicSprite:
sprite: DeltaV/Objects/Consumable/Drinks/mothamphetamine.rsi
diff --git a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml
new file mode 100644
index 00000000000..42db09785bd
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml
@@ -0,0 +1,22 @@
+- type: reagent
+ id: DrGibbBloodRed
+ name: reagent-name-dr-gibb-blood-red
+ parent: BaseSoda
+ desc: reagent-desc-dr-gibb-blood-red
+ physicalDesc: reagent-physical-desc-fizzy
+ flavor: drgibbbloodred
+ color: "#570303"
+ metabolisms:
+ Drink:
+ effects:
+ - !type:SatiateThirst
+ factor: 2.0
+ conditions:
+ - !type:OrganType
+ type: Human
+ shouldHave: false
+ Food:
+ effects:
+ - !type:AdjustReagent
+ reagent: UncookedAnimalProteins
+ amount: 0.05
diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml
new file mode 100644
index 00000000000..70476578317
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml
@@ -0,0 +1,54 @@
+- type: constructionGraph
+ id: WoodenBarrel
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: woodenbarrel
+ steps:
+ - material: WoodPlank
+ amount: 5
+ doAfter: 5
+
+ - node: woodenbarrel
+ entity: WoodenBarrel
+ edges:
+ - to: start
+ steps:
+ - tool: Prying
+ doAfter: 2
+ completed:
+ - !type:SpawnPrototype
+ prototype: MaterialWoodPlank1
+ amount: 5
+ - !type:EmptyAllContainers
+ - !type:DeleteEntity
+
+- type: constructionGraph
+ id: WoodenKeg
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: woodenkeg
+ steps:
+ - material: WoodPlank
+ amount: 5
+ doAfter: 5
+
+ - node: woodenkeg
+ entity: WoodenKeg
+ edges:
+ - to: start
+ steps:
+ - tool: Prying
+ doAfter: 2
+ conditions:
+ - !type:SolutionEmpty
+ solution: tank
+ completed:
+ - !type:SpawnPrototype
+ prototype: MaterialWoodPlank1
+ amount: 5
+ - !type:EmptyAllContainers
+ - !type:DeleteEntity
diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml
new file mode 100644
index 00000000000..a673b1215bb
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml
@@ -0,0 +1,25 @@
+- type: construction
+ name: wooden barrel
+ id: WoodenBarrel
+ graph: WoodenBarrel
+ startNode: start
+ targetNode: woodenbarrel
+ category: construction-category-storage
+ description: A musty old wooden barrel.
+ icon:
+ sprite: DeltaV/Objects/Storage/barrel.rsi
+ state: base
+ objectType: Structure
+
+- type: construction
+ name: wooden keg
+ id: WoodenKeg
+ graph: WoodenKeg
+ startNode: start
+ targetNode: woodenkeg
+ category: construction-category-storage
+ description: A musty old wooden keg, with a tap attached to the front.
+ icon:
+ sprite: DeltaV/Objects/Storage/keg.rsi
+ state: base
+ objectType: Structure
diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml
index e8d4779d0e5..f303be29f16 100644
--- a/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml
+++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml
@@ -7,3 +7,8 @@
parent: BaseCircuitboardRecipe
id: ComputerMassMediaCircuitboard
result: ComputerMassMediaCircuitboard
+
+- type: latheRecipe
+ parent: BaseCircuitboardRecipe
+ id: AlertsComputerCircuitboard
+ result: AlertsComputerCircuitboard
diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml
index 022049ccee3..b831986c3cd 100644
--- a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml
+++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml
@@ -224,6 +224,16 @@
Steel: 1000
Plastic: 800
+- type: latheRecipe
+ parent: BaseWeaponRecipeLong
+ id: WeaponColdCannon
+ result: WeaponColdCannon
+ materials:
+ Steel: 1500
+ Glass: 600
+ Plastic: 400
+ Silver: 300
+
- type: latheRecipe
parent: BaseWeaponRecipeLong
id: WeaponBeamCannon
diff --git a/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml b/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml
index 60bb26eaa2f..e64c347e445 100644
--- a/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml
+++ b/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml
@@ -100,3 +100,15 @@
amount: 1
products:
DoubleIceCream: 3
+
+- type: reaction
+ id: DrGibbBloodRed
+ reactants:
+ DrGibb:
+ amount: 3
+ Blood:
+ amount: 2
+ Sugar:
+ amount: 1
+ products:
+ DrGibbBloodRed: 6
diff --git a/Resources/Prototypes/DeltaV/Research/arsenal.yml b/Resources/Prototypes/DeltaV/Research/arsenal.yml
index d604eb80568..5a0dfda8883 100644
--- a/Resources/Prototypes/DeltaV/Research/arsenal.yml
+++ b/Resources/Prototypes/DeltaV/Research/arsenal.yml
@@ -52,3 +52,15 @@
cost: 12500
recipeUnlocks:
- AdvancedTruncheon
+
+- type: technology
+ id: IonizedCryogenicEmissionEquiplment
+ name: research-technology-ionized-cryogenic-emission-equipment
+ icon:
+ sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi
+ state: icon
+ discipline: Arsenal
+ tier: 3
+ cost: 10000
+ recipeUnlocks:
+ - WeaponColdCannon
diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml
new file mode 100644
index 00000000000..84a6535d10b
--- /dev/null
+++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml
@@ -0,0 +1,18 @@
+- type: job
+ id: CargoAssistant
+ name: job-name-cargo-assistant
+ description: job-description-cargo-assistant
+ startingGear: CargoAssistantGear
+ playTimeTracker: JobCargoAssistant
+ icon: "JobIconCargoAssistant"
+ supervisors: job-supervisors-qm
+ access:
+ - Cargo
+ - Maintenance
+
+- type: startingGear
+ id: CargoAssistantGear
+ equipment:
+ id: CargoAssistantPDA
+ ears: ClothingHeadsetCargo
+ pocket1: BookLogistics
diff --git a/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml b/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml
index 1ebc9024823..af329817d31 100644
--- a/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml
+++ b/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml
@@ -21,3 +21,6 @@
- type: playTimeTracker
id: JobRoboticist
+
+- type: playTimeTracker
+ id: JobCargoAssistant
diff --git a/Resources/Prototypes/DeltaV/StatusIcon/job.yml b/Resources/Prototypes/DeltaV/StatusIcon/job.yml
index fef4f4489a0..8c60dade5d8 100644
--- a/Resources/Prototypes/DeltaV/StatusIcon/job.yml
+++ b/Resources/Prototypes/DeltaV/StatusIcon/job.yml
@@ -45,3 +45,11 @@
sprite: /Textures/DeltaV/Interface/Misc/job_icons.rsi
state: SecurityBorg
jobName: job-name-security-borg
+
+- type: jobIcon
+ parent: JobIcon
+ id: JobIconCargoAssistant
+ icon:
+ sprite: /Textures/DeltaV/Interface/Misc/job_icons.rsi
+ state: CargoAssistant
+ jobName: job-name-cargo-assistant
diff --git a/Resources/Prototypes/DeltaV/planets.yml b/Resources/Prototypes/DeltaV/planets.yml
index 9491c621a89..7229f5a7917 100644
--- a/Resources/Prototypes/DeltaV/planets.yml
+++ b/Resources/Prototypes/DeltaV/planets.yml
@@ -8,6 +8,26 @@
whitelist:
components:
- MiningShuttle
+ - type: WeatherScheduler # Regular ash storms
+ stages:
+ - duration: # 5-10 minutes of calm
+ min: 300
+ max: 600
+ - weather: AshfallLight # ash starts to fall, 30 second warning
+ message: ash-storm-telegraph
+ duration:
+ min: 30
+ max: 30
+ - weather: Ashfall # 1-2 minutes of damaging storm
+ message: ash-storm-alert
+ duration:
+ min: 60
+ max: 120
+ - weather: AshfallLight # ash clears away for 30 seconds
+ message: ash-storm-clearing
+ duration:
+ min: 30
+ max: 30
atmosphere:
volume: 2500
temperature: 353.15 # 80C
@@ -20,9 +40,9 @@
- OreCoal
- OreGold
- OreSilver
- - OrePlasma
+ - OrePlasma3
- OreUranium
- - OreDiamond
+ - OreDiamond2
- OreArtifactFragment
- type: planet
@@ -47,7 +67,7 @@
- OreCoal
- OreGold
- OreSilver
- - OrePlasma
- - OreUranium
+ - OrePlasma3
+ - OreUranium2
- OreDiamond
- OreArtifactFragment
diff --git a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
index c38c869f2e9..6e5e61cce74 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
@@ -54,6 +54,7 @@
- type: entity
parent: ClothingHeadEVAHelmetBase
id: ClothingHeadHelmetVoidParamed
+ categories: [ HideSpawnMenu ] # DeltaV
name: paramedic void helmet
description: A void helmet made for paramedics.
components:
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml
index db13ae3cc5e..07edfa2164c 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml
@@ -125,7 +125,7 @@
- type: StealTarget
stealGroup: ClothingOuterHardsuitVoidParamed
- type: ToggleableClothing
- clothingPrototype: ClothingHeadHelmetVoidParamed
+ clothingPrototype: ClothingHeadHelmetVoidParamedDeltaV # DeltaV - Added light to the paramedic void suit
slot: head
- type: ContainerContainer
containers:
diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
index 57dfb400984..5321a20fa72 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
@@ -25,9 +25,17 @@
- cash_100
- cash_500
- cash_1000
- - cash_1000000
+ - cash_5000 # Frontier: larger denominations
+ - cash_10000 # Frontier: larger denominations
+ - cash_25000 # Frontier: larger denominations
+ - cash_50000 # Frontier: larger denominations
+ - cash_100000 # Frontier: larger denominations
+ - cash_250000 # Frontier: larger denominations (cash_1000000 30)
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-king-rat-migration-result-message
- type: VentCrittersRule
entries:
- id: MobMouse
@@ -76,6 +80,8 @@
path: /Audio/Announcements/attention.ogg
weight: 6
duration: 50
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-cockroach-migration-result-message
- type: VentCrittersRule
entries:
- id: MobCockroach
@@ -93,6 +99,8 @@
path: /Audio/Announcements/attention.ogg
weight: 6
duration: 50
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-snail-migration-result-message
- type: VentCrittersRule
entries:
- id: MobSnail
@@ -114,6 +122,8 @@
weight: 6
duration: 50
minimumPlayers: 30
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-snail-migration-result-message
- type: VentCrittersRule
entries:
- id: MobSnail
diff --git a/Resources/Prototypes/GameRules/random_sentience.yml b/Resources/Prototypes/GameRules/random_sentience.yml
index a2c749000a6..eec41bf45ec 100644
--- a/Resources/Prototypes/GameRules/random_sentience.yml
+++ b/Resources/Prototypes/GameRules/random_sentience.yml
@@ -8,6 +8,8 @@
maxOccurrences: 1 # this event has diminishing returns on interesting-ness, so we cap it
startAudio:
path: /Audio/Announcements/attention.ogg
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-random-sentience-result-message
- type: RandomSentienceRule
minSentiences: 2
maxSentiences: 5
@@ -22,4 +24,4 @@
id: RandomSentienceEventStrength
values:
prefix: random-sentience-event-strength-
- count: 8
\ No newline at end of file
+ count: 8
diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml
index 50de7c4b746..7982c1e2b78 100644
--- a/Resources/Prototypes/GameRules/roundstart.yml
+++ b/Resources/Prototypes/GameRules/roundstart.yml
@@ -107,6 +107,7 @@
- RoleSurvivalNukie
components:
- type: NukeOperative
+ - type: TargetObjectiveImmune # DeltaV - Makes sleepers unable to get nukie kill objectives
- type: RandomMetadata
nameSegments:
- nukeops-role-commander
@@ -124,6 +125,7 @@
- RoleSurvivalNukie
components:
- type: NukeOperative
+ - type: TargetObjectiveImmune # DeltaV - Makes sleepers unable to get nukie kill objectives
- type: RandomMetadata
nameSegments:
- nukeops-role-agent
@@ -143,6 +145,7 @@
- RoleSurvivalNukie
components:
- type: NukeOperative
+ - type: TargetObjectiveImmune # DeltaV - Makes sleepers unable to get nukie kill objectives
- type: RandomMetadata
nameSegments:
- nukeops-role-operator
@@ -313,6 +316,7 @@
id: BasicStationEventScheduler
parent: BaseGameRule
components:
+ - type: NextEvent # DeltaV: Queue Event for precognition
- type: BasicStationEventScheduler
minMaxEventTiming: # DeltaV
min: 300 # DeltaV - 5 mins, was 3
@@ -324,6 +328,7 @@
id: RampingStationEventScheduler
parent: BaseGameRule
components:
+ - type: NextEvent # DeltaV: Queue Event for precognition
- type: RampingStationEventScheduler
averageChaos: 4.5 # DeltaV
averageEndTime: 180 # DeltaV
@@ -334,6 +339,7 @@
id: SpaceTrafficControlEventScheduler # iff we make a selector for EntityTables that can respect StationEventComp restrictions, or somehow impliment them otherwise in said tables,
parent: BaseGameRule # we can remerge this with the other schedulers, but it will silently fail due to that limitation without a separate scheduler to balance atm.
components:
+ - type: NextEvent # DeltaV: Queue Event for precognition
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 2700 # 45 mins #shows up like half way through shift.
minMaxEventTiming:
@@ -346,6 +352,7 @@
id: SpaceTrafficControlFriendlyEventScheduler
parent: BaseGameRule
components:
+ - type: NextEvent # DeltaV: Queue Event for precognition
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 1200 # 20 mins
minMaxEventTiming:
diff --git a/Resources/Prototypes/GameRules/unknown_shuttles.yml b/Resources/Prototypes/GameRules/unknown_shuttles.yml
index c2962e25072..e5c939edbb3 100644
--- a/Resources/Prototypes/GameRules/unknown_shuttles.yml
+++ b/Resources/Prototypes/GameRules/unknown_shuttles.yml
@@ -59,6 +59,8 @@
components:
- type: StationEvent
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-unknown-shuttle-cargo-lost-result-message
- type: LoadMapRule
preloadedGrid: ShuttleCargoLost
@@ -69,6 +71,8 @@
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-unknown-shuttle-traveling-cuisine-result-message
- type: LoadMapRule
preloadedGrid: TravelingCuisine
@@ -79,6 +83,8 @@
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 3 # should be the same as [copies] in shuttle_incoming_event.yml
+ - type: PrecognitionResult # DeltaV - Precogniton
+ message: psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message
- type: LoadMapRule
preloadedGrid: DisasterEvacPod
diff --git a/Resources/Prototypes/Loadouts/role_loadouts.yml b/Resources/Prototypes/Loadouts/role_loadouts.yml
index eb569b70225..c16fd986b07 100644
--- a/Resources/Prototypes/Loadouts/role_loadouts.yml
+++ b/Resources/Prototypes/Loadouts/role_loadouts.yml
@@ -547,6 +547,11 @@
- MedicalBackpack
- Glasses
- SurvivalMedical # DeltaV, replaces Survival
+ - PsychologistPDADelta # DeltaV
+ - PsychologistHead # DeltaV
+ - Scarfs # DeltaV
+ - PsychologistOuterClothing # DeltaV
+ - PsychologistShoes # DeltaV
- Trinkets
- GroupSpeciesBreathTool
diff --git a/Resources/Prototypes/Maps/hive.yml b/Resources/Prototypes/Maps/hive.yml
index 9dbf90693ae..d286e879772 100644
--- a/Resources/Prototypes/Maps/hive.yml
+++ b/Resources/Prototypes/Maps/hive.yml
@@ -53,7 +53,7 @@
Bartender: [ 2, 2 ]
Botanist: [ 2, 3 ]
Boxer: [ 2, 2 ]
- Chef: [ 2, 3 ]
+ Chef: [ 1, 2 ]
Clown: [ 1, 2 ]
HeadOfPersonnel: [ 1, 1 ]
Janitor: [ 2, 3 ]
diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml
index ceb66ae1204..d45e562b962 100644
--- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml
+++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml
@@ -34,7 +34,7 @@
contents:
- id: LightBulbMaintenance
amount: 6
- - id: LightBulbMaintenanceRed
+ - id: DimLightBulb
amount: 6
- type: Sprite
layers:
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml
index 749a7a417f4..77c4521717a 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml
@@ -166,7 +166,7 @@
- id: ColoredLightTubeRed
- id: ColoredLightTubeFrostyBlue
- id: ColoredLightTubeBlackLight
- - id: LightBulbMaintenanceRed
+ - id: DimLightBulb
- id: LightBulbBroken
- id: LightTubeBroken
- id: LedLightBulb
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml
index 91eff1a68ca..533fc3cea5d 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml
@@ -14,7 +14,7 @@
PowerUse: 75
- type: Sprite
sprite: Objects/Power/light_tube.rsi
- state: normal
+ state: normal
- type: entity
parent: BaseLightbulb
@@ -26,9 +26,13 @@
- type: LightBulb
bulb: Bulb
color: "#FFD1A3" # 4000K color temp
- lightEnergy: 0.7
- lightRadius: 1.5
- lightSoftness: 1.1
+ lightEnergy: 0.05
+ lightRadius: 5
+ lightSoftness: 7
+ - type: Tag
+ tags:
+ - LightBulb
+ - Trash
# Colored
@@ -47,7 +51,7 @@
PowerUse: 25
- type: Sprite
sprite: Objects/Power/light_tube.rsi
- state: normal
+ state: normal
- type: entity
parent: BaseLightbulb
@@ -64,8 +68,8 @@
PowerUse: 25
- type: Sprite
sprite: Objects/Power/light_tube.rsi
- state: normal
-
+ state: normal
+
- type: entity
parent: BaseLightbulb
name: black light tube
@@ -82,17 +86,3 @@
- type: Sprite
sprite: Objects/Power/light_tube.rsi
state: normal
-
-- type: entity
- parent: BaseLightbulb
- name: incandescent light bulb
- suffix: Maintenance, Red
- id: LightBulbMaintenanceRed
- description: A dim light bulb. These emit a red hue.
- components:
- - type: LightBulb
- bulb: Bulb
- color: "#FF6666" # 4000K color temp
- lightEnergy: 1.1
- lightRadius: 1.5
- lightSoftness: 1.1
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml
index f9a6007c405..1bbf28e64fc 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml
@@ -6,10 +6,16 @@
components:
- type: PoweredLight
hasLampOnSpawn: BlueLightTube
+ - type: PointLight
+ radius: 12
+ energy: 3
+ softness: 0.5
+ color: "#B4FCF0"
- type: DamageOnInteract
damage:
types:
- Heat: 0.2
+ Heat: 2
+ popupText: powered-light-component-burn-hand
- type: entity
parent: AlwaysPoweredWallLight
@@ -31,10 +37,16 @@
components:
- type: PoweredLight
hasLampOnSpawn: LightBulbMaintenance
+ - type: PointLight
+ radius: 5
+ energy: 0.05
+ softness: 7
+ color: "#FFD1A3"
- type: DamageOnInteract
damage:
types:
- Heat: 0.2
+ Heat: 2
+ popupText: powered-light-component-burn-hand
- type: entity
parent: SmallLight
@@ -43,9 +55,9 @@
description: "A light fixture. Draws power and produces light when equipped with a light tube."
components:
- type: PointLight
- radius: 1.5
- energy: 0.7
- softness: 1.1
+ radius: 5
+ energy: 0.05
+ softness: 7
color: "#FFD1A3"
#Colored lights
@@ -58,10 +70,16 @@
components:
- type: PoweredLight
hasLampOnSpawn: ColoredLightTubeRed
+ - type: PointLight
+ radius: 10
+ energy: 0.9
+ softness: 0.5
+ color: "#FF6666"
- type: DamageOnInteract
damage:
types:
- Heat: 0.2
+ Heat: 2
+ popupText: powered-light-component-burn-hand
- type: entity
id: AlwaysPoweredLightColoredRed
@@ -83,10 +101,16 @@
components:
- type: PoweredLight
hasLampOnSpawn: ColoredLightTubeFrostyBlue
+ - type: PointLight
+ radius: 10
+ energy: 0.8
+ softness: 1
+ color: "#00FFFF"
- type: DamageOnInteract
damage:
types:
- Heat: 0.2
+ Heat: 2
+ popupText: powered-light-component-burn-hand
- type: entity
id: AlwaysPoweredLightColoredFrostyBlue
@@ -108,10 +132,16 @@
components:
- type: PoweredLight
hasLampOnSpawn: ColoredLightTubeBlackLight
+ - type: PointLight
+ radius: 10
+ energy: 1.1
+ softness: 1
+ color: "#5D0CED"
- type: DamageOnInteract
damage:
types:
- Heat: 0.2
+ Heat: 2
+ popupText: powered-light-component-burn-hand
- type: entity
id: AlwaysPoweredLightColoredBlack
@@ -136,10 +166,18 @@
state: base
- type: PoweredLight
hasLampOnSpawn: ColoredLightTubeRed
+ - type: PointLight
+ enabled: true
+ radius: 10
+ energy: 0.9
+ softness: 1
+ offset: "0, -0.5"
+ color: "#FF6666"
- type: DamageOnInteract
damage:
types:
Heat: 2
+ popupText: powered-light-component-burn-hand
- type: StaticPrice
price: 75
@@ -158,28 +196,3 @@
softness: 1
offset: "0, -0.5"
color: "#FF6666"
-
-- type: entity
- parent: PoweredSmallLight
- id: PoweredSmallLightMaintenanceRed
- suffix: Maintenance, Red
- description: "A light fixture. Draws power and produces light when equipped with a light bulb."
- components:
- - type: PoweredLight
- hasLampOnSpawn: LightBulbMaintenanceRed
- - type: DamageOnInteract
- damage:
- types:
- Heat: 0.2
-
-- type: entity
- parent: SmallLight
- id: AlwaysPoweredSmallLightMaintenanceRed
- suffix: Always Powered, Maintenance, Red
- description: "A light fixture. Draws power and produces light when equipped with a light tube."
- components:
- - type: PointLight
- radius: 1.5
- energy: 1.1
- softness: 1.1
- color: "#FF6666"
diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml
index ae458736491..a4f1af721d7 100644
--- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml
+++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml
@@ -20,6 +20,7 @@
- Security
#- Brig #Delta V: Removed brig access
- Maintenance
+ - External # DeltaV - Added external access
special:
- !type:AddImplantSpecial
implants: [ MindShieldImplant ]
diff --git a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml
index 4dff75d9867..145d77a245d 100644
--- a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml
+++ b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml
@@ -5,6 +5,7 @@
DispelPower: 1
TelegnosisPower: 1
PsionicRegenerationPower: 1
+ PrecognitionPower: 1 # DeltaV
MassSleepPower: 0.3
NoosphericZapPower: 0.3
# PsionicInvisibilityPower: 0.15
diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml
index 19e8b908762..5d7a0947c54 100644
--- a/Resources/Prototypes/Objectives/objectiveGroups.yml
+++ b/Resources/Prototypes/Objectives/objectiveGroups.yml
@@ -35,6 +35,7 @@
# KillRandomPersonObjective: 1 # DeltaV Replaced for Teach Lesson
TeachLessonRandomPersonObjective: 1
KillRandomHeadObjective: 0.25
+ KillRandomTraitorObjective: 0.2 # DeltaV
- type: weightedRandom
id: TraitorObjectiveGroupState
diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml b/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml
index 6617791a633..47e1371a41f 100644
--- a/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml
+++ b/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml
@@ -7,7 +7,7 @@
parent: BaseAlcohol
desc: reagent-desc-absinthe
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: absinthe #Delta-V Flavor additions
color: "#33EE00"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/absintheglass.rsi
@@ -64,7 +64,7 @@
parent: BaseAlcohol
desc: reagent-desc-blue-curacao
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: blue-curacao #Delta-V Flavor additions
color: "#0099FF"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/thin_glass.rsi
@@ -131,7 +131,7 @@
parent: BaseAlcohol
desc: reagent-desc-dead-rum
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: rum
+ flavor: deadrum #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/rumglass.rsi
@@ -264,7 +264,7 @@
parent: BaseAlcohol
desc: reagent-desc-n-t-cahors
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: bitter
+ flavor: n-t-cahors #Delta-V Flavor additions
color: "#7E4043"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/wineglass.rsi
@@ -279,7 +279,7 @@
parent: BaseAlcohol
desc: reagent-desc-poison-wine
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: bitter
+ flavor: poison-wine #Delta-V Flavor additions
color: "#990066"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/pwineglass.rsi
@@ -471,7 +471,7 @@
parent: BaseAlcohol
desc: reagent-desc-acid-spit
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: acidspit #Delta-V Flavor additions
color: "#365000"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/acidspitglass.rsi
@@ -486,7 +486,7 @@
parent: BaseAlcohol
desc: reagent-desc-allies-cocktail
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: allies-cocktail #Delta-V Flavor additions
color: "#00664d"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/alliescocktail.rsi
@@ -516,7 +516,7 @@
parent: BaseAlcohol
desc: reagent-desc-amasec
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: amasec #Delta-V Flavor additions
color: "#124da7"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/amasecglass.rsi
@@ -531,7 +531,7 @@
parent: BaseAlcohol
desc: reagent-desc-andalusia
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: andalusia #Delta-V Flavor additions
color: "#665700"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/andalusia.rsi
@@ -595,7 +595,7 @@
parent: BaseAlcohol
desc: reagent-desc-b52
physicalDesc: reagent-physical-desc-bubbly
- flavor: alcohol
+ flavor: b52 #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/b52glass.rsi
@@ -618,7 +618,7 @@
parent: BaseAlcohol
desc: reagent-desc-bahama-mama
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: bahama-mama #Delta-V Flavor additions
color: "#FF7F3B"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/bahama_mama.rsi
@@ -648,7 +648,7 @@
parent: BaseAlcohol
desc: reagent-desc-barefoot
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: barefoot #Delta-V Flavor additions
color: "#ff66cc"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/b&p.rsi
@@ -725,7 +725,7 @@
parent: BaseAlcohol
desc: reagent-desc-booger
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: booger #Delta-V Flavor additions
color: "#99ff00"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/booger.rsi
@@ -740,7 +740,7 @@
parent: BaseAlcohol
desc: reagent-desc-brave-bull
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: brave-bull #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/bravebullglass.rsi
@@ -827,7 +827,7 @@
parent: BaseAlcohol
desc: reagent-desc-demons-blood
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: demons-blood #Delta-V Flavor additions
color: "#a70000"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/demonsblood.rsi
@@ -843,7 +843,7 @@
parent: BaseAlcohol
desc: reagent-desc-devils-kiss
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: devils-kiss #Delta-V Flavor additions
color: "#ff0033"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/devilskiss.rsi
@@ -858,7 +858,7 @@
parent: BaseDrink
desc: reagent-desc-doctors-delight
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: medicine
+ flavor: doctors-delight #Delta-V Flavor additions
color: "#FF8CFF"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/doctorsdelightglass.rsi
@@ -890,7 +890,7 @@
parent: BaseAlcohol
desc: reagent-desc-driest-martini
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: driest-martini #Delta-V Flavor additions
color: "#2E6671"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/driestmartiniglass.rsi
@@ -913,7 +913,7 @@
parent: BaseAlcohol
desc: reagent-desc-erika-surprise
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: erika-surprise #Delta-V Flavor additions
color: "#67bc50"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/beerstein.rsi
@@ -952,7 +952,7 @@
parent: BaseAlcohol
desc: reagent-desc-gin-fizz
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: gin-fizz #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/ginfizzglass.rsi
@@ -1000,7 +1000,7 @@
parent: BaseAlcohol
desc: reagent-desc-gildlager
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: gildlager #Delta-V Flavor additions
color: "#FFFF91"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/gildlagerglass.rsi
@@ -1023,7 +1023,7 @@
parent: BaseAlcohol
desc: reagent-desc-grog
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: grog #Delta-V Flavor additions
color: "#e3e77b"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/beerstein.rsi
@@ -1038,7 +1038,7 @@
parent: BaseAlcohol
desc: reagent-desc-hippies-delight
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: hippies-delight #Delta-V Flavor additions
color: "#6eaa0c"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/hippiesdelightglass.rsi
@@ -1053,7 +1053,7 @@
parent: BaseAlcohol
desc: reagent-desc-hooch
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: hooch #Delta-V Flavor additions
color: "#664e00"
- type: reagent
@@ -1101,7 +1101,7 @@
parent: BaseAlcohol
desc: reagent-desc-irish-cream
physicalDesc: reagent-physical-desc-creamy
- flavor: creamy
+ flavor: irish-cream #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/irishcreamglass.rsi
@@ -1170,7 +1170,7 @@
parent: BaseAlcohol
desc: reagent-desc-manhattan
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: manhattan #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/manhattanglass.rsi
@@ -1185,7 +1185,7 @@
parent: BaseAlcohol
desc: reagent-desc-manhattan-project
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: manhattan-project #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/proj_manhattanglass.rsi
@@ -1216,7 +1216,7 @@
parent: BaseAlcohol
desc: reagent-desc-margarita
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: margarita #Delta-V Flavor additions
color: "#8CFF8C"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/margaritaglass.rsi
@@ -1231,7 +1231,7 @@
parent: BaseAlcohol
desc: reagent-desc-martini
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: martini #Delta-V Flavor additions
color: "#664300"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/martiniglass.rsi
@@ -1270,7 +1270,7 @@
parent: BaseAlcohol
desc: reagent-desc-mojito
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: mojito #Delta-V Flavor additions
color: "#3ea99888"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/mojito.rsi
@@ -1309,7 +1309,7 @@
parent: BaseAlcohol
desc: reagent-desc-neurotoxin
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: neurotoxin #Delta-V Flavor additions
color: "#2E2E61"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/neurotoxinglass.rsi
@@ -1358,7 +1358,7 @@
parent: BaseAlcohol
desc: reagent-desc-patron
physicalDesc: reagent-physical-desc-metallic
- flavor: alcohol
+ flavor: patron #Delta-V Flavor additions
color: "#585840"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/patronglass.rsi
@@ -1381,7 +1381,7 @@
parent: BaseAlcohol
desc: reagent-desc-red-mead
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: red-mead #Delta-V Flavor additions
color: "#bc5550"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/beerstein.rsi
@@ -1409,7 +1409,7 @@
parent: BaseAlcohol
desc: reagent-desc-sbiten
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: sbiten #Delta-V Flavor additions
color: "#004166"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/sbitenglass.rsi
@@ -1473,7 +1473,7 @@
parent: BaseAlcohol
desc: reagent-desc-silencer
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: nothing
+ flavor: silencer #Delta-V Flavor additions
color: "#878787"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/silencerglass.rsi
@@ -1511,7 +1511,7 @@
parent: BaseAlcohol
desc: reagent-desc-snow-white
physicalDesc: reagent-physical-desc-bubbly
- flavor: alcohol
+ flavor: snow-white #Delta-V Flavor additions
color: "#FFFFFF"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/snowwhite.rsi
@@ -1527,7 +1527,7 @@
parent: BaseAlcohol
desc: reagent-desc-sui-dream
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: sui-dream #Delta-V Flavor additions
color: "#00A86B"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/sdreamglass.rsi
@@ -1543,7 +1543,7 @@
parent: BaseAlcohol
desc: reagent-desc-syndicate-bomb
physicalDesc: reagent-physical-desc-opaque
- flavor: syndiebomb
+ flavor: syndicate-bomb #Delta-V Flavor additions
color: "#e3e77b"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/syndicatebomb.rsi
@@ -1624,7 +1624,7 @@
parent: BaseAlcohol
desc: reagent-desc-toxins-special
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: toxins-special #Delta-V Flavor additions
color: "#665c00"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/toxinsspecialglass.rsi
@@ -1639,7 +1639,7 @@
parent: BaseAlcohol
desc: reagent-desc-vodka-martini
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: vodka-martini #Delta-V Flavor additions
color: "#004666"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/martiniglass.rsi
@@ -1662,7 +1662,7 @@
parent: BaseAlcohol
desc: reagent-desc-vodka-tonic
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: alcohol
+ flavor: vodka-tonic #Delta-V Flavor additions
color: "#0064C8"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/gintonicglass.rsi # they look the same
diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml
index 3f9fb7b53d2..ad680a5fbcc 100644
--- a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml
+++ b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml
@@ -562,7 +562,7 @@
parent: BaseDrink
desc: reagent-desc-rewriter
physicalDesc: reagent-physical-desc-strong-smelling
- flavor: sweet
+ flavor: rewriter #Delta-V Flavor additions
color: "#485000"
metamorphicSprite:
sprite: Objects/Consumable/Drinks/beerstein.rsi
diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml
index 88ea4459dc9..368ddf7bacc 100644
--- a/Resources/Prototypes/Recipes/Lathes/devices.yml
+++ b/Resources/Prototypes/Recipes/Lathes/devices.yml
@@ -175,16 +175,6 @@
Glass: 100
Uranium: 100
-- type: latheRecipe
- id: WeaponProtoKineticAccelerator
- result: WeaponProtoKineticAccelerator
- category: Weapons
- completetime: 5
- materials:
- Steel: 1000
- Glass: 500
- Silver: 100
-
#- type: latheRecipe #DeltaV - LRP
# id: WeaponTetherGun
# result: WeaponTetherGun
diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml
index a4413e01ebe..36ceff065b3 100644
--- a/Resources/Prototypes/Recipes/Lathes/robotics.yml
+++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml
@@ -146,6 +146,13 @@
id: BorgModuleTool
result: BorgModuleTool
+# Mining Modules
+
+- type: latheRecipe
+ parent: BaseGoldBorgModuleRecipe
+ id: BorgModuleFauna
+ result: BorgModuleFauna
+
# Engineering Modules
- type: latheRecipe
diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml
index f6f303e5e3b..ac695f314a0 100644
--- a/Resources/Prototypes/Recipes/Lathes/security.yml
+++ b/Resources/Prototypes/Recipes/Lathes/security.yml
@@ -106,6 +106,44 @@
Plastic: 250
Gold: 100
+- type: latheRecipe
+ parent: BaseWeaponRecipeLong
+ id: WeaponProtoKineticAccelerator
+ result: WeaponProtoKineticAccelerator
+ materials:
+ Steel: 1000
+ Glass: 500
+ Gold: 100
+
+- type: latheRecipe
+ parent: BaseWeaponRecipeLong
+ id: WeaponCrusher
+ result: WeaponCrusher
+ materials:
+ Steel: 1500
+ Glass: 500
+ Plastic: 250
+ Gold: 100
+
+- type: latheRecipe
+ parent: BaseWeaponRecipe
+ id: WeaponCrusherDagger
+ result: WeaponCrusherDagger
+ materials:
+ Steel: 750
+ Glass: 300
+ Gold: 200
+
+- type: latheRecipe
+ parent: BaseWeaponRecipeLong
+ id: WeaponCrusherGlaive
+ result: WeaponCrusherGlaive
+ materials:
+ Steel: 2000
+ Glass: 500
+ Silver: 250
+ Gold: 250
+
- type: latheRecipe
id: ClothingBackpackElectropack
result: ClothingBackpackElectropack
diff --git a/Resources/Prototypes/Recipes/Reactions/single_reagent.yml b/Resources/Prototypes/Recipes/Reactions/single_reagent.yml
index 46830234faa..6e1a77c3e2c 100644
--- a/Resources/Prototypes/Recipes/Reactions/single_reagent.yml
+++ b/Resources/Prototypes/Recipes/Reactions/single_reagent.yml
@@ -8,15 +8,15 @@
products:
Protein: 0.5
-- type: reaction
- id: EggCooking
- impact: Low
- minTemp: 344
- reactants:
- Egg:
- amount: 0.5
- products:
- EggCooked: 0.5
+#- type: reaction # Delta V - Removed this reaction due to lack of function besides punishing chefs
+# id: EggCooking
+# impact: Low
+# minTemp: 344
+# reactants:
+# Egg:
+# amount: 0.5
+# products:
+# EggCooked: 0.5
- type: reaction
id: SapBoiling
diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml
index c7409565dd4..a768ac45639 100644
--- a/Resources/Prototypes/Research/arsenal.yml
+++ b/Resources/Prototypes/Research/arsenal.yml
@@ -1,19 +1,5 @@
# Tier 1
-- type: technology
- id: SalvageWeapons
- name: research-technology-salvage-weapons
- icon:
- sprite: Objects/Weapons/Guns/Basic/kinetic_accelerator.rsi
- state: icon
- discipline: Arsenal
- tier: 1
- cost: 5000
- recipeUnlocks:
- - WeaponProtoKineticAccelerator
- - ShuttleGunKineticCircuitboard
- # These are roundstart but not replenishable for salvage
-
- type: technology
id: DraconicMunitions
name: research-technology-draconic-munitions
@@ -174,6 +160,22 @@
# recipeUnlocks:
# - WeaponXrayCannon
+- type: technology
+ id: ExperimentalSalvageWeaponry
+ name: research-technology-experimental-salvage-weaponry
+ icon:
+ sprite: Objects/Weapons/Melee/crusher_glaive.rsi
+ state: icon
+ discipline: Arsenal
+ tier: 2
+ cost: 10000
+ recipeUnlocks:
+ - WeaponCrusher
+ - WeaponCrusherDagger
+ - WeaponCrusherGlaive
+ - BorgModuleFauna
+ - ShuttleGunKineticCircuitboard
+
- type: technology
id: BasicShuttleArmament
name: research-technology-basic-shuttle-armament
@@ -193,8 +195,7 @@
- ShuttleGunSvalinnMachineGunCircuitboard
- ShuttleGunPerforatorCircuitboard
- ShuttleGunFriendshipCircuitboard
- technologyPrerequisites:
- - SalvageWeapons
+ technologyPrerequisites: # DeltaV: added prerequesite
- ExplosiveTechnology
# Tier 3
diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml
index 37496484b79..dedc0f60e8a 100644
--- a/Resources/Prototypes/Research/industrial.yml
+++ b/Resources/Prototypes/Research/industrial.yml
@@ -100,6 +100,7 @@
recipeUnlocks:
- ThermomachineFreezerMachineCircuitBoard
- GasRecyclerMachineCircuitboard
+ - AlertsComputerCircuitboard # DeltaV - Allows atmos computers to be researched
- type: technology
id: RipleyAPLU
diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml
index 7ad883777ed..48e71198911 100644
--- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml
+++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml
@@ -3,6 +3,13 @@
name: job-name-cargotech
description: job-description-cargotech
playTimeTracker: JobCargoTechnician
+ # Begin DeltaV modifications - Add time requirement to cargo tech
+ # Uncomment once ready to deploy Cargo Assistant
+ #requirements:
+ #- !type:DepartmentTimeRequirement
+ # department: Logistics # DeltaV - Logistics Department replacing Cargo
+ # time: 21600 # 6 hrs ~3 shifts.
+ # End DeltaV modifications
startingGear: CargoTechGear
icon: "JobIconCargoTechnician"
supervisors: job-supervisors-qm
diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml
index 4e69c4a3c87..00e991a2094 100644
--- a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml
+++ b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml
@@ -22,9 +22,10 @@
- type: startingGear
id: PsychologistGear
equipment:
- shoes: ClothingShoesLeather
- id: PsychologistPDA
+ #shoes: ClothingShoesLeather # DeltaV: Multiple shoe options in loadout.
+ #id: PsychologistPDA # DeltaV: Multiple PDA options in loadout.
ears: ClothingHeadsetMedical
storage:
back:
- RubberStampPsychologist
+ - BoxFolderBlue # DeltaV
diff --git a/Resources/Prototypes/Roles/Jobs/departments.yml b/Resources/Prototypes/Roles/Jobs/departments.yml
index c009181d6fd..994366a759c 100644
--- a/Resources/Prototypes/Roles/Jobs/departments.yml
+++ b/Resources/Prototypes/Roles/Jobs/departments.yml
@@ -8,6 +8,7 @@
- Quartermaster
- SalvageSpecialist
- Courier # DeltaV - Courier, see Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml
+ #- CargoAssistant # DeltaV - Uncomment once ready to deploy.
- type: department
id: Civilian
diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/space_cash.yml
new file mode 100644
index 00000000000..cdf1710d9c0
--- /dev/null
+++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/space_cash.yml
@@ -0,0 +1,21 @@
+- type: entity
+ parent: SpaceCash
+ id: SpaceCash15000
+ suffix: 15000
+ components:
+ - type: Icon
+ sprite: _NF/Objects/Economy/cash.rsi
+ state: cash_10000
+ - type: Stack
+ count: 15000
+
+- type: entity
+ parent: SpaceCash
+ id: SpaceCash25000
+ suffix: 25000
+ components:
+ - type: Icon
+ sprite: _NF/Objects/Economy/cash.rsi
+ state: cash_25000
+ - type: Stack
+ count: 25000
diff --git a/Resources/Prototypes/game_presets.yml b/Resources/Prototypes/game_presets.yml
index dc5663c0882..f27d5599f5b 100644
--- a/Resources/Prototypes/game_presets.yml
+++ b/Resources/Prototypes/game_presets.yml
@@ -9,7 +9,7 @@
- MeteorSwarmScheduler
- RampingStationEventScheduler
- SpaceTrafficControlEventScheduler
- - SpaceTrafficControlFriendlyEventScheduler
+ #- SpaceTrafficControlFriendlyEventScheduler # DeltaV: spam of garbage roles nobody takes every 10-20 minutes
- BasicRoundstartVariation
- GlimmerEventScheduler # DeltaV
diff --git a/Resources/Prototypes/weather.yml b/Resources/Prototypes/weather.yml
index a71e59354af..896df8641a1 100644
--- a/Resources/Prototypes/weather.yml
+++ b/Resources/Prototypes/weather.yml
@@ -8,6 +8,12 @@
params:
loop: true
volume: -6
+ damage: # DeltaV
+ types:
+ Heat: 4
+ damageBlacklist: # DeltaV
+ components:
+ - AshStormImmune
- type: weather
id: AshfallLight
diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/equipped-EYES.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/equipped-EYES.png
new file mode 100644
index 00000000000..d243af0061b
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/equipped-EYES.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/icon.png
new file mode 100644
index 00000000000..429475f5b20
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-left.png
new file mode 100644
index 00000000000..9efcae06ec0
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-right.png
new file mode 100644
index 00000000000..8800b0db496
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json
new file mode 100644
index 00000000000..6e51cc72ef3
--- /dev/null
+++ b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by JustAnOrange",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-EYES",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon-flash.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon-flash.png
new file mode 100644
index 00000000000..2c0ff73c793
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon-flash.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon.png
new file mode 100644
index 00000000000..6bf3815dd57
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-left.png
new file mode 100644
index 00000000000..0201234bf39
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-right.png
new file mode 100644
index 00000000000..9e87a46662e
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json
new file mode 100644
index 00000000000..d33d71b631e
--- /dev/null
+++ b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json
@@ -0,0 +1,50 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from paradise station at commit https://github.com/ParadiseSS13/Paradise/commit/e5e584804b4b0b373a6a69d23afb73fd3c094365, redrawn by Ubaser. vox state by Flareguy, modified by Radezolid to add light",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon-flash"
+ },
+ {
+ "name": "off-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "off-equipped-HELMET-vox",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "off-equipped-HELMET-vulpkanin",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET-vulpkanin",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET-vox",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET",
+ "directions": 4
+ }
+
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vox.png
new file mode 100644
index 00000000000..52483c501ec
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vox.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vulpkanin.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vulpkanin.png
new file mode 100644
index 00000000000..002e49f0282
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vulpkanin.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET.png
new file mode 100644
index 00000000000..07450df725f
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vox.png
new file mode 100644
index 00000000000..bc97bd641ff
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vox.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vulpkanin.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vulpkanin.png
new file mode 100644
index 00000000000..2a475a9e463
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vulpkanin.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET.png
new file mode 100644
index 00000000000..fc10c3d1f12
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/equipped-HELMET.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/equipped-HELMET.png
new file mode 100644
index 00000000000..da2404a932a
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/equipped-HELMET.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/icon.png
new file mode 100644
index 00000000000..2e5d2a28396
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-left.png
new file mode 100644
index 00000000000..2c66ace3732
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-right.png
new file mode 100644
index 00000000000..7f072169a92
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/meta.json
new file mode 100644
index 00000000000..64d5b6bd401
--- /dev/null
+++ b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by JustAnOrange",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/equipped-MASK.png b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/equipped-MASK.png
new file mode 100644
index 00000000000..b2183436a92
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/equipped-MASK.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/icon.png
new file mode 100644
index 00000000000..28241e2bf14
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-left.png
new file mode 100644
index 00000000000..b84a0d107ca
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-right.png
new file mode 100644
index 00000000000..cd2e818c3da
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json
new file mode 100644
index 00000000000..3958cbbca08
--- /dev/null
+++ b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by JustAnOrange",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-MASK",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 00000000000..afa3f44ef68
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/icon.png
new file mode 100644
index 00000000000..dcc693e2e26
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-left.png
new file mode 100644
index 00000000000..622756f1d49
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-right.png
new file mode 100644
index 00000000000..793e1c977e2
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/meta.json
new file mode 100644
index 00000000000..1f43e3c45f9
--- /dev/null
+++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by JustAnOrange",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/equipped-INNERCLOTHING.png
new file mode 100644
index 00000000000..91a2540dd39
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/equipped-INNERCLOTHING.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/icon.png
new file mode 100644
index 00000000000..ac35d581229
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-left.png
new file mode 100644
index 00000000000..38dcf86cc35
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-right.png
new file mode 100644
index 00000000000..2a31a54c67c
Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json
new file mode 100644
index 00000000000..50572b2b60c
--- /dev/null
+++ b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by JustAnOrange",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-INNERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json
new file mode 100644
index 00000000000..e0c9ccac8c5
--- /dev/null
+++ b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-4.0",
+ "copyright": "Sprited by chamomileteatime on Discord for DeltaV",
+ "size": {
+ "x": 64,
+ "y": 64
+ },
+ "states": [
+ {
+ "name": "precognition"
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/precognition.png b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/precognition.png
new file mode 100644
index 00000000000..1bf396261e9
Binary files /dev/null and b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/precognition.png differ
diff --git a/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/CargoAssistant.png b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/CargoAssistant.png
new file mode 100644
index 00000000000..d4c5e0d7b56
Binary files /dev/null and b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/CargoAssistant.png differ
diff --git a/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json
index bdbe6a6461d..d7942b8e633 100644
--- a/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json
+++ b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | nyanoPrisonGuard, nyanoMartialArtist, nyanoGladiator made by Floofers | ChiefJustice, Clerk by leonardo_dabepis (Discord), SecurityBorg recoloured from MedicalBorg by DangerRevolution(github)",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | nyanoPrisonGuard, nyanoMartialArtist, nyanoGladiator made by Floofers | ChiefJustice, Clerk by leonardo_dabepis (Discord), SecurityBorg recoloured from MedicalBorg by DangerRevolution(github), CargoAssistant recoloured from MedicalIntern by Radezolid",
"size": {
"x": 8,
"y": 8
@@ -42,6 +42,9 @@
},
{
"name": "SecurityBorg"
+ },
+ {
+ "name": "CargoAssistant"
}
]
}
diff --git a/Resources/Textures/DeltaV/Markers/jobs.rsi/cargoassistant.png b/Resources/Textures/DeltaV/Markers/jobs.rsi/cargoassistant.png
new file mode 100644
index 00000000000..a347a8c4f9f
Binary files /dev/null and b/Resources/Textures/DeltaV/Markers/jobs.rsi/cargoassistant.png differ
diff --git a/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json b/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json
index 73c7764df0a..f5ce8ad76e4 100644
--- a/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json
+++ b/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "made by Floofers. roboticist.png created by deltanedas (github) for DeltaV.",
+ "copyright": "made by Floofers. roboticist.png created by deltanedas (github) for DeltaV. cargoassistant made by Radezolid",
"size": {
"x": 32,
"y": 32
@@ -48,6 +48,9 @@
},
{
"name": "roboticist"
+ },
+ {
+ "name": "cargoassistant"
}
]
}
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json
new file mode 100644
index 00000000000..cab0153f68d
--- /dev/null
+++ b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json
@@ -0,0 +1,28 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Selene wings by @bogus_0451 on discord",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "selene",
+ "directions": 4
+ },
+ {
+ "name": "selene_primary",
+ "directions": 4
+ },
+ {
+ "name": "selene_secondary",
+ "directions": 4
+ },
+ {
+ "name": "selene_tertiary",
+ "directions": 4
+ }
+ ]
+}
+
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene.png
new file mode 100644
index 00000000000..ba9a5c4e262
Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene.png differ
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_primary.png
new file mode 100644
index 00000000000..034e3ebbc1e
Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_primary.png differ
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_secondary.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_secondary.png
new file mode 100644
index 00000000000..30b451639f3
Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_secondary.png differ
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_tertiary.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_tertiary.png
new file mode 100644
index 00000000000..71cf6555e6d
Binary files /dev/null and b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_tertiary.png differ
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat.png b/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat.png
index 08096103534..d3b67e9dd4b 100644
Binary files a/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat.png and b/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat.png differ
diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat_nose.png b/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat_nose.png
index 957bd20691b..563a40e61ad 100644
Binary files a/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat_nose.png and b/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat_nose.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon.png
new file mode 100644
index 00000000000..9c45adab3b8
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon_open.png b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon_open.png
new file mode 100644
index 00000000000..3062fdb7bd9
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon_open.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-left.png
new file mode 100644
index 00000000000..aba54f1fbf7
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-right.png b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-right.png
new file mode 100644
index 00000000000..e61f8c27269
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json
new file mode 100644
index 00000000000..27218dea25f
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json
@@ -0,0 +1,25 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi, Edit by Yuukitten",
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ }
+ ]
+ }
diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base.png
new file mode 100644
index 00000000000..e0b01438f10
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base_light.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base_light.png
new file mode 100644
index 00000000000..d926c91cb0c
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base_light.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hibiscus.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hibiscus.png
new file mode 100644
index 00000000000..1ac229d39a6
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hibiscus.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hydrangea.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hydrangea.png
new file mode 100644
index 00000000000..0a84725f9de
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hydrangea.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/meta.json
new file mode 100644
index 00000000000..bee2df43352
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by rosieposieeee (Github)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "base"
+ },
+ {
+ "name": "base_light"
+ },
+ {
+ "name": "hibiscus"
+ },
+ {
+ "name": "hydrangea"
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json
index d0ac0bee150..12a91d4ac00 100644
--- a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json
+++ b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json
@@ -1,7 +1,8 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "aPDA retexture by ZweiHawke @ zweihawke.net, added Hygiene Technician version by Radezolid",
+ "copyright": "aPDA retexture by ZweiHawke @ zweihawke.net, added Hygiene Technician | modified interntech and added the cargo assistant by Radezolid, added Psychiatrist, Therapist, and Social Worker versions by alterae ",
+
"size": {
"x": 32,
"y": 32
@@ -50,6 +51,9 @@
{
"name": "pda-cargo"
},
+ {
+ "name": "pda-cargo-assistant"
+ },
{
"name": "pda-ce"
},
@@ -104,6 +108,9 @@
{
"name": "pda-paramedic"
},
+ {
+ "name": "pda-psychiatrist"
+ },
{
"name": "pda-mime"
},
@@ -128,6 +135,9 @@
{
"name": "pda-security"
},
+ {
+ "name": "pda-socialworker"
+ },
{
"name": "pda-brigmedic"
},
@@ -137,6 +147,9 @@
{
"name": "pda-syndi-agent"
},
+ {
+ "name": "pda-therapist"
+ },
{
"name": "pda-centcom"
},
diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-cargo-assistant.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-cargo-assistant.png
new file mode 100644
index 00000000000..35955c51d73
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-cargo-assistant.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-interntech.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-interntech.png
index 36537f397bd..2d43b85b4e5 100644
Binary files a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-interntech.png and b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-interntech.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-psychiatrist.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-psychiatrist.png
new file mode 100644
index 00000000000..fae856a2e10
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-psychiatrist.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-socialworker.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-socialworker.png
new file mode 100644
index 00000000000..0aac9742b61
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-socialworker.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-therapist.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-therapist.png
new file mode 100644
index 00000000000..9de90f1914a
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-therapist.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/icon.png
new file mode 100644
index 00000000000..45e7840d963
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json
new file mode 100644
index 00000000000..3ce9554c33f
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-4.0",
+ "copyright": "Done by Kr8art on github",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/idcargoassistant.png b/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/idcargoassistant.png
new file mode 100644
index 00000000000..73377bc3689
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/idcargoassistant.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/meta.json
index cd479792df3..6df2aef4c56 100644
--- a/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/meta.json
+++ b/Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | nyanoprisonguard, nyanogladiator, nyanomartialartist made by Floofers, idchiefjustice idclerk and idlawyer made by leonardo_dabepis (Discord), idprosecutor made by Timemaster99 (Discord)",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | nyanoprisonguard, nyanogladiator, nyanomartialartist made by Floofers, idchiefjustice idclerk and idlawyer made by leonardo_dabepis (Discord), idprosecutor made by Timemaster99 (Discord), idcargoassistant made by Radezolid",
"size": {
"x": 32,
"y": 32
@@ -39,6 +39,9 @@
},
{
"name": "idlawyer"
+ },
+ {
+ "name": "idcargoassistant"
}
]
}
diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/base.png b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/base.png
new file mode 100644
index 00000000000..bfc92c166d4
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/base.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/closed.png b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/closed.png
new file mode 100644
index 00000000000..b111827b8e5
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/closed.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json
new file mode 100644
index 00000000000..30f4889fd7e
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json
@@ -0,0 +1,20 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/blob/master/icons/obj/objects.dmi, modified by rosieposieeee",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "base"
+ },
+ {
+ "name": "open"
+ },
+ {
+ "name": "closed"
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/open.png b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/open.png
new file mode 100644
index 00000000000..bfc92c166d4
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/open.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/base.png b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/base.png
new file mode 100644
index 00000000000..05686978222
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/base.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json
new file mode 100644
index 00000000000..ef539daf601
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json
@@ -0,0 +1,15 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by rosieposieeee",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "base",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png
new file mode 100644
index 00000000000..2ff89ccdee0
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png
new file mode 100644
index 00000000000..e4fbbd6142d
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png
new file mode 100644
index 00000000000..f6fc89bad1c
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png
new file mode 100644
index 00000000000..8a383b120ae
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png
new file mode 100644
index 00000000000..837127e2d4d
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png
new file mode 100644
index 00000000000..b76af8dae06
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png
new file mode 100644
index 00000000000..47e9b408bbd
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png
new file mode 100644
index 00000000000..09d2a6c6468
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png
new file mode 100644
index 00000000000..56258820e2c
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png
new file mode 100644
index 00000000000..cc367b8352e
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png
new file mode 100644
index 00000000000..cc367b8352e
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png
new file mode 100644
index 00000000000..38e4e876632
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png
new file mode 100644
index 00000000000..b9e81e9b496
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png
new file mode 100644
index 00000000000..6074c6a76d6
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png
new file mode 100644
index 00000000000..e900d13598e
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png
new file mode 100644
index 00000000000..1a20164b589
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png
new file mode 100644
index 00000000000..78b1d7ca294
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png
new file mode 100644
index 00000000000..90b5b23a215
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json
new file mode 100644
index 00000000000..8549d3e1825
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json
@@ -0,0 +1,85 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/125c975f1b3bf9826b37029e9ab5a5f89e975a7e, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244, Resprited for DeltaV by Stop-Sign",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "base"
+ },
+ {
+ "name": "mag-unshaded-1"
+ },
+ {
+ "name": "mag-unshaded-2"
+ },
+ {
+ "name": "mag-unshaded-3"
+ },
+ {
+ "name": "mag-unshaded-4"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "wielded-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "wielded-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "0-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "0-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "25-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "25-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "50-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "50-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "75-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "75-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "equipped-BACKPACK",
+ "directions": 4
+ },
+ {
+ "name": "equipped-SUITSTORAGE",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png
new file mode 100644
index 00000000000..e8e19113d9e
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png
new file mode 100644
index 00000000000..f181078b55e
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/equipped-BELT.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/equipped-BELT.png
new file mode 100644
index 00000000000..8b714d814ea
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/equipped-BELT.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/icon.png
new file mode 100644
index 00000000000..764282f6fdd
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/icon.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-left.png
new file mode 100644
index 00000000000..b885d1e1768
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-left.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-right.png
new file mode 100644
index 00000000000..bd9c42937ad
Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-right.png differ
diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json
new file mode 100644
index 00000000000..751fedd5216
--- /dev/null
+++ b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken/modified from desertrose at https://github.com/DesertRose2/desertrose/pull/378/commits/9e081bd2a0d7614be5a9dabbca34886ce204105d, modified into bread knife by Radezolid",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "equipped-BELT",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/cj.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj.png
similarity index 100%
rename from Resources/Textures/Structures/Storage/closet.rsi/cj.png
rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj.png
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/cj_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_door.png
similarity index 100%
rename from Resources/Textures/Structures/Storage/closet.rsi/cj_door.png
rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_door.png
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/cj_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_open.png
similarity index 100%
rename from Resources/Textures/Structures/Storage/closet.rsi/cj_open.png
rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_open.png
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/clerk.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk.png
similarity index 100%
rename from Resources/Textures/Structures/Storage/closet.rsi/clerk.png
rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk.png
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/clerk_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_door.png
similarity index 100%
rename from Resources/Textures/Structures/Storage/closet.rsi/clerk_door.png
rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_door.png
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/clerk_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_open.png
similarity index 100%
rename from Resources/Textures/Structures/Storage/closet.rsi/clerk_open.png
rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_open.png
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic.png
new file mode 100644
index 00000000000..cd0c0ff2ea1
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_door.png
new file mode 100644
index 00000000000..26498527779
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_door.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_icon.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_icon.png
new file mode 100644
index 00000000000..2487eae1fdd
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_icon.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_open.png
new file mode 100644
index 00000000000..01ed5bf73b6
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_open.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/locked.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/locked.png
new file mode 100644
index 00000000000..d90218d19e2
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/locked.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json
new file mode 100644
index 00000000000..98a03e8e481
--- /dev/null
+++ b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json
@@ -0,0 +1,59 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "copyright": "Taken from tgstation, added psych locker based on medical locker by Radezolid, CJ and Clerk lockers edited by Timemaster99 (Discord)",
+ "license": "CC-BY-SA-3.0",
+ "states": [
+ {
+ "name": "psych"
+ },
+ {
+ "name": "psych_door"
+ },
+ {
+ "name": "psych_open"
+ },
+ {
+ "name": "locked"
+ },
+ {
+ "name": "unlocked"
+ },
+ {
+ "name": "welded"
+ },
+ {
+ "name": "generic"
+ },
+ {
+ "name": "generic_door"
+ },
+ {
+ "name": "generic_open"
+ },
+ {
+ "name": "generic_icon"
+ },
+ {
+ "name": "cj"
+ },
+ {
+ "name": "cj_door"
+ },
+ {
+ "name": "cj_open"
+ },
+ {
+ "name": "clerk"
+ },
+ {
+ "name": "clerk_door"
+ },
+ {
+ "name": "clerk_open"
+ }
+ ]
+}
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych.png
new file mode 100644
index 00000000000..7f8f35ac7fd
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_door.png
new file mode 100644
index 00000000000..f12751bf6e6
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_door.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_open.png
new file mode 100644
index 00000000000..ca629c4fcc2
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_open.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/unlocked.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/unlocked.png
new file mode 100644
index 00000000000..418607bfaf5
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/unlocked.png differ
diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/welded.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/welded.png
new file mode 100644
index 00000000000..5ba5dcc8962
Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/welded.png differ
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/fauna-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/fauna-module.png
new file mode 100644
index 00000000000..888ddb464e6
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/fauna-module.png differ
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
index 2ebb6eddcf5..7fb1027c9e9 100644
--- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
+++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9",
+ "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9. fauna-module.png created by deltanedas (github) for SS14.",
"size": {
"x": 32,
"y": 32
@@ -103,6 +103,9 @@
{
"name":"syndicate-martyr-module"
},
+ {
+ "name": "fauna-module"
+ },
{
"name": "select-type"
}
diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/icon_on.png b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/icon_on.png
new file mode 100644
index 00000000000..b39ff0e6da1
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/icon_on.png differ
diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json
index 39303046bb7..355ad48c8e8 100644
--- a/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json
+++ b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Homegrown by @ninruB#7795, inhand sprites by lzk228(discord 455630609641897984)",
+ "copyright": "Homegrown by @ninruB#7795, inhand sprites by lzk228(discord 455630609641897984) | icon_on state by @kilath",
"size": {
"x": 32,
"y": 32
@@ -21,6 +21,19 @@
{
"name": "inhand-right",
"directions": 4
+ },
+ {
+ "name": "icon_on",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
}
]
}
diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/icon_on.png b/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/icon_on.png
new file mode 100644
index 00000000000..42382c71f40
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/icon_on.png differ
diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/meta.json b/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/meta.json
index 3b28912df0d..c81c158a563 100644
--- a/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/meta.json
+++ b/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/5ce5a66c814c4a60118d24885389357fd0240002/icons/obj/mining.dmi",
+ "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/5ce5a66c814c4a60118d24885389357fd0240002/icons/obj/mining.dmi | icon_on state by PuroSlavKing (Github)",
"size": {
"x": 32,
"y": 32
@@ -106,6 +106,25 @@
0.1
]
]
+ },
+ {
+ "name": "icon_on",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
}
]
}
diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-carp.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-carp.png
new file mode 100644
index 00000000000..abe4ade024f
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-carp.png differ
diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
index 74c9893cae3..25837047418 100644
--- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
+++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC0-1.0",
- "copyright": "Created by EmoGarbage404 (github) for Space Station 14. icon-construction.png created by deltanedas (github). syndicateborgbomb.png created by Mangohydra (github).",
+ "copyright": "Created by EmoGarbage404 (github) for Space Station 14. icon-construction.png and icon-carp.png created by deltanedas (github). syndicateborgbomb.png created by Mangohydra (github).",
"size": {
"x": 32,
"y": 32
@@ -28,6 +28,9 @@
{
"name": "icon-cables"
},
+ {
+ "name": "icon-carp"
+ },
{
"name": "icon-chemist"
},
diff --git a/Resources/Textures/Structures/Storage/closet.rsi/meta.json b/Resources/Textures/Structures/Storage/closet.rsi/meta.json
index d26d0c6545d..5600268fde3 100644
--- a/Resources/Textures/Structures/Storage/closet.rsi/meta.json
+++ b/Resources/Textures/Structures/Storage/closet.rsi/meta.json
@@ -4,7 +4,7 @@
"x": 32,
"y": 32
},
- "copyright": "Taken from tgstation, brigmedic locker is a resprited CMO locker by PuroSlavKing (Github), n2 sprites based on fire and emergency sprites | CJ and Clerk lockers edited by Timemaster99 (Discord)",
+ "copyright": "Taken from tgstation, brigmedic locker is a resprited CMO locker by PuroSlavKing (Github), n2 sprites based on fire and emergency sprites",
"license": "CC-BY-SA-3.0",
"states": [
{
@@ -163,24 +163,6 @@
{
"name": "chemical_door"
},
- {
- "name": "cj"
- },
- {
- "name": "cj_door"
- },
- {
- "name": "cj_open"
- },
- {
- "name": "clerk"
- },
- {
- "name": "clerk_door"
- },
- {
- "name": "clerk_open"
- },
{
"name": "cmo"
},
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash.png
new file mode 100644
index 00000000000..42e7b863e68
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10.png
new file mode 100644
index 00000000000..05c47750168
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100.png
new file mode 100644
index 00000000000..5862df67911
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_1000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_1000.png
new file mode 100644
index 00000000000..6a5688cd866
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_1000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10000.png
new file mode 100644
index 00000000000..3400ef8a0a2
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100000.png
new file mode 100644
index 00000000000..707382f69b6
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_25000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_25000.png
new file mode 100644
index 00000000000..fcfb013f861
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_25000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_250000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_250000.png
new file mode 100644
index 00000000000..c2cfcea129f
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_250000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_500.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_500.png
new file mode 100644
index 00000000000..5d68d914bfe
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_500.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_5000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_5000.png
new file mode 100644
index 00000000000..36ff38c4d47
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_5000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_50000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_50000.png
new file mode 100644
index 00000000000..054cb872c09
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_50000.png differ
diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json b/Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json
new file mode 100644
index 00000000000..ab0be10c51b
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json
@@ -0,0 +1,136 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-NC-SA-3.0",
+ "copyright": "Modified by EmoGarbage404 and taken from https://github.com/goonstation/goonstation at commit b951a2c12d967af1295a3e6d33a861e7e1f21299. cash_5000, cash_10000, cash_25000, cash_50000, cash_100000, cash_250000 modified by Whatstone (Discord)",
+ "states": [
+ {
+ "name": "cash"
+ },
+ {
+ "name": "cash_10"
+ },
+ {
+ "name": "cash_100"
+ },
+ {
+ "name": "cash_500"
+ },
+ {
+ "name": "cash_1000"
+ },
+ {
+ "name": "cash_5000"
+ },
+ {
+ "name": "cash_10000",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "cash_25000",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "cash_50000",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "cash_100000",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "cash_250000",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ }
+ ]
+}