mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-06-09 13:26:34 +02:00
Staging To Master (#43264)
* Revert "Remove salv stuff from mothership (#43007)" This reverts commiteea773ffee. * remove changelog * Fix changelog for #43049 (#43248) Changelogs gotta go on staging in the changelog thing * Revert "Xenoborg extractor (#42796)" This reverts commit7f15e77954. * revert CL * Fix floating point tilefire nonsense (#43263) * Change method call and epsilon * holy guacamole --------- Co-authored-by: ScarKy0 <scarky0@onet.eu> Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com> Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
This commit is contained in:
@@ -204,7 +204,7 @@ public sealed partial class AtmosphereSystem
|
||||
if (!IsMixtureOxidizer(tile.Air))
|
||||
return;
|
||||
|
||||
var isFlammable = IsMixtureIgnitable(tile.Air);
|
||||
var isFlammable = IsMixtureFuel(tile.Air);
|
||||
|
||||
if (tile.Hotspot.Valid)
|
||||
{
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace Content.Server.Power.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Charges the battery from a entity with <see cref="PowerConsumerComponent"/>
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class PowerConsumerBatteryChargerComponent : Component;
|
||||
@@ -1,23 +0,0 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.Power.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Spawns a entity when the battery reaches a certain percentage or amount of power.
|
||||
/// It also consumes that much power when spawning the entity.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class SpawnOnBatteryLevelComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Entity prototype to spawn.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public EntProtoId Prototype = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Amount of power in the battery (in joules) to spawn entity
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float Charge;
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Content.Shared.Power;
|
||||
|
||||
namespace Content.Server.Power.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Changes the voltage of a device with <see cref="PowerConsumerComponent"/>
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class VoltageTogglerComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// List of all voltage settings.
|
||||
/// </summary>
|
||||
[DataField(required: true), ViewVariables(VVAccess.ReadOnly)]
|
||||
public VoltageSetting[] Settings = [];
|
||||
|
||||
/// <summary>
|
||||
/// Index of the currently selected setting.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
[AutoNetworkedField]
|
||||
public int SelectedVoltageLevel;
|
||||
}
|
||||
|
||||
[DataDefinition]
|
||||
public partial struct VoltageSetting
|
||||
{
|
||||
/// <summary>
|
||||
/// Voltage.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public Voltage Voltage;
|
||||
|
||||
/// <summary>
|
||||
/// Power usage in that voltage.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public float Wattage;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the setting.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public LocId Name;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Shared.Power.Components;
|
||||
|
||||
namespace Content.Server.Power.EntitySystems;
|
||||
|
||||
public sealed class PowerConsumerBatteryChargerSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly BatterySystem _battery = default!;
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
var query = EntityQueryEnumerator<PowerConsumerBatteryChargerComponent, PowerConsumerComponent, BatteryComponent, TransformComponent>();
|
||||
|
||||
while (query.MoveNext(out var entity, out _, out var powerConsumerComp, out var battery, out var transform))
|
||||
{
|
||||
if (!transform.Anchored)
|
||||
continue;
|
||||
|
||||
_battery.ChangeCharge((entity, battery), powerConsumerComp.NetworkLoad.ReceivingPower * frameTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -57,7 +57,6 @@ namespace Content.Server.Power.EntitySystems
|
||||
SubscribeLocalEvent<PowerNetworkBatteryComponent, EntityPausedEvent>(BatteryPaused);
|
||||
SubscribeLocalEvent<PowerNetworkBatteryComponent, EntityUnpausedEvent>(BatteryUnpaused);
|
||||
|
||||
SubscribeLocalEvent<PowerConsumerComponent, MapInitEvent>(PowerConsumerMapInit);
|
||||
SubscribeLocalEvent<PowerConsumerComponent, ComponentInit>(PowerConsumerInit);
|
||||
SubscribeLocalEvent<PowerConsumerComponent, ComponentShutdown>(PowerConsumerShutdown);
|
||||
SubscribeLocalEvent<PowerConsumerComponent, EntityPausedEvent>(PowerConsumerPaused);
|
||||
@@ -133,11 +132,6 @@ namespace Content.Server.Power.EntitySystems
|
||||
component.NetworkBattery.Paused = false;
|
||||
}
|
||||
|
||||
private void PowerConsumerMapInit(EntityUid uid, PowerConsumerComponent component, ref MapInitEvent args)
|
||||
{
|
||||
_appearance.SetData(uid, PowerDeviceVisuals.Powered, component.ReceivedPower > 0);
|
||||
}
|
||||
|
||||
private void PowerConsumerInit(EntityUid uid, PowerConsumerComponent component, ComponentInit args)
|
||||
{
|
||||
_powerNetConnector.BaseNetConnectorInit(component);
|
||||
@@ -420,8 +414,6 @@ namespace Content.Server.Power.EntitySystems
|
||||
lastRecv = newRecv;
|
||||
var msg = new PowerConsumerReceivedChanged(newRecv, consumer.DrawRate);
|
||||
RaiseLocalEvent(uid, ref msg);
|
||||
|
||||
_appearance.SetData(uid, PowerDeviceVisuals.Powered, newRecv > 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Shared.Power;
|
||||
using Content.Shared.Power.Components;
|
||||
|
||||
namespace Content.Server.Power.EntitySystems;
|
||||
|
||||
public sealed class SpawnOnBatteryLevelSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly BatterySystem _battery = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<SpawnOnBatteryLevelComponent, ChargeChangedEvent>(OnBatteryChargeChange);
|
||||
}
|
||||
|
||||
private void OnBatteryChargeChange(Entity<SpawnOnBatteryLevelComponent> entity, ref ChargeChangedEvent args)
|
||||
{
|
||||
if (!TryComp<BatteryComponent>(entity, out var battery))
|
||||
return;
|
||||
|
||||
if (!TryComp(entity, out TransformComponent? xform))
|
||||
return;
|
||||
|
||||
if (battery.LastCharge >= entity.Comp.Charge)
|
||||
{
|
||||
Spawn(entity.Comp.Prototype, xform.Coordinates);
|
||||
|
||||
_battery.ChangeCharge((entity, battery), -entity.Comp.Charge);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
using Content.Server.NodeContainer.EntitySystems;
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Shared.NodeContainer;
|
||||
using Content.Shared.NodeContainer.NodeGroups;
|
||||
using Content.Shared.Power;
|
||||
using Content.Shared.Verbs;
|
||||
|
||||
namespace Content.Server.Power.EntitySystems;
|
||||
|
||||
public sealed class VoltageTogglerSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly NodeGroupSystem _nodeGroupSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<VoltageTogglerComponent, GetVerbsEvent<Verb>>(OnGetVerb);
|
||||
}
|
||||
|
||||
private void OnGetVerb(Entity<VoltageTogglerComponent> entity, ref GetVerbsEvent<Verb> args)
|
||||
{
|
||||
if (!args.CanAccess || !args.CanInteract)
|
||||
return;
|
||||
|
||||
var index = 0;
|
||||
foreach (var setting in entity.Comp.Settings)
|
||||
{
|
||||
// This is because Act wont work with index.
|
||||
// Needs it to be saved in the loop.
|
||||
var currIndex = index;
|
||||
var verb = new Verb
|
||||
{
|
||||
Priority = currIndex,
|
||||
Category = VerbCategory.VoltageLevel,
|
||||
Disabled = entity.Comp.SelectedVoltageLevel == currIndex,
|
||||
Text = Loc.GetString(setting.Name),
|
||||
Act = () =>
|
||||
{
|
||||
entity.Comp.SelectedVoltageLevel = currIndex;
|
||||
Dirty(entity);
|
||||
|
||||
ChangeVoltage(entity, setting);
|
||||
}
|
||||
};
|
||||
args.Verbs.Add(verb);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeVoltage(Entity<VoltageTogglerComponent> entity, VoltageSetting setting)
|
||||
{
|
||||
if (TryComp<NodeContainerComponent>(entity, out var nodeContainerComp))
|
||||
{
|
||||
var newNodeGroupId = setting.Voltage switch
|
||||
{
|
||||
Voltage.Apc => NodeGroupID.Apc,
|
||||
Voltage.Medium => NodeGroupID.MVPower,
|
||||
Voltage.High => NodeGroupID.HVPower,
|
||||
_ => NodeGroupID.Default,
|
||||
};
|
||||
|
||||
var inputNode = nodeContainerComp.Nodes["input"];
|
||||
_nodeGroupSystem.QueueNodeRemove(inputNode);
|
||||
inputNode.SetNodeGroupId(newNodeGroupId);
|
||||
_nodeGroupSystem.QueueReflood(inputNode);
|
||||
}
|
||||
|
||||
if (TryComp<PowerConsumerComponent>(entity, out var powerConsumerComp))
|
||||
{
|
||||
powerConsumerComp.Voltage = setting.Voltage;
|
||||
powerConsumerComp.DrawRate = setting.Wattage;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ namespace Content.Shared.Atmos
|
||||
/// <summary>
|
||||
/// Global Atmospherics epsilon. Used for all general floating-point comparisons.
|
||||
/// </summary>
|
||||
public const float Epsilon = 0.001f;
|
||||
public const float Epsilon = 0.5f;
|
||||
|
||||
/// <summary>
|
||||
/// Maximum external pressure (in kPA) a gas miner will, by default, output to.
|
||||
|
||||
@@ -115,7 +115,7 @@ public abstract partial class SharedAtmosphereSystem
|
||||
/// considered ignitable, for both oxidizer and fuel.</param>
|
||||
/// <returns>True if the <see cref="GasMixture"/> is ignitable, otherwise, false.</returns>
|
||||
[PublicAPI]
|
||||
public bool IsMixtureIgnitable(GasMixture mixture, float epsilon = 0.001f)
|
||||
public bool IsMixtureIgnitable(GasMixture mixture, float epsilon = Atmospherics.Epsilon)
|
||||
{
|
||||
return IsMixtureFuel(mixture, epsilon) && IsMixtureOxidizer(mixture, epsilon);
|
||||
}
|
||||
@@ -128,7 +128,7 @@ public abstract partial class SharedAtmosphereSystem
|
||||
/// is considered fuel.</param>
|
||||
/// <returns>True if the <see cref="GasMixture"/> is fuel, otherwise, false.</returns>
|
||||
[PublicAPI]
|
||||
public abstract bool IsMixtureFuel(GasMixture mixture, float epsilon = 0.001f);
|
||||
public abstract bool IsMixtureFuel(GasMixture mixture, float epsilon = Atmospherics.Epsilon);
|
||||
|
||||
/// <summary>
|
||||
/// Determines if a <see cref="GasMixture"/> has oxidizer gases in it or not.
|
||||
@@ -138,7 +138,7 @@ public abstract partial class SharedAtmosphereSystem
|
||||
/// is considered an oxidizer.</param>
|
||||
/// <returns>True if the <see cref="GasMixture"/> is an oxidizer, otherwise, false.</returns>
|
||||
[PublicAPI]
|
||||
public abstract bool IsMixtureOxidizer(GasMixture mixture, float epsilon = 0.001f);
|
||||
public abstract bool IsMixtureOxidizer(GasMixture mixture, float epsilon = Atmospherics.Epsilon);
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the heat capacity for a <see cref="GasMixture"/>.
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
namespace Content.Shared.Construction.Components;
|
||||
|
||||
/// <summary>
|
||||
/// If a entity has this component it can only be anchored to the station
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class AnchorOnlyOnStationComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Pop up message when you try to anchor the entity on any grid that isn't the station grid
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public LocId PopupMessageAnchorFail = "anchorable-fail-not-on-station";
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Construction.Components;
|
||||
@@ -11,8 +10,6 @@ using Content.Shared.Interaction;
|
||||
using Content.Shared.Movement.Pulling.Components;
|
||||
using Content.Shared.Movement.Pulling.Systems;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Station;
|
||||
using Content.Shared.Station.Components;
|
||||
using Content.Shared.Tools.Components;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
@@ -32,7 +29,6 @@ public sealed partial class AnchorableSystem : EntitySystem
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
[Dependency] private readonly PullingSystem _pulling = default!;
|
||||
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||
[Dependency] private readonly SharedStationSystem _stationSystem = default!;
|
||||
[Dependency] private readonly SharedToolSystem _tool = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
||||
[Dependency] private readonly TagSystem _tagSystem = default!;
|
||||
@@ -55,8 +51,6 @@ public sealed partial class AnchorableSystem : EntitySystem
|
||||
SubscribeLocalEvent<AnchorableComponent, ExaminedEvent>(OnAnchoredExamine);
|
||||
SubscribeLocalEvent<AnchorableComponent, ComponentStartup>(OnAnchorStartup);
|
||||
SubscribeLocalEvent<AnchorableComponent, AnchorStateChangedEvent>(OnAnchorStateChange);
|
||||
|
||||
SubscribeLocalEvent<AnchorOnlyOnStationComponent, AnchorAttemptEvent>(OnAnchorOnStation);
|
||||
}
|
||||
|
||||
private void OnAnchorStartup(EntityUid uid, AnchorableComponent comp, ComponentStartup args)
|
||||
@@ -64,21 +58,6 @@ public sealed partial class AnchorableSystem : EntitySystem
|
||||
_appearance.SetData(uid, AnchorVisuals.Anchored, Transform(uid).Anchored);
|
||||
}
|
||||
|
||||
private void OnAnchorOnStation(Entity<AnchorOnlyOnStationComponent> ent, ref AnchorAttemptEvent args)
|
||||
{
|
||||
var entityParent = Comp<TransformComponent>(ent).ParentUid;
|
||||
var isOnStation = _stationSystem.GetStations()
|
||||
.Select(stationEnt => _stationSystem.GetLargestGrid(stationEnt))
|
||||
.Contains(entityParent);
|
||||
|
||||
if (isOnStation)
|
||||
return;
|
||||
|
||||
// TODO: fix the popup
|
||||
// _popup.PopupClient(Loc.GetString(ent.Comp.PopupMessageAnchorFail), ent, args.User);
|
||||
args.Cancel();
|
||||
}
|
||||
|
||||
private void OnAnchorStateChange(EntityUid uid, AnchorableComponent comp, AnchorStateChangedEvent args)
|
||||
{
|
||||
_appearance.SetData(uid, AnchorVisuals.Anchored, args.Anchored);
|
||||
|
||||
@@ -27,11 +27,6 @@ public abstract partial class Node
|
||||
/// </summary>
|
||||
[ViewVariables] public EntityUid Owner { get; private set; } = default!;
|
||||
|
||||
public void SetNodeGroupId(NodeGroupID newId)
|
||||
{
|
||||
NodeGroupID = newId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// If this node should be considered for connection by other nodes.
|
||||
/// </summary>
|
||||
|
||||
@@ -86,9 +86,6 @@ namespace Content.Shared.Verbs
|
||||
|
||||
public static readonly VerbCategory PowerLevel = new("verb-categories-power-level", null);
|
||||
|
||||
public static readonly VerbCategory VoltageLevel =
|
||||
new("verb-categories-voltage-level", "/Textures/Interface/VerbIcons/zap.svg.192dpi.png");
|
||||
|
||||
public static readonly VerbCategory Adjust =
|
||||
new("verb-categories-adjust", "/Textures/Interface/VerbIcons/screwdriver.png");
|
||||
}
|
||||
|
||||
@@ -3741,8 +3741,31 @@
|
||||
url: https://github.com/space-wizards/space-station-14/pull/42909
|
||||
- author: sowelipililimute
|
||||
changes:
|
||||
- message: Internal code changes to damage handling may result in slightly different
|
||||
numbers for some medicines and/or some attacks.
|
||||
- message: Underlying technical work for future medical improvements have resulted
|
||||
in the following changes to better accomodate future development. Please note
|
||||
that these changes are not representative of the final product and that the
|
||||
medical balance will receive a major overhaul once limb and organ damage are
|
||||
fully implemented.
|
||||
type: Tweak
|
||||
- message: Species now regenerate -0.05 of brute types individually (from -0.02).
|
||||
type: Tweak
|
||||
- message: Several mobs and weapons previously dealing split brute damage now deal singular damage types.
|
||||
type: Tweak
|
||||
- message: Several reagents previously dealing split brute damage now deals singular damage types.
|
||||
type: Tweak
|
||||
- message: Several reagents previously healing split brute damage now evenly heals instead.
|
||||
type: Tweak
|
||||
- message: Spiders now regenerate -0.03 of brute and burn types individually (from -0.02).
|
||||
type: Tweak
|
||||
- message: Skeletons now evenly heal when using milk.
|
||||
type: Tweak
|
||||
- message: Tomato killers now heal evenly when splashed with water, blood, or robust harvest.
|
||||
type: Tweak
|
||||
- message: Tricordrazine now evenly heals both brute, burn and toxin.
|
||||
type: Tweak
|
||||
- message: Desoxyephedrine now deals slighlty more blunt damage (to offset tricordazine changes).
|
||||
type: Tweak
|
||||
- message: Crusher mark leech hits now heal 5 of each brute category on hit (was 7).
|
||||
type: Tweak
|
||||
id: 9549
|
||||
time: '2026-02-27T06:33:44.0000000+00:00'
|
||||
@@ -3754,19 +3777,6 @@
|
||||
id: 9550
|
||||
time: '2026-02-27T16:02:04.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/42960
|
||||
- author: Samuka
|
||||
changes:
|
||||
- message: 'EXPERIMENTAL: Added the xenoborg crystal!'
|
||||
type: Add
|
||||
- message: 'EXPERIMENTAL: Added the xenoborg extractor which can produce the xenoborg
|
||||
crystal.'
|
||||
type: Add
|
||||
- message: 'EXPERIMENTAL: The recipes to make xenoborg chassis and xenoborg modules
|
||||
now uses xenoborg crystals instead of normal materials.'
|
||||
type: Tweak
|
||||
id: 9551
|
||||
time: '2026-02-28T01:08:13.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/42796
|
||||
- author: kontakt
|
||||
changes:
|
||||
- message: Throwing croissants no longer have a throwing knife in-hand sprite.
|
||||
|
||||
@@ -1045,16 +1045,6 @@
|
||||
id: 127
|
||||
time: '2026-02-28T06:56:45.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43061
|
||||
- author: Samuka
|
||||
changes:
|
||||
- message: Removed recycler and conveyor from the xenoborg mothership.
|
||||
type: Remove
|
||||
- message: Changed the starting materials of the xenoborg mothership to include
|
||||
xenoborg crystals.
|
||||
type: Tweak
|
||||
id: 128
|
||||
time: '2026-03-04T09:08:04.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43007
|
||||
- author: TytosB
|
||||
changes:
|
||||
- message: several changes to Serpentcrest, salv area rework.
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
anchorable-anchored = Anchored
|
||||
anchorable-unanchored = Unanchored
|
||||
anchorable-occupied = Tile occupied
|
||||
|
||||
anchorable-fail-not-on-station = Can't anchor anywhere but the station
|
||||
|
||||
@@ -30,7 +30,6 @@ materials-coal = coal
|
||||
materials-diamond = diamond
|
||||
materials-gunpowder = gunpowder
|
||||
materials-cotton = cotton
|
||||
materials-xenoborg-crystal = xenoborg crystal
|
||||
|
||||
# Ores
|
||||
materials-raw-iron = raw iron
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
power-voltage-low = Low voltage
|
||||
power-voltage-medium = Medium voltage
|
||||
power-voltage-high = High voltage
|
||||
@@ -16,4 +16,3 @@ borg-slot-modules-empty = Modules
|
||||
borg-slot-powercell-empty = Powercells
|
||||
borg-slot-inflatable-door-empty = Inflatable Door
|
||||
borg-slot-inflatable-wall-empty = Inflatable Wall
|
||||
borg-slot-xenoborg-crystal-empty = Xenoborg crystals
|
||||
|
||||
@@ -80,10 +80,6 @@ stack-artifact-fragment = artifact {$amount ->
|
||||
[1] fragment
|
||||
*[other] fragments
|
||||
}
|
||||
stack-xenoborg-circuit = dvanced xenoborg {$amount ->
|
||||
[1] circuitboard
|
||||
*[other] circuitboards
|
||||
}
|
||||
|
||||
# best materials
|
||||
stack-ground-tobacco = ground tobacco
|
||||
|
||||
@@ -28,7 +28,6 @@ verb-categories-lever = Lever
|
||||
verb-categories-select-type = Select Type
|
||||
verb-categories-fax = Set Destination
|
||||
verb-categories-power-level = Power Level
|
||||
verb-categories-voltage-level = Voltage Level
|
||||
verb-categories-adjust = Adjust
|
||||
|
||||
verb-common-toggle-light = Toggle light
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
meta:
|
||||
format: 7
|
||||
category: Grid
|
||||
engineVersion: 272.0.0
|
||||
engineVersion: 270.1.0
|
||||
forkId: ""
|
||||
forkVersion: ""
|
||||
time: 02/23/2026 18:44:56
|
||||
entityCount: 567
|
||||
time: 01/16/2026 03:06:16
|
||||
entityCount: 591
|
||||
maps: []
|
||||
grids:
|
||||
- 1
|
||||
@@ -160,8 +160,6 @@ entities:
|
||||
- type: GasTileOverlay
|
||||
- type: RadiationGridResistance
|
||||
- type: ExplosionAirtightGrid
|
||||
- type: TileHistory
|
||||
chunkHistory: {}
|
||||
- proto: AirlockGlassShuttleXenoborgLocked
|
||||
entities:
|
||||
- uid: 107
|
||||
@@ -1466,6 +1464,16 @@ entities:
|
||||
- type: Transform
|
||||
pos: 2.5,-6.5
|
||||
parent: 1
|
||||
- proto: CableApcStack
|
||||
entities:
|
||||
- uid: 345
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: CableHV
|
||||
entities:
|
||||
- uid: 139
|
||||
@@ -1518,6 +1526,16 @@ entities:
|
||||
- type: Transform
|
||||
pos: -9.5,0.5
|
||||
parent: 1
|
||||
- proto: CableHVStack
|
||||
entities:
|
||||
- uid: 343
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: CableMV
|
||||
entities:
|
||||
- uid: 149
|
||||
@@ -1885,6 +1903,16 @@ entities:
|
||||
- type: Transform
|
||||
pos: 6.5,-0.5
|
||||
parent: 1
|
||||
- proto: CableMVStack
|
||||
entities:
|
||||
- uid: 339
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: CableTerminal
|
||||
entities:
|
||||
- uid: 138
|
||||
@@ -1971,13 +1999,73 @@ entities:
|
||||
- type: Transform
|
||||
pos: 1.5,2.5
|
||||
parent: 1
|
||||
- proto: CrateXenoborgStartingSupplies
|
||||
- proto: ConveyorBelt
|
||||
entities:
|
||||
- uid: 111
|
||||
- uid: 243
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-8.5
|
||||
parent: 1
|
||||
- uid: 244
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-7.5
|
||||
parent: 1
|
||||
- uid: 245
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-6.5
|
||||
parent: 1
|
||||
- uid: 247
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-4.5
|
||||
parent: 1
|
||||
- uid: 250
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-9.5
|
||||
parent: 1
|
||||
- uid: 251
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-10.5
|
||||
parent: 1
|
||||
- proto: CrateGenericSteel
|
||||
entities:
|
||||
- uid: 425
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,-1.5
|
||||
parent: 1
|
||||
- type: ContainerContainer
|
||||
containers:
|
||||
entity_storage: !type:Container
|
||||
showEnts: False
|
||||
occludes: True
|
||||
ents:
|
||||
- 455
|
||||
- 453
|
||||
- 370
|
||||
- 340
|
||||
- 346
|
||||
- 341
|
||||
- 344
|
||||
- 342
|
||||
- 456
|
||||
- 586
|
||||
- 587
|
||||
- 588
|
||||
- 589
|
||||
- 345
|
||||
- 343
|
||||
- 339
|
||||
- 590
|
||||
- 591
|
||||
paper_label: !type:ContainerSlot
|
||||
showEnts: False
|
||||
occludes: True
|
||||
ent: null
|
||||
- proto: DisposalBend
|
||||
entities:
|
||||
- uid: 377
|
||||
@@ -2273,11 +2361,6 @@ entities:
|
||||
- type: Transform
|
||||
pos: 2.5,-7.5
|
||||
parent: 1
|
||||
- uid: 244
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-5.5
|
||||
parent: 1
|
||||
- uid: 254
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -2394,6 +2477,141 @@ entities:
|
||||
- type: Transform
|
||||
pos: 6.5,3.5
|
||||
parent: 1
|
||||
- proto: Recycler
|
||||
entities:
|
||||
- uid: 111
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-5.5
|
||||
parent: 1
|
||||
- proto: SheetGlass
|
||||
entities:
|
||||
- uid: 586
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 589
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: SheetPlasteel
|
||||
entities:
|
||||
- uid: 340
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 342
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: SheetPlastic
|
||||
entities:
|
||||
- uid: 341
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 344
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: SheetSteel
|
||||
entities:
|
||||
- uid: 346
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 370
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 453
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 455
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 456
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 587
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 588
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 590
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- uid: 591
|
||||
components:
|
||||
- type: Transform
|
||||
parent: 425
|
||||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
storage: 425
|
||||
- proto: SignalButton
|
||||
entities:
|
||||
- uid: 584
|
||||
@@ -2735,6 +2953,64 @@ entities:
|
||||
parent: 1
|
||||
- proto: TwoWayLever
|
||||
entities:
|
||||
- uid: 249
|
||||
components:
|
||||
- type: MetaData
|
||||
name: conveyor
|
||||
- type: Transform
|
||||
pos: -0.5,-4.5
|
||||
parent: 1
|
||||
- type: DeviceLinkSource
|
||||
linkedPorts:
|
||||
247:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
111:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
245:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
244:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
243:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
251:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
250:
|
||||
- - Left
|
||||
- Reverse
|
||||
- - Right
|
||||
- Forward
|
||||
- - Middle
|
||||
- Off
|
||||
- uid: 328
|
||||
components:
|
||||
- type: MetaData
|
||||
@@ -3462,11 +3738,6 @@ entities:
|
||||
- type: Transform
|
||||
pos: 1.5,6.5
|
||||
parent: 1
|
||||
- uid: 243
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-5.5
|
||||
parent: 1
|
||||
- uid: 349
|
||||
components:
|
||||
- type: Transform
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
- type: entity
|
||||
parent: CrateGenericSteel
|
||||
id: CrateXenoborgStartingSupplies
|
||||
name: xenoborg supplies crate
|
||||
description: Contains starting materials for the mothership to make more xenoborgs.
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:AllSelector
|
||||
children:
|
||||
- id: SheetSteel
|
||||
amount: 2
|
||||
- id: MaterialXenoborgCrystal
|
||||
amount: 2
|
||||
- id: CableApcStack
|
||||
- id: CableMVStack
|
||||
- id: CableHVStack
|
||||
@@ -145,7 +145,6 @@
|
||||
- ConstructionMaterial
|
||||
- RawMaterial
|
||||
- Ingot
|
||||
- XenoborgCrystal
|
||||
components:
|
||||
- Circuitboard
|
||||
- Flatpack
|
||||
|
||||
@@ -41,14 +41,14 @@
|
||||
idleState: core-idle
|
||||
runningState: core-active
|
||||
staticPacks:
|
||||
- XenoborgMachines
|
||||
- EmptyXenoborgs
|
||||
- XenoborgUpgradeModules
|
||||
- type: MaterialStorage
|
||||
whitelist:
|
||||
tags:
|
||||
- XenoborgCrystal
|
||||
- Sheet
|
||||
- RawMaterial
|
||||
- Ingot
|
||||
- type: PointLight
|
||||
color: "#0033ff"
|
||||
enabled: true
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
laws: NutimovLawset
|
||||
|
||||
- type: entity
|
||||
id: XenoborgLawsetCircuitBoard
|
||||
id: XenoborgCircuitBoard
|
||||
parent: BaseSiliconLawboard
|
||||
name: law board (Xenoborg)
|
||||
suffix: Admeme
|
||||
@@ -156,7 +156,7 @@
|
||||
laws: XenoborgLawset
|
||||
|
||||
- type: entity
|
||||
id: MothershipLawsetCircuitBoard
|
||||
id: MothershipCircuitBoard
|
||||
parent: BaseSiliconLawboard
|
||||
name: law board (Mothership Core)
|
||||
suffix: Admeme
|
||||
|
||||
@@ -280,18 +280,3 @@
|
||||
- type: GuideHelp
|
||||
guides:
|
||||
- FoodRecipes
|
||||
|
||||
- type: entity
|
||||
parent: [ BaseFlatpack, BaseXenoborgContraband ]
|
||||
id: XenoborgExtractorFlatpack
|
||||
name: xenoborg extractor flatpack
|
||||
description: A flatpack used for constructing a xenoborg extractor.
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Flatpack
|
||||
entity: XenoborgExtractor
|
||||
- type: GuideHelp
|
||||
guides:
|
||||
- Xenoborgs
|
||||
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
- type: entity
|
||||
parent: [ MaterialBase, BaseXenoborgContraband ]
|
||||
id: MaterialXenoborgCrystal
|
||||
name: xenoborg crystal
|
||||
description: A special crystal created from nuclear fusion. It's used to make xenoborgs.
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Item
|
||||
storedRotation: 0
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: XenoborgCrystal
|
||||
count: 10
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- crystal-1
|
||||
- crystal-2
|
||||
- crystal-3
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/xenoborg_crystal.rsi
|
||||
layers:
|
||||
- state: crystal-3
|
||||
map: [ "base" ]
|
||||
- type: Material
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
XenoborgCrystal: 100
|
||||
- type: Tag
|
||||
tags:
|
||||
- XenoborgCrystal
|
||||
|
||||
- type: entity
|
||||
parent: MaterialXenoborgCrystal
|
||||
id: MaterialXenoborgCrystal5
|
||||
suffix: 5
|
||||
components:
|
||||
- type: Stack
|
||||
count: 5
|
||||
|
||||
- type: entity
|
||||
parent: MaterialXenoborgCrystal
|
||||
id: MaterialXenoborgCrystal1
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Stack
|
||||
count: 1
|
||||
@@ -1429,12 +1429,6 @@
|
||||
whitelist:
|
||||
components:
|
||||
- BorgModule
|
||||
- hand:
|
||||
emptyRepresentative: MaterialXenoborgCrystal
|
||||
emptyLabel: borg-slot-xenoborg-crystal-empty
|
||||
whitelist:
|
||||
tags:
|
||||
- XenoborgCrystal
|
||||
- hand:
|
||||
emptyRepresentative: BorgModuleConstructionMaterialPlaceholder
|
||||
emptyLabel: borg-slot-construction-empty
|
||||
@@ -1463,12 +1457,6 @@
|
||||
- state: icon-xenoborg-basic
|
||||
- type: ItemBorgModule
|
||||
hands:
|
||||
- hand:
|
||||
emptyRepresentative: MaterialXenoborgCrystal
|
||||
emptyLabel: borg-slot-xenoborg-crystal-empty
|
||||
whitelist:
|
||||
tags:
|
||||
- XenoborgCrystal
|
||||
- hand:
|
||||
emptyRepresentative: BorgModuleConstructionMaterialPlaceholder
|
||||
emptyLabel: borg-slot-construction-empty
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
- type: entity
|
||||
parent: [BaseMachine, BaseXenoborgContraband]
|
||||
id: XenoborgExtractor
|
||||
name: xenoborg extractor
|
||||
description: Drains electricity from the grid to produce xenoborg crystals via nuclear fusion.
|
||||
suffix: Unanchored
|
||||
placement:
|
||||
mode: PlaceFree
|
||||
components:
|
||||
- type: Physics
|
||||
bodyType: Dynamic
|
||||
- type: Transform
|
||||
anchored: false
|
||||
- type: AnchorOnlyOnStation
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/xenoborg_extractor.rsi
|
||||
snapCardinals: true
|
||||
layers:
|
||||
- state: icon
|
||||
map: ["base"]
|
||||
- state: running
|
||||
map: ["running"]
|
||||
- state: light
|
||||
shader: unshaded
|
||||
map: ["light"]
|
||||
- type: Appearance
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.PowerDeviceVisuals.Powered:
|
||||
base:
|
||||
True: { visible: false }
|
||||
False: { visible: true }
|
||||
running:
|
||||
True: { visible: true }
|
||||
False: { visible: false }
|
||||
light:
|
||||
True: { visible: true }
|
||||
False: { visible: false }
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalGlassBreak
|
||||
- !type:ExplodeBehavior
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
MachineFrameDestroyed:
|
||||
min: 1
|
||||
max: 1
|
||||
- type: Explosive # small explosion when destroyed
|
||||
explosionType: Default
|
||||
maxIntensity: 20
|
||||
totalIntensity: 10
|
||||
intensitySlope: 5
|
||||
canCreateVacuum: false
|
||||
- type: NodeContainer
|
||||
examinable: true
|
||||
nodes:
|
||||
input:
|
||||
!type:CableDeviceNode
|
||||
nodeGroupID: Apc
|
||||
- type: LightningTarget
|
||||
priority: 1
|
||||
- type: Electrified
|
||||
onHandInteract: false
|
||||
onInteractUsing: false
|
||||
onBump: false
|
||||
requirePower: true
|
||||
highVoltageNode: input
|
||||
mediumVoltageNode: input
|
||||
lowVoltageNode: input
|
||||
- type: Battery
|
||||
maxCharge: 2000000 # 2MJ
|
||||
netsync: false
|
||||
- type: ExaminableBattery
|
||||
- type: PowerConsumerBatteryCharger
|
||||
- type: PowerConsumer
|
||||
voltage: Apc
|
||||
drawRate: 10000
|
||||
- type: VoltageToggler
|
||||
settings:
|
||||
- voltage: Apc
|
||||
wattage: 16000 # 16kW - 125 seconds to spawn one
|
||||
name: power-voltage-low
|
||||
- voltage: Medium
|
||||
wattage: 50000 # 50kW - 40 seconds to spawn one
|
||||
name: power-voltage-medium
|
||||
- voltage: High
|
||||
wattage: 200000 # 200kW - 10 seconds to spawn one # sets off the rogue power consuming device alert!
|
||||
name: power-voltage-high
|
||||
- type: SpawnOnBatteryLevel
|
||||
prototype: MaterialXenoborgCrystal1
|
||||
charge: 2000000 # 2MJ
|
||||
|
||||
- type: entity
|
||||
parent: XenoborgExtractor
|
||||
id: XenoborgExtractorAnchored
|
||||
suffix: Anchored
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
components:
|
||||
- type: Physics
|
||||
bodyType: Static
|
||||
- type: Transform
|
||||
anchored: true
|
||||
@@ -17,30 +17,3 @@
|
||||
responseType: "General Feedback"
|
||||
responseLink: "https://forum.spacestation14.com/c/development/feedback/51"
|
||||
showRoundEnd: false
|
||||
|
||||
- type: feedbackPopup
|
||||
id: PlayingAsMothershipCoreFeedback
|
||||
popupOrigin: wizden_master
|
||||
title: "[bold]Playing as [color=deepskyblue]mothership[/color] core[/bold]"
|
||||
description: >-
|
||||
If you played mothership core this round or maybe in a previous round, feel free to respond this feedback thread about your experiences and issues with playing as the mothership core.
|
||||
responseType: "Feedback Thread"
|
||||
responseLink: "https://forum.spacestation14.com/t/playing-as-a-mothership-core/26688/2"
|
||||
showRoundEnd: true
|
||||
ruleWhitelist:
|
||||
components:
|
||||
- XenoborgsRule
|
||||
|
||||
- type: feedbackPopup
|
||||
id: XenoborgExtractorFeedback
|
||||
popupOrigin: wizden_master
|
||||
title: "[bold]The [color=deepskyblue]xenoborg[/color] extractor [scramble chars=\"xenoborg-##][{}||,.<>\" rate=40 length=5][/bold]"
|
||||
description: >-
|
||||
Please share feedback on the new xenoborg extractor and crystal, and how these additions affect xenoborg gameplay.
|
||||
responseType: "Feedback Thread"
|
||||
responseLink: "https://forum.spacestation14.com/t/xenoborg-extractor/26689"
|
||||
showRoundEnd: true
|
||||
ruleWhitelist:
|
||||
components:
|
||||
- XenoborgsRule
|
||||
|
||||
|
||||
@@ -141,12 +141,3 @@
|
||||
icon: { sprite: Objects/Materials/materials.rsi, state: diamond }
|
||||
color: "#80ffff"
|
||||
price: 20 # big diamond gaslit us so hard diamonds actually became extremely rare
|
||||
|
||||
- type: material
|
||||
id: XenoborgCrystal
|
||||
stackEntity: MaterialXenoborgCrystal1
|
||||
name: materials-xenoborg-crystal
|
||||
unit: materials-unit-piece
|
||||
icon: { sprite: Objects/Materials/xenoborg_crystal.rsi, state: crystal-1 }
|
||||
color: "#3d94ff"
|
||||
price: 2 # $200 for 1 unit # crystal pretty!
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
## Static
|
||||
|
||||
- type: latheRecipePack
|
||||
id: XenoborgMachines
|
||||
recipes:
|
||||
- XenoborgExtractorRecipe
|
||||
|
||||
- type: latheRecipePack
|
||||
id: EmptyXenoborgs
|
||||
recipes:
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
# Base prototypes
|
||||
|
||||
- type: latheRecipe
|
||||
abstract: true
|
||||
id: BaseXenoborgMachineRecipe
|
||||
categories:
|
||||
- Machines
|
||||
completetime: 2
|
||||
|
||||
- type: latheRecipe
|
||||
abstract: true
|
||||
id: BaseXenoborgRecipe
|
||||
@@ -21,15 +14,6 @@
|
||||
- Modules
|
||||
completetime: 2
|
||||
|
||||
# machines
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseXenoborgMachineRecipe
|
||||
id: XenoborgExtractorRecipe
|
||||
result: XenoborgExtractorFlatpack
|
||||
materials:
|
||||
Steel: 1000
|
||||
|
||||
# xenoborgs
|
||||
|
||||
- type: latheRecipe
|
||||
@@ -37,28 +21,31 @@
|
||||
id: XenoborgEngiRecipe
|
||||
result: XenoborgEngiPrinted
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 3000
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseXenoborgRecipe
|
||||
id: XenoborgHeavyRecipe
|
||||
result: XenoborgHeavyPrinted
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 2000
|
||||
Plasteel: 1000
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseXenoborgRecipe
|
||||
id: XenoborgScoutRecipe
|
||||
result: XenoborgScoutPrinted
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 2000
|
||||
Plastic: 1000
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseXenoborgRecipe
|
||||
id: XenoborgStealthRecipe
|
||||
result: XenoborgStealthPrinted
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 2000
|
||||
Glass: 1000
|
||||
|
||||
# modules
|
||||
|
||||
@@ -69,7 +56,8 @@
|
||||
id: XenoborgModuleDoorControlRecipe
|
||||
result: XenoborgModuleDoorControl
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 1500
|
||||
Glass: 1500
|
||||
|
||||
## heavy xenoborg modules
|
||||
|
||||
@@ -78,7 +66,8 @@
|
||||
id: XenoborgModuleHeavyLaserRecipe
|
||||
result: XenoborgModuleHeavyLaser
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 1500
|
||||
Glass: 1500
|
||||
|
||||
## scout xenoborg modules
|
||||
|
||||
@@ -87,7 +76,8 @@
|
||||
id: XenoborgModuleEnergySwordRecipe
|
||||
result: XenoborgModuleEnergySword
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Steel: 1500
|
||||
Glass: 1500
|
||||
|
||||
## stealth xenoborg modules
|
||||
|
||||
@@ -96,4 +86,4 @@
|
||||
id: XenoborgModuleSuperCloakDeviceRecipe
|
||||
result: XenoborgModuleSuperCloakDevice
|
||||
materials:
|
||||
XenoborgCrystal: 100
|
||||
Glass: 3000
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
- type: stack
|
||||
parent: BaseSmallStack
|
||||
id: XenoborgCrystal
|
||||
name: stack-xenoborg-circuit
|
||||
icon: { sprite: "/Textures/Objects/Materials/xenoborg_crystal.rsi", state: crystal-3 }
|
||||
spawn: MaterialXenoborgCrystal1
|
||||
@@ -1566,9 +1566,6 @@
|
||||
|
||||
## X ##
|
||||
|
||||
- type: Tag
|
||||
id: XenoborgCrystal # MaterialStorage whitelist: Mothership core
|
||||
|
||||
- type: Tag
|
||||
id: XenoborgGhostrole # spawn whitelist : SpawnPointGhostRoleXenoborg
|
||||
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
## Objectives
|
||||
|
||||
Your main objective is to kill and harvest all sentient brains in the station and bring them to the mothership core. These can be both real brains, and positronic brains.
|
||||
|
||||
Steal power from the station using xenoborg extractors to produce xenoborg crystals to create more xenoborg bodies.
|
||||
|
||||
Collect materials to create more xenoborg bodies.
|
||||
Protect the Mothership at all costs.
|
||||
|
||||
## The Mothership Core
|
||||
@@ -76,11 +74,6 @@
|
||||
<GuideEntityEmbed Entity="BorgModuleCable" Caption="cable cyborg module"/>
|
||||
</Box>
|
||||
|
||||
[bold]Upgrade exclusive modules:[/bold]
|
||||
<Box>
|
||||
<GuideEntityEmbed Entity="XenoborgModuleDoorControl" Caption="door control xenoborg module"/>
|
||||
</Box>
|
||||
|
||||
### The Heavy Xenoborg
|
||||
<Box>
|
||||
<GuideEntityEmbed Entity="XenoborgHeavy" Caption=""/>
|
||||
@@ -95,7 +88,7 @@
|
||||
|
||||
[bold]Upgrade exclusive modules:[/bold]
|
||||
<Box>
|
||||
<GuideEntityEmbed Entity="XenoborgModuleHeavyLaser" Caption="laser cannon xenoborg module"/>
|
||||
<GuideEntityEmbed Entity="XenoborgModuleHeavyLaser" Caption="heavy laser xenoborg module"/>
|
||||
</Box>
|
||||
|
||||
### The Scout Xenoborg
|
||||
@@ -132,41 +125,19 @@
|
||||
|
||||
[bold]Upgrade exclusive modules:[/bold]
|
||||
<Box>
|
||||
<GuideEntityEmbed Entity="XenoborgModuleSuperCloakDevice" Caption="invisibility device xenoborg module"/>
|
||||
<GuideEntityEmbed Entity="XenoborgModuleSuperCloakDevice" Caption="cloaking device xenoborg module"/>
|
||||
</Box>
|
||||
|
||||
## Xenoborg extractors
|
||||
<Box>
|
||||
<GuideEntityEmbed Entity="XenoborgExtractor" Caption="xenoborg extractor"/>
|
||||
<GuideEntityEmbed Entity="MaterialXenoborgCrystal" Caption="xenoborg crystal"/>
|
||||
</Box>
|
||||
Its a machine necessary for the xenoborgs to grow their army. It can steal power from cables connected to it and then produce xenoborg crystals.
|
||||
|
||||
The mothership core can produce a xenoborg extractor flatpack for 10 steel.
|
||||
|
||||
Once its anchored on top of a cable it needs to be set to that cable voltage to start draining power.
|
||||
|
||||
Once it's battery is full it will produce one xenoborg crystal.
|
||||
|
||||
It drains different amounts of power depending on the voltage.
|
||||
- low voltage - 16kW - 2 minutes and 5 seconds to produce one xenoborg circuit.
|
||||
- medium voltage - 50kW - 40 seconds to produce one xenoborg circuit.
|
||||
- high voltage - 200kW - 10 seconds to produce one xenoborg circuit.
|
||||
|
||||
Attention! at the highest voltage it will trigger the rogue power consuming device alert! and anyone using the power monitor device will know something is wrong.
|
||||
|
||||
## Preparation and Tactics
|
||||
Before FTLing near the station, make sure the IFF is off.
|
||||
|
||||
Before launching an attack, xenoborgs should discuss strategy and decide which targets to strike first.
|
||||
|
||||
Xenoborgs should try to collect sentient brains without being detected. The longer the threat is unknown, the more dangerous the xenoborgs become.
|
||||
|
||||
## Mothership and Xenoborg lawsets
|
||||
The Mothership and Xenoborgs have unique laws that define their purpose to self replicate and protect the Mothership.
|
||||
|
||||
<Box>
|
||||
<GuideEntityEmbed Entity="XenoborgLawsetCircuitBoard" Caption=""/>
|
||||
<GuideEntityEmbed Entity="XenoborgCircuitBoard" Caption=""/>
|
||||
</Box>
|
||||
|
||||
The Mothership Core's laws are as follows::
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 482 B |
Binary file not shown.
|
Before Width: | Height: | Size: 604 B |
Binary file not shown.
|
Before Width: | Height: | Size: 688 B |
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "made by samuka-C (github)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "crystal-1"
|
||||
},
|
||||
{
|
||||
"name": "crystal-2"
|
||||
},
|
||||
{
|
||||
"name": "crystal-3"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 544 B |
Binary file not shown.
|
Before Width: | Height: | Size: 969 B |
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license":"CC-BY-SA-3.0",
|
||||
"copyright":"Made by Samuka-C (github)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "light",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "running",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 828 B |
Reference in New Issue
Block a user