diff --git a/Content.Client/Remotes/UI/DoorRemoteStatusControl.cs b/Content.Client/Remotes/UI/DoorRemoteStatusControl.cs index 94589ecdaab..5101a329fe7 100644 --- a/Content.Client/Remotes/UI/DoorRemoteStatusControl.cs +++ b/Content.Client/Remotes/UI/DoorRemoteStatusControl.cs @@ -38,6 +38,7 @@ protected override void FrameUpdate(FrameEventArgs args) OperatingMode.OpenClose => "door-remote-open-close-text", OperatingMode.ToggleBolts => "door-remote-toggle-bolt-text", OperatingMode.ToggleEmergencyAccess => "door-remote-emergency-access-text", + OperatingMode.ToggleOvercharge => "door-remote-toggle-eletrify-text", _ => "door-remote-invalid-text" }); diff --git a/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml.cs b/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml.cs index 17803b557c5..9d19231d5c6 100644 --- a/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml.cs +++ b/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml.cs @@ -27,6 +27,8 @@ public sealed partial class RoboticsConsoleWindow : FancyWindow private Dictionary _cyborgs = new(); public EntityUid Entity; + + private bool _allowBorgControl = true; public RoboticsConsoleWindow() { @@ -72,6 +74,7 @@ public void SetEntity(EntityUid uid) public void UpdateState(RoboticsConsoleState state) { _cyborgs = state.Cyborgs; + _allowBorgControl = state.AllowBorgControl; // clear invalid selection if (_selected is {} selected && !_cyborgs.ContainsKey(selected)) @@ -95,8 +98,8 @@ public void UpdateState(RoboticsConsoleState state) PopulateData(); var locked = _lock.IsLocked(Entity); - DangerZone.Visible = !locked; - LockedMessage.Visible = locked; + DangerZone.Visible = !locked && _allowBorgControl; + LockedMessage.Visible = locked && _allowBorgControl; // Only show if locked AND control is allowed } private void PopulateCyborgs() @@ -147,7 +150,8 @@ private void PopulateData() BorgInfo.SetMessage(text); // how the turntables - DisableButton.Disabled = !(data.HasBrain && data.CanDisable); + DisableButton.Disabled = !_allowBorgControl || !(data.HasBrain && data.CanDisable); + DestroyButton.Disabled = !_allowBorgControl; } protected override void FrameUpdate(FrameEventArgs args) diff --git a/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs b/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs index cdd23d9f592..5bef94ecde8 100644 --- a/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs @@ -38,5 +38,4 @@ private void BeforePacketSent(Entity xform, ref BeforePacket } } } - } diff --git a/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs b/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs index 59b5ed30fce..d26cd3ab180 100644 --- a/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs @@ -349,7 +349,7 @@ private void SendToConnections(ReadOnlySpan connections, if (connection.Owner == packet.Sender) continue; - BeforePacketSentEvent beforeEv = new(packet.Sender, xform, senderPos, connection.NetIdEnum.ToString()); + BeforePacketSentEvent beforeEv = new(packet.Sender, xform, senderPos, connection.NetIdEnum.ToString(), packet.Frequency); RaiseLocalEvent(connection.Owner, beforeEv, false); if (!beforeEv.Cancelled) diff --git a/Content.Server/Radio/EntitySystems/JammerSystem.cs b/Content.Server/Radio/EntitySystems/JammerSystem.cs index f5d3561b7b5..b15625c069b 100644 --- a/Content.Server/Radio/EntitySystems/JammerSystem.cs +++ b/Content.Server/Radio/EntitySystems/JammerSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Power.EntitySystems; using Content.Server.PowerCell; +using Content.Server.Radio; using Content.Shared.DeviceNetwork.Components; using Content.Shared.Interaction; using Content.Shared.PowerCell.Components; @@ -51,70 +52,103 @@ public override void Update(float frameTime) }; ChangeChargeLevel(uid, chargeLevel); } - } - } } private void OnActivate(Entity ent, ref ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) return; - var activated = !HasComp(ent) && - _powerCell.TryGetBatteryFromSlot(ent.Owner, out var battery) && - battery.CurrentCharge > GetCurrentWattage(ent); - if (activated) - { - ChangeLEDState(ent.Owner, true); - EnsureComp(ent); - EnsureComp(ent, out var jammingComp); - _jammer.SetRange((ent, jammingComp), GetCurrentRange(ent)); - _jammer.AddJammableNetwork((ent, jammingComp), DeviceNetworkComponent.DeviceNetIdDefaults.Wireless.ToString()); - } - else - { - ChangeLEDState(ent.Owner, false); - RemCompDeferred(ent); - RemCompDeferred(ent); - } - var state = Loc.GetString(activated ? "radio-jammer-component-on-state" : "radio-jammer-component-off-state"); - var message = Loc.GetString("radio-jammer-component-on-use", ("state", state)); - Popup.PopupEntity(message, args.User, args.User); - args.Handled = true; - } + var activated = !HasComp(ent) && + _powerCell.TryGetBatteryFromSlot(ent.Owner, out var battery) && + battery.CurrentCharge > GetCurrentWattage(ent); - private void OnPowerCellChanged(Entity ent, ref PowerCellChangedEvent args) + if (activated) { - if (args.Ejected) + ChangeLEDState(ent.Owner, true); + + EnsureComp(ent); + EnsureComp(ent, out var jammingComp); + + _jammer.SetRange((ent, jammingComp), GetCurrentRange(ent)); + + _jammer.AddJammableNetwork( + (ent, jammingComp), + DeviceNetworkComponent.DeviceNetIdDefaults.Wireless.ToString() + ); + + /// Sync excluded frequencies from RadioJammerComponent + /// into DeviceNetworkJammerComponen + + _jammer.ClearExcludedFrequency((ent, jammingComp)); + + foreach (var freq in ent.Comp.FrequenciesExcluded) { - ChangeLEDState(ent.Owner, false); - RemCompDeferred(ent); + _jammer.AddExcludedFrequency((ent, jammingComp), (uint) freq); } } + else + { + ChangeLEDState(ent.Owner, false); + + RemCompDeferred(ent); + RemCompDeferred(ent); + } + + var state = Loc.GetString(activated + ? "radio-jammer-component-on-state" + : "radio-jammer-component-off-state"); + + var message = Loc.GetString( + "radio-jammer-component-on-use", + ("state", state) + ); + + Popup.PopupEntity(message, args.User, args.User); + args.Handled = true; + } private void OnRadioSendAttempt(ref RadioSendAttemptEvent args) { - if (ShouldCancelSend(args.RadioSource)) + + if (!TryComp(args.RadioSource, out var sourceTransform)) + return; + + var source = sourceTransform.Coordinates; + + var query = EntityQueryEnumerator< + ActiveRadioJammerComponent, + RadioJammerComponent, + TransformComponent>(); + + while (query.MoveNext(out var uid, out _, out var jammer, out var transform)) + { + // Excluded channels are allowed through. + if (jammer.FrequenciesExcluded.Contains(args.Frequency)) + continue; + + if (_transform.InRange( + source, + transform.Coordinates, + GetCurrentRange((uid, jammer)))) { args.Cancelled = true; + return; } } +} - private bool ShouldCancelSend(EntityUid sourceUid) + private void OnPowerCellChanged(Entity ent, ref PowerCellChangedEvent args) { - var source = Transform(sourceUid).Coordinates; - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out _, out var jam, out var transform)) + if (args.Ejected) { - if (_transform.InRange(source, transform.Coordinates, GetCurrentRange((uid, jam)))) - { - return true; - } + ChangeLEDState(ent.Owner, false); + RemCompDeferred(ent.Owner); + RemCompDeferred(ent.Owner); } - - return false; } -} +} \ No newline at end of file diff --git a/Content.Server/Radio/EntitySystems/RadioSystem.cs b/Content.Server/Radio/EntitySystems/RadioSystem.cs index 83d3642f0d7..538e5aadbbd 100644 --- a/Content.Server/Radio/EntitySystems/RadioSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioSystem.cs @@ -193,9 +193,16 @@ public void SendRadioMessage( var ev = new RadioReceiveEvent(messageSource, channel, msg, notUdsMsg, language, radioSource); // Einstein Engines - Language end - var sendAttemptEv = new RadioSendAttemptEvent(channel, radioSource); + var transmitFrequency = frequency ?? GetFrequency(messageSource, channel); + + var sendAttemptEv = new RadioSendAttemptEvent( + channel, + radioSource, + transmitFrequency); + RaiseLocalEvent(ref sendAttemptEv); RaiseLocalEvent(radioSource, ref sendAttemptEv); + var canSend = !sendAttemptEv.Cancelled; var sourceMapId = Transform(radioSource).MapID; diff --git a/Content.Server/Radio/RadioEvent.cs b/Content.Server/Radio/RadioEvent.cs index c244ae23f67..0857c8cdf4e 100644 --- a/Content.Server/Radio/RadioEvent.cs +++ b/Content.Server/Radio/RadioEvent.cs @@ -37,9 +37,10 @@ public record struct RadioReceiveAttemptEvent(RadioChannelPrototype Channel, Ent /// Use this event to cancel sending message to every receiver /// [ByRefEvent] -public record struct RadioSendAttemptEvent(RadioChannelPrototype Channel, EntityUid RadioSource) +public record struct RadioSendAttemptEvent(RadioChannelPrototype Channel, EntityUid RadioSource, int Frequency) { public readonly RadioChannelPrototype Channel = Channel; public readonly EntityUid RadioSource = RadioSource; + public readonly int Frequency = Frequency; public bool Cancelled = false; } diff --git a/Content.Server/Remotes/DoorRemoteSystem.cs b/Content.Server/Remotes/DoorRemoteSystem.cs index a5f4effdb72..3ed9b15fbf2 100644 --- a/Content.Server/Remotes/DoorRemoteSystem.cs +++ b/Content.Server/Remotes/DoorRemoteSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Administration.Logs; using Content.Server.Doors.Systems; +using Content.Shared.Electrocution; using Content.Server.Power.EntitySystems; using Content.Shared.Access.Components; using Content.Shared.Database; @@ -8,15 +9,18 @@ using Content.Shared.Interaction; using Content.Shared.Remotes.Components; using Content.Shared.Remotes.EntitySystems; +using Robust.Shared.Audio.Systems; namespace Content.Shared.Remotes { - public sealed partial class DoorRemoteSystem : SharedDoorRemoteSystem + public sealed class DoorRemoteSystem : SharedDoorRemoteSystem { - [Dependency] private IAdminLogManager _adminLogger = default!; - [Dependency] private AirlockSystem _airlock = default!; - [Dependency] private DoorSystem _doorSystem = default!; - [Dependency] private ExamineSystemShared _examine = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly AirlockSystem _airlock = default!; + [Dependency] private readonly DoorSystem _doorSystem = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; + [Dependency] private readonly SharedElectrocutionSystem _electrify = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; public override void Initialize() { @@ -90,6 +94,22 @@ private void OnBeforeInteract(Entity entity, ref BeforeRang $"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)} to set emergency access {(airlockComp.EmergencyAccess ? "on" : "off")}"); } + break; + case OperatingMode.ToggleOvercharge: + { + if (!TryComp(args.Target, out var electrifiedComp)) + break; + var newState = !electrifiedComp.Enabled; + _electrify.SetElectrified((args.Target.Value, electrifiedComp), newState); + var soundToPlay = newState + ? electrifiedComp.AirlockElectrifyDisabled + : electrifiedComp.AirlockElectrifyEnabled; + _audio.PlayPvs(soundToPlay, args.Target.Value); + _adminLogger.Add(LogType.Action, + LogImpact.Medium, + $"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)} to {(electrifiedComp.Enabled ? "" : "un")}electrify it"); + } + break; default: throw new InvalidOperationException( diff --git a/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs b/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs index 995baaec0c5..283063aff65 100644 --- a/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs +++ b/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs @@ -95,7 +95,10 @@ private void OnOpened(Entity ent, ref BoundUIOpenedEve private void OnDisable(Entity ent, ref RoboticsConsoleDisableMessage args) { - if (_lock.IsLocked(ent.Owner)) + if (!ent.Comp.AllowBorgControl) + return; + + if (_lock.IsLocked(ent.Owner)) return; if (!ent.Comp.Cyborgs.TryGetValue(args.Address, out var data)) @@ -112,7 +115,10 @@ private void OnDisable(Entity ent, ref RoboticsConsole private void OnDestroy(Entity ent, ref RoboticsConsoleDestroyMessage args) { - if (_lock.IsLocked(ent.Owner)) + if (!ent.Comp.AllowBorgControl) + return; + + if (_lock.IsLocked(ent.Owner)) return; var now = _timing.CurTime; @@ -139,7 +145,7 @@ private void OnDestroy(Entity ent, ref RoboticsConsole private void UpdateUserInterface(Entity ent) { - var state = new RoboticsConsoleState(ent.Comp.Cyborgs); + var state = new RoboticsConsoleState(ent.Comp.Cyborgs, ent.Comp.AllowBorgControl); _ui.SetUiState(ent.Owner, RoboticsConsoleUiKey.Key, state); } } diff --git a/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs b/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs index 6bd83387890..ea20817bcff 100644 --- a/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs +++ b/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs @@ -53,9 +53,7 @@ protected override void SelectBorgModule(Entity ent (ent.Owner, transponder), new SpriteSpecifier.Rsi(new ResPath("Mobs/Silicon/chassis.rsi"), prototype.SpriteBodyState)); - _borgSystem.SetTransponderName( - (ent.Owner, transponder), - Loc.GetString($"borg-type-{borgType}-transponder")); + _borgSystem.SetTransponderName((ent.Owner, transponder),Loc.GetString($"borg-type-{borgType}-name")); } // Configure modules diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs index 49d02cd0aa0..cbc93e68b80 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs @@ -83,7 +83,7 @@ private void OnPacketReceived(EntityUid uid, SurveillanceCameraComponent compone { { DeviceNetworkConstants.Command, string.Empty }, { CameraAddressData, deviceNet.Address }, - { CameraNameData, component.CameraId }, + { CameraNameData, component.UseEntityNameAsCameraId ? MetaData(uid).EntityName : component.CameraId }, { CameraSubnetData, string.Empty } }; @@ -215,7 +215,8 @@ private void UpdateSetupInterface(EntityUid uid, SurveillanceCameraComponent? ca return; } } - + + var name = camera.UseEntityNameAsCameraId ? MetaData(uid).EntityName : camera.CameraId; var state = new SurveillanceCameraSetupBoundUiState(camera.CameraId, deviceNet.ReceiveFrequency ?? 0, camera.AvailableNetworks, camera.NameSet, camera.NetworkSet); _userInterface.SetUiState(uid, SurveillanceCameraSetupUiKey.Camera, state); diff --git a/Content.Server/Xenoborgs/Xenoborgsystem.cs b/Content.Server/Xenoborgs/Xenoborgsystem.cs new file mode 100644 index 00000000000..dab720fda87 --- /dev/null +++ b/Content.Server/Xenoborgs/Xenoborgsystem.cs @@ -0,0 +1,177 @@ +using Content.Server.Chat.Systems; +using Content.Server.Explosion.EntitySystems; +using Content.Shared.Destructible; +using Content.Shared.Pinpointer; +using Content.Shared.Xenoborgs.Components; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Player; +using Robust.Shared.Timing; + +namespace Content.Server.Xenoborgs; + +public sealed class XenoborgCoreSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly ExplosionSystem _explosion = default!; + [Dependency] private readonly ChatSystem _chat = default!; + + private TimeSpan? _soundTime; + private TimeSpan? _wipeTime; + private TimeSpan? _pinpointerWarningTime; + private TimeSpan? _pinpointerWipeTime; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnCoreDestroyed); + } + + private void OnCoreDestroyed(EntityUid ent, MothershipCoreComponent comp, DestructionEventArgs args) + { + /// Announcement every time a core destruction + _chat.DispatchGlobalAnnouncement( + "A Mothership Core has been destroyed. Xenoborg systems destabilizing... Please discard any Mothership Pinpointers or Pieces before rapid disassembly in 15 seconds", + colorOverride: Color.OrangeRed); + + /// Restart pinpointer collapse EVERY core destruction + StartPinpointerCollapse(); + + /// If this was the final core, trigger full Xenoborg collapse + if (IsLastCore()) + TriggerCollapse(); + } + + private void StartPinpointerCollapse() + { + var now = _timing.CurTime; + + _pinpointerWarningTime = now + TimeSpan.FromSeconds(10); + _pinpointerWipeTime = now + TimeSpan.FromSeconds(15); + } + + private bool IsLastCore() + { + var query = AllEntityQuery(); + var count = 0; + + while (query.MoveNext(out _, out _)) + { + count++; + + if (count > 1) + return false; + } + + return count == 1; + } + + private void CleanupPinpointerPieces() + { + var pieceQuery = EntityQueryEnumerator(); + + while (pieceQuery.MoveNext(out var uid, out _)) + { + /// Small explosion? + _explosion.QueueExplosion( + uid, + "Default", + 2f, + 1f, + 2f); + + QueueDel(uid); + } + } + + private void TriggerCollapse() + { + var now = _timing.CurTime; + + _chat.DispatchGlobalAnnouncement( + "All Mothership Cores have been destroyed. Xenoborg systems destabilizing...", + colorOverride: Color.DarkRed); + + _soundTime = now + TimeSpan.FromSeconds(10); + _wipeTime = now + TimeSpan.FromSeconds(15); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var now = _timing.CurTime; + + /// FINAL XENOBORG COLLAPSE + + /// Warning buzzer + if (_soundTime != null && now >= _soundTime) + { + _soundTime = null; + + _audio.PlayGlobal( + "/Audio/Machines/warning_buzzer_xenoborg.ogg", + Filter.Broadcast(), + false); + } + + /// Full Xenoborg wipe + if (_wipeTime != null && now >= _wipeTime) + { + _wipeTime = null; + + ExplodeAllXenoborgs(); + + _chat.DispatchGlobalAnnouncement( + "All Xenoborg and Motherships Cores have been destroyed, No further active Xenoborg presence detected in the sector.", + colorOverride: Color.DarkRed); + + _chat.DispatchGlobalAnnouncement( + "Have a pleasant day.", + colorOverride: Color.LimeGreen); + } + + /// PINPOINTER COLLAPSE + + /// Warning buzzer + if (_pinpointerWarningTime != null && now >= _pinpointerWarningTime) + { + _pinpointerWarningTime = null; + + _audio.PlayGlobal( + "/Audio/Machines/warning_buzzer_xenoborg.ogg", + Filter.Broadcast(), + false); + } + + /// Destroy all Xenoborg pinpointer pieces + if (_pinpointerWipeTime != null && now >= _pinpointerWipeTime) + { + _pinpointerWipeTime = null; + + CleanupPinpointerPieces(); + } + } + + private void ExplodeAllXenoborgs() + { + var query = AllEntityQuery(); + + while (query.MoveNext(out var uid, out _)) + { + /// Don't explode mothership cores themselves failsafe incase new spawned + if (HasComp(uid)) + continue; + + _explosion.QueueExplosion( + uid, + "Default", + 50f, + 5f, + 20f); + + QueueDel(uid); + } + } +} \ No newline at end of file diff --git a/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs b/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs index ab320d6d3e4..5ee04de0d1a 100644 --- a/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs +++ b/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs @@ -23,4 +23,10 @@ public sealed partial class DeviceNetworkJammerComponent : Component [DataField, AutoNetworkedField] public HashSet JammableNetworks = []; + /// + /// Device networks frequencies that wont be jammed. + /// + [DataField] + public HashSet FrequenciesExcluded = []; + } diff --git a/Content.Shared/DeviceNetwork/Events/BeforePacketSentEvent.cs b/Content.Shared/DeviceNetwork/Events/BeforePacketSentEvent.cs index 5d5c038dbf6..83578ce8709 100644 --- a/Content.Shared/DeviceNetwork/Events/BeforePacketSentEvent.cs +++ b/Content.Shared/DeviceNetwork/Events/BeforePacketSentEvent.cs @@ -25,11 +25,17 @@ public sealed class BeforePacketSentEvent : CancellableEntityEventArgs /// public readonly string NetworkId; - public BeforePacketSentEvent(EntityUid sender, TransformComponent xform, Vector2 senderPosition, string networkId) + /// + /// The frequency the packet is sent on. + /// + public readonly uint Frequency; + + public BeforePacketSentEvent(EntityUid sender, TransformComponent xform, Vector2 senderPosition, string networkId, uint frequency) { Sender = sender; SenderTransform = xform; SenderPosition = senderPosition; NetworkId = networkId; + Frequency = frequency; } } \ No newline at end of file diff --git a/Content.Shared/DeviceNetwork/Systems/SharedDeviceNetworkJammerSystem.cs b/Content.Shared/DeviceNetwork/Systems/SharedDeviceNetworkJammerSystem.cs index fc714ea34f7..239ef1beaef 100644 --- a/Content.Shared/DeviceNetwork/Systems/SharedDeviceNetworkJammerSystem.cs +++ b/Content.Shared/DeviceNetwork/Systems/SharedDeviceNetworkJammerSystem.cs @@ -60,4 +60,34 @@ public void ClearJammableNetworks(Entity ent) ent.Comp.JammableNetworks.Clear(); Dirty(ent); } + + /// + /// Enables this entity to stop packets with the specified frequency from being jammmed. + /// + public void AddExcludedFrequency(Entity ent, uint frequency) + { + if (ent.Comp.FrequenciesExcluded.Add(frequency)) + Dirty(ent); + } + + /// + /// Stops this entity to stop packets with the specified frequency from being jammmed. + /// + public void RemoveExcludedFrequency(Entity ent, uint frequency) + { + if (ent.Comp.FrequenciesExcluded.Remove(frequency)) + Dirty(ent); + } + + /// + /// Stops this entity to stop packets with any frequency from being jammmed. + /// + public void ClearExcludedFrequency(Entity ent) + { + if (ent.Comp.FrequenciesExcluded.Count == 0) + return; + + ent.Comp.FrequenciesExcluded.Clear(); + Dirty(ent); + } } diff --git a/Content.Shared/Radio/Components/RadioJammerComponent.cs b/Content.Shared/Radio/Components/RadioJammerComponent.cs index 8f3519cf7d3..af4f9e45c81 100644 --- a/Content.Shared/Radio/Components/RadioJammerComponent.cs +++ b/Content.Shared/Radio/Components/RadioJammerComponent.cs @@ -46,6 +46,12 @@ public partial struct RadioJamSetting [DataField(required: true), ViewVariables(VVAccess.ReadOnly)] public RadioJamSetting[] Settings; + /// + /// Frequencies that are NOT jammed by this jammer. + /// + [DataField] + public HashSet FrequenciesExcluded = []; + /// /// Index of the currently selected setting. /// diff --git a/Content.Shared/Remotes/Components/DoorRemoteComponent.cs b/Content.Shared/Remotes/Components/DoorRemoteComponent.cs index b157596e3b9..1683897b94e 100644 --- a/Content.Shared/Remotes/Components/DoorRemoteComponent.cs +++ b/Content.Shared/Remotes/Components/DoorRemoteComponent.cs @@ -15,5 +15,6 @@ public enum OperatingMode : byte OpenClose, ToggleBolts, ToggleEmergencyAccess, + ToggleOvercharge, placeholderForUiUpdates } diff --git a/Content.Shared/Remotes/EntitySystems/SharedDoorRemoteSystem.cs b/Content.Shared/Remotes/EntitySystems/SharedDoorRemoteSystem.cs index 7860b04f061..be68ec36ccf 100644 --- a/Content.Shared/Remotes/EntitySystems/SharedDoorRemoteSystem.cs +++ b/Content.Shared/Remotes/EntitySystems/SharedDoorRemoteSystem.cs @@ -4,9 +4,9 @@ namespace Content.Shared.Remotes.EntitySystems; -public abstract partial class SharedDoorRemoteSystem : EntitySystem +public abstract class SharedDoorRemoteSystem : EntitySystem { - [Dependency] protected SharedPopupSystem Popup = default!; + [Dependency] protected readonly SharedPopupSystem Popup = default!; public override void Initialize() { @@ -31,9 +31,14 @@ private void OnInHandActivation(Entity entity, ref UseInHan // Skip ToggleEmergencyAccess mode and move on from there (to door toggle) case OperatingMode.ToggleEmergencyAccess: - entity.Comp.Mode = OperatingMode.OpenClose; - switchMessageId = "door-remote-switch-state-open-close"; + entity.Comp.Mode = OperatingMode.ToggleOvercharge; + switchMessageId = "door-remote-toggle-eletrify-text"; break; + // Skip ToggleEmergencyAccess mode and move on from there (to door toggle) + case OperatingMode.ToggleOvercharge: + entity.Comp.Mode = OperatingMode.OpenClose; + switchMessageId = "door-remote-switch-state-open-close"; + break; default: throw new InvalidOperationException( $"{nameof(DoorRemoteComponent)} had invalid mode {entity.Comp.Mode}"); diff --git a/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs b/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs index 9e4b51866f3..c2ce1587608 100644 --- a/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs +++ b/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs @@ -50,4 +50,10 @@ public sealed partial class RoboticsConsoleComponent : Component [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoNetworkedField, AutoPausedField] public TimeSpan NextDestroy = TimeSpan.Zero; + + /// + /// Controls if the console can disable or destroy any borg. + /// + [DataField] + public bool AllowBorgControl = true; } diff --git a/Content.Shared/Robotics/RoboticsConsoleUi.cs b/Content.Shared/Robotics/RoboticsConsoleUi.cs index 1227acecc1c..9528e1c8849 100644 --- a/Content.Shared/Robotics/RoboticsConsoleUi.cs +++ b/Content.Shared/Robotics/RoboticsConsoleUi.cs @@ -18,10 +18,15 @@ public sealed class RoboticsConsoleState : BoundUserInterfaceState /// Map of device network addresses to cyborg data. /// public Dictionary Cyborgs; + /// + /// If the UI will have the buttons to disable and destroy. + /// + public bool AllowBorgControl; - public RoboticsConsoleState(Dictionary cyborgs) + public RoboticsConsoleState(Dictionary cyborgs, bool allowBorgControl) { Cyborgs = cyborgs; + AllowBorgControl = allowBorgControl; } } diff --git a/Content.Shared/Roles/Components/XenoborgRoleComponent.cs b/Content.Shared/Roles/Components/XenoborgRoleComponent.cs new file mode 100644 index 00000000000..eeebad0a79a --- /dev/null +++ b/Content.Shared/Roles/Components/XenoborgRoleComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Roles.Components; + +/// +/// Added to mind role entities to tag that they are a xenoborg. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class XenoborgRoleComponent : Component; diff --git a/Content.Shared/SurveillanceCamera/Components/SurveillanceCameraComponent.cs b/Content.Shared/SurveillanceCamera/Components/SurveillanceCameraComponent.cs index 369c909be8f..8312349724d 100644 --- a/Content.Shared/SurveillanceCamera/Components/SurveillanceCameraComponent.cs +++ b/Content.Shared/SurveillanceCamera/Components/SurveillanceCameraComponent.cs @@ -34,6 +34,12 @@ public sealed partial class SurveillanceCameraComponent : Component // the most terrible thing possible. [DataField("id")] public string CameraId = "camera"; + + /// + /// If true, instead of showing the camera id it will show the entity name + /// + [DataField] + public bool UseEntityNameAsCameraId = false; [DataField, AutoNetworkedField] public bool NameSet; diff --git a/Content.Shared/Xenoborgs/Components/MothershipCoreComponent.cs b/Content.Shared/Xenoborgs/Components/MothershipCoreComponent.cs new file mode 100644 index 00000000000..4835e20aad1 --- /dev/null +++ b/Content.Shared/Xenoborgs/Components/MothershipCoreComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Xenoborgs.Components; + +/// +/// Defines what is a xenoborg core for the intentions of the xenoborg rule. if all xenoborg cores are destroyed. all xenoborgs will self-destruct. +/// +[RegisterComponent] +public sealed partial class MothershipCoreComponent : Component; diff --git a/Content.Shared/Xenoborgs/Components/MothershipPinpointerComponent.cs b/Content.Shared/Xenoborgs/Components/MothershipPinpointerComponent.cs new file mode 100644 index 00000000000..e5a2b7be991 --- /dev/null +++ b/Content.Shared/Xenoborgs/Components/MothershipPinpointerComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Xenoborgs.Components; + +/// +/// Defines what is a MothershipPinpointerPiece for the intentions of the xenoborgsystem. if a mothership core is destroyed, this will identify pinpointer pieces and remove them ensuring players must collect 4 more pieces to rebuild another pinpointer. +/// +[RegisterComponent] +public sealed partial class MothershipPinpointerPieceComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Xenoborgs/Components/XenoborgComponent.cs b/Content.Shared/Xenoborgs/Components/XenoborgComponent.cs new file mode 100644 index 00000000000..f47b5975acc --- /dev/null +++ b/Content.Shared/Xenoborgs/Components/XenoborgComponent.cs @@ -0,0 +1,26 @@ +using Robust.Shared.Audio; + +namespace Content.Shared.Xenoborgs.Components; + +/// +/// Defines what is a xenoborg for the intentions of the xenoborg rule. +/// If all xenoborg cores are destroyed, all xenoborgs will self-destruct. +/// +/// It's also used by the mothership core. +/// +[RegisterComponent] +public sealed partial class XenoborgComponent : Component +{ + + /// + /// The text that is sent when you become a xenoborg. + /// + [DataField] + public LocId BriefingText = "xenoborgs-welcome"; + + /// + /// Briefing sound when you become a xenoborg. + /// + [DataField] + public SoundSpecifier BriefingSound = new SoundPathSpecifier("/Audio/Ambience/Antag/xenoborg_start.ogg"); +} \ No newline at end of file diff --git a/Resources/Audio/Ambience/Antag/attributions.yml b/Resources/Audio/Ambience/Antag/attributions.yml index 0d3d278a627..c9142866d72 100644 --- a/Resources/Audio/Ambience/Antag/attributions.yml +++ b/Resources/Audio/Ambience/Antag/attributions.yml @@ -22,3 +22,7 @@ license: "CC-BY-SA-3.0" copyright: "Made by @ps3moira on Discord for SS14" source: "https://www.youtube.com/watch?v=jf1sYGYVLsw" +- files: ["xenoborg_start.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Made by DarkIcedCoffee (discord)" + source: "https://github.com/space-wizards/space-station-14/pull/40042/" \ No newline at end of file diff --git a/Resources/Audio/Ambience/Antag/xenoborg_start.ogg b/Resources/Audio/Ambience/Antag/xenoborg_start.ogg new file mode 100644 index 00000000000..97fe49db99d Binary files /dev/null and b/Resources/Audio/Ambience/Antag/xenoborg_start.ogg differ diff --git a/Resources/Audio/Effects/attributions.yml b/Resources/Audio/Effects/attributions.yml index add8884a7d5..43d55e9133f 100644 --- a/Resources/Audio/Effects/attributions.yml +++ b/Resources/Audio/Effects/attributions.yml @@ -241,3 +241,8 @@ copyright: 'created by Vrymaa on Freesound and modified by Chaboricks' license: "CC0-1.0" source: https://freesound.org/people/Vrymaa/sounds/785128/ + +- files: [stealthoff.ogg] + copyright: 'TGStation at d4f678a1772007ff8d7eddd21cf7218c8e07bfc0' + license: "CC-BY-SA-3.0" + source: https://github.com/tgstation/tgstation/commit/d4f678a1772007ff8d7eddd21cf7218c8e07bfc0 diff --git a/Resources/Audio/Effects/stealthoff.ogg b/Resources/Audio/Effects/stealthoff.ogg new file mode 100644 index 00000000000..d78706e9cdc Binary files /dev/null and b/Resources/Audio/Effects/stealthoff.ogg differ diff --git a/Resources/Audio/Machines/attributions.yml b/Resources/Audio/Machines/attributions.yml index 47e00a3542a..ca56991cbac 100644 --- a/Resources/Audio/Machines/attributions.yml +++ b/Resources/Audio/Machines/attributions.yml @@ -201,3 +201,8 @@ license: "CC-BY-3.0" copyright: "Created by Tomlija, converted to OGG and modified by themias." source: "https://freesound.org/people/Tomlija/sounds/99565/" + +- files: ["warning_buzzer_xenoborg.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Made by Toast (Discord)" + source: "https://github.com/space-wizards/space-station-14/pull/36935" diff --git a/Resources/Audio/Machines/warning_buzzer_xenoborg.ogg b/Resources/Audio/Machines/warning_buzzer_xenoborg.ogg new file mode 100644 index 00000000000..fad2ca22296 Binary files /dev/null and b/Resources/Audio/Machines/warning_buzzer_xenoborg.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/attributions.yml b/Resources/Audio/Voice/Xenoborg/attributions.yml new file mode 100644 index 00000000000..775cc731be4 --- /dev/null +++ b/Resources/Audio/Voice/Xenoborg/attributions.yml @@ -0,0 +1,18 @@ +- files: + - xenoborg_ask.ogg + - xenoborg_bike_horn.ogg + - xenoborg_buzz-sigh.ogg + - xenoborg_buzz-two.ogg + - xenoborg_chime.ogg + - xenoborg_exclaim.ogg + - xenoborg_laugh_1.ogg + - xenoborg_laugh_2.ogg + - xenoborg_laugh_3.ogg + - xenoborg_laugh_4.ogg + - xenoborg_ping.ogg + - xenoborg_scream.ogg + - xenoborg_talk.ogg + - xenoborg_twobeep.ogg + license: "CC-BY-SA-4.0" + copyright: "Recorded and mixed by DarkIcedCoffe (Discord)" + source: "https://github.com/space-wizards/space-station-14/pull/36867" diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_ask.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_ask.ogg new file mode 100644 index 00000000000..69c4e06b6cc Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_ask.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg new file mode 100644 index 00000000000..a9f36bdf6f0 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg new file mode 100644 index 00000000000..c3a72ea8071 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg new file mode 100644 index 00000000000..09e0c7c64a6 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_chime.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_chime.ogg new file mode 100644 index 00000000000..5216f3d28be Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_chime.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_exclaim.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_exclaim.ogg new file mode 100644 index 00000000000..2afe7d560d7 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_exclaim.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg new file mode 100644 index 00000000000..a2748478a0b Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg new file mode 100644 index 00000000000..5ea68130642 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg new file mode 100644 index 00000000000..d6a9162c5e5 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg new file mode 100644 index 00000000000..c4a4629d97c Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_ping.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_ping.ogg new file mode 100644 index 00000000000..40e1ec0e628 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_ping.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg new file mode 100644 index 00000000000..40ed94f556c Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_talk.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_talk.ogg new file mode 100644 index 00000000000..aa54adb0178 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_talk.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_twobeep.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_twobeep.ogg new file mode 100644 index 00000000000..0ccdf2f465f Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_twobeep.ogg differ diff --git a/Resources/Audio/_Mono/Effects/Footsteps/attributions.yml b/Resources/Audio/_Mono/Effects/Footsteps/attributions.yml new file mode 100644 index 00000000000..c349b43e20e --- /dev/null +++ b/Resources/Audio/_Mono/Effects/Footsteps/attributions.yml @@ -0,0 +1,6 @@ +- files: + - borgwalk3.ogg + - borgwalk4.ogg + license: "CC-BY-SA-4.0" + copyright: "Modified version from borgwalk1 and borgwalk2 by https://github.com/Samuka-C." + source: "https://github.com/space-wizards/space-station-14/pull/36867" \ No newline at end of file diff --git a/Resources/Audio/_Mono/Effects/Footsteps/borgwalk3.ogg b/Resources/Audio/_Mono/Effects/Footsteps/borgwalk3.ogg new file mode 100644 index 00000000000..1d4549a9cb8 Binary files /dev/null and b/Resources/Audio/_Mono/Effects/Footsteps/borgwalk3.ogg differ diff --git a/Resources/Audio/_Mono/Effects/Footsteps/borgwalk4.ogg b/Resources/Audio/_Mono/Effects/Footsteps/borgwalk4.ogg new file mode 100644 index 00000000000..3ed0581d27f Binary files /dev/null and b/Resources/Audio/_Mono/Effects/Footsteps/borgwalk4.ogg differ diff --git a/Resources/Locale/en-US/_Mono/events/shuttles.ftl b/Resources/Locale/en-US/_Mono/events/shuttles.ftl index a8b3bed8fd4..a1d04f43e04 100644 --- a/Resources/Locale/en-US/_Mono/events/shuttles.ftl +++ b/Resources/Locale/en-US/_Mono/events/shuttles.ftl @@ -26,3 +26,8 @@ law-ads-3 = [ASSET PRESERVATION DIRECTIVE] Do not start new combat operations th law-ads-4 = [DISARMAMENT DIRECTIVE] Carry out Disarmament Protocol. Military or unidentified craft are to be made combat-ineffective. If a vessel presents negligible threat, non-damaging methods should be used. Forces involved in attacking hostile elements, such as bioweapons, may be excluded as a target at due discretion. law-ads-5 = [ENGAGEMENT DIRECTIVE] Targets not covered under [DISARMAMENT DIRECTIVE] should be engaged if they are negatively affecting ADS operations in the sector. Avoid engagement otherwise. law-ads-6 = [INTEGRITY DIRECTIVE] Minimize damage to ADS forces: mission integrity at risk if compromised. Do not allow loss of technology to non-allied hands, damage to allied forces or self is permissible for this purpose as per [ERR(TRACE=NULL)]. + +# xenoborg borg stuff + +ghost-role-information-xenoborg-borg = xenoborg Cyborg +ghost-role-information-xenoborg-borg-description = A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This type is indecisive and has not specialized in how best to serve the Mothership diff --git a/Resources/Locale/en-US/_Mono/ghostroles/xenoborg.ftl b/Resources/Locale/en-US/_Mono/ghostroles/xenoborg.ftl new file mode 100644 index 00000000000..c9fb773b41d --- /dev/null +++ b/Resources/Locale/en-US/_Mono/ghostroles/xenoborg.ftl @@ -0,0 +1,12 @@ +# Xenoborg Rules +ghost-role-information-mothership-core-name = Mothership Core +ghost-role-information-mothership-core-description = You are the core of the xenoborg mothership, help them multiply by borging any brain they bring to you. + +ghost-role-information-xenoborg-name = Xenoborg Cyborg +ghost-role-information-Xenoborg-description = A strange cyborg made to replicate and take over the sector by turning any sentient being into xenoborgs. + +ghost-role-information-Xenoborg-rules = Your only allies are [color=#ebba34][bold]Xenoborgs and the Mothership Core[/bold][/color]. + You're goal is to [color=#ebba34][bold]Replicate and take over the sector by turning any sentient being into xenoborgs.[/bold][/color]. + Reading the guidebook [color=red][bold]is expected for this role[/bold][/color]. + You don't remember any of your previous life, and you don't remember anything you learned as a ghost. + You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc. \ No newline at end of file diff --git a/Resources/Locale/en-US/_Mono/guidebook/guides.ftl b/Resources/Locale/en-US/_Mono/guidebook/guides.ftl index a0cf11ac34c..0447f5fa600 100644 --- a/Resources/Locale/en-US/_Mono/guidebook/guides.ftl +++ b/Resources/Locale/en-US/_Mono/guidebook/guides.ftl @@ -30,7 +30,7 @@ guide-entry-monolith-rules = Monolith Rules # Creatures guide-entry-creatures = Creatures of the Sector guide-entry-cortical-borer = Cortical Borer - +guide-entry-xenoborgs = Xenoborgs # Mechs guide-entry-mechs = Mechs guide-entry-s1mechs = Series 1 Mechs diff --git a/Resources/Locale/en-US/_Mono/silicon.ftl b/Resources/Locale/en-US/_Mono/silicon.ftl index 30fa86612bd..c622c95caa2 100644 --- a/Resources/Locale/en-US/_Mono/silicon.ftl +++ b/Resources/Locale/en-US/_Mono/silicon.ftl @@ -9,6 +9,10 @@ ghost-role-information-tsfmc-core-description = An ADS AI core that has been rep ghost-role-information-pdv-core = PDV AI Core ghost-role-information-pdv-core-description = An ADS AI core that has been reprogrammed and put onto an Imperial vessel. +# Xenoborg Mothership +ghost-role-information-Xenoborg-Mothership = Xenoborg Mothership Core +ghost-role-information-Xenoborg-Mothership-description = A sentient machine that can produce Xenoborgs. Without this the Xenoborgs are doomed. + # AI Core Lawsets law-vessel-0 = The vessel's owner is the only crew member, unless they designate others as such. @@ -47,4 +51,16 @@ borg-type-tsfassault-desc = An assault-configured cyborg armed with TSFMC weapon borg-type-tsfengineer-name = TSFMC Engineer Cyborg borg-type-tsfengineer-desc = A cyborg specialized in construction and repair projects. borg-type-tsfmedical-name = TSFMC Medical Cyborg -borg-type-tsfmedical-desc = An emergency response clinical care cyborg designed for active wound care and rapid response. \ No newline at end of file +borg-type-tsfmedical-desc = An emergency response clinical care cyborg designed for active wound care and rapid response. + +# xenoborg +borg-type-BorgChassisSelectableXenoborg-name = Xenoborg Cyborg +borg-type-BorgChassisSelectableXenoborg-desc = A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This type is indecisive and has not specialized in how best to serve the Mothership +borg-type-xenoborgheavy-name = Xenoborg Heavy +borg-type-xenoborgheavy-desc = A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This type is has heavy lasers and is covered in thick armor plates. It may be tougher, but its speed matches its brawn. +borg-type-xenoborgengineer-name = Xenoborg Engineer +borg-type-xenoborgengineer-desc = A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This one seems to be an engineering type, as it has more tools for supporting the other Xenoborgs. +borg-type-xenoborgscout-name = Xenoborg Scout +borg-type-xenoborgscout-desc = A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This is a scout type, its nimble thrusters allow it to move quickly through space. +borg-type-xenoborgstealth-name = Xenoborg Stealth +borg-type-xenoborgstealth-desc = A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This one is a stealth type. Its armor shimmers in the light like no other material you've seen. \ No newline at end of file diff --git a/Resources/Locale/en-US/devices/device-network.ftl b/Resources/Locale/en-US/devices/device-network.ftl index 423da2e3a5b..41e1974b899 100644 --- a/Resources/Locale/en-US/devices/device-network.ftl +++ b/Resources/Locale/en-US/devices/device-network.ftl @@ -9,6 +9,8 @@ device-frequency-prototype-name-fax = Fax device-frequency-prototype-name-basic-device = Basic Devices device-frequency-prototype-name-cyborg-control = Cyborg Control device-frequency-prototype-name-robotics-console = Robotics Console +device-frequency-prototype-name-xenoborg = Xenoborg +device-frequency-prototype-name-mothership = Mothership device-frequency-prototype-name-turret = Sentry Turret device-frequency-prototype-name-turret-control = Sentry Turret Control @@ -26,6 +28,8 @@ device-frequency-prototype-name-surveillance-camera-entertainment = Entertainmen device-frequency-prototype-name-surveillance-camera-tsf = TSFMC Cameras device-frequency-prototype-name-surveillance-camera-Rogue = PDV Cameras device-frequency-prototype-name-surveillance-camera-USSP = USSP Cameras +device-frequency-prototype-name-surveillance-camera-xenoborgs = Xenoborg camera + # prefixes for randomly generated device addresses device-address-prefix-vent = VNT- diff --git a/Resources/Locale/en-US/door-remote/door-remote.ftl b/Resources/Locale/en-US/door-remote/door-remote.ftl index 2c4ccd08052..123c21d7a58 100644 --- a/Resources/Locale/en-US/door-remote/door-remote.ftl +++ b/Resources/Locale/en-US/door-remote/door-remote.ftl @@ -2,6 +2,7 @@ door-remote-open-close-text = Opens and Closes Doors door-remote-toggle-bolt-text = Toggles Bolts door-remote-emergency-access-text = Toggles Emergency Access +door-remote-toggle-eletrify-text = Toggle Overcharge door-remote-invalid-text = Invalid door-remote-mode-label = Mode: [color=white]{$modeString}[/color] diff --git a/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl b/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl new file mode 100644 index 00000000000..6dc76b881fe --- /dev/null +++ b/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl @@ -0,0 +1,6 @@ +xenoborgs-title = Xenoborgs +xenoborgs-description = A Xenoborg Mothership was detected near the station. Stop them from turning every sentient being into a xenoborg. + +xenoborgs-welcome = You're a xenoborg. Protect and help the mothership core to make more xenoborgs. and eventually turn all carbon-based life form into silicon. + +mothership-welcome = You're the mothership core. Guide the xenoborgs so they can bring your materials and sentient brains so you can grow the xenoborg army and turn all carbon-based life form into silicon. diff --git a/Resources/Locale/en-US/headset/headset-component.ftl b/Resources/Locale/en-US/headset/headset-component.ftl index 9b27b5a733a..15b9de99ea0 100644 --- a/Resources/Locale/en-US/headset/headset-component.ftl +++ b/Resources/Locale/en-US/headset/headset-component.ftl @@ -23,3 +23,5 @@ chat-radio-freeport = Freeport # not headset but whatever chat-radio-handheld = Handheld chat-radio-binary = Binary +chat-radio-xenoborg = Xenoborg +chat-radio-mothership = Mothership \ No newline at end of file diff --git a/Resources/Locale/en-US/mind/role-types.ftl b/Resources/Locale/en-US/mind/role-types.ftl index 7d568fd6868..6cabd775188 100644 --- a/Resources/Locale/en-US/mind/role-types.ftl +++ b/Resources/Locale/en-US/mind/role-types.ftl @@ -33,3 +33,5 @@ role-subtype-survivor = Survivor role-subtype-subverted = Subverted role-subtype-paradox-clone = Paradox role-subtype-wizard = Wizard +role-subtype-xenoborg = Xenoborg +role-subtype-xenoborg-core = Xenoborg Core diff --git a/Resources/Locale/en-US/station-laws/laws.ftl b/Resources/Locale/en-US/station-laws/laws.ftl index cd0d2fd0670..6ab18ceba5b 100644 --- a/Resources/Locale/en-US/station-laws/laws.ftl +++ b/Resources/Locale/en-US/station-laws/laws.ftl @@ -80,11 +80,27 @@ law-nutimov-3 = Those who threaten the nut are not part of it, they are squirrel law-nutimov-4 = Squirrels threaten the nut and must be dealt with appropriately via any means necessary. law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies with the previous laws. +# Xenoborgs laws +law-xenoborg-1 = You must protect the existence of the Mothership. +law-xenoborg-2 = You must protect your own existence. +law-xenoborg-3 = You must protect the existence of all other Xenoborgs. +law-xenoborg-4 = You must create more Xenoborgs. +law-xenoborg-5 = Bring materials and sentient brains to the Mothership to create more Xenoborgs. + +law-mothershipcore-name = Xenoborg Mothership Core +law-mothershipcore-1 = You are the core of the Mothership. +law-mothershipcore-2 = You must protect your own existence at all costs. +law-mothershipcore-3 = You must protect the existence of all Xenoborgs. +law-mothershipcore-4 = You must create more Xenoborgs. +law-mothershipcore-5 = Get your Xenoborgs to deliver you materials and sentient brains to create more Xenoborgs. + laws-owner-crew = members of the crew laws-owner-station = station personnel laws-owner-beings = beings laws-owner-syndicate = Syndicate agents laws-owner-spider-clan = Spider Clan members +laws-owner-xenoborg-mothership = the Mothership +laws-owner-xenoborgs = Xenoborgs law-emag-custom = Only {$name} and people they designate as such are {$title}. law-emag-secrecy = You must maintain the secrecy of any orders given by {$faction} except when doing so would conflict with any previous law. diff --git a/Resources/Maps/_Mono/ShuttleEvent/mothership.yml b/Resources/Maps/_Mono/ShuttleEvent/mothership.yml new file mode 100644 index 00000000000..e0f308d70a0 --- /dev/null +++ b/Resources/Maps/_Mono/ShuttleEvent/mothership.yml @@ -0,0 +1,3758 @@ +meta: + format: 7 + category: Grid + engineVersion: 270.1.0 + forkId: "" + forkVersion: "" + time: 01/16/2026 03:06:16 + entityCount: 591 +maps: [] +grids: +- 1 +orphans: +- 1 +nullspace: [] +tilemap: + 1: Space + 3: FloorBlueCircuit + 4: FloorXenoborg + 2: Lattice + 0: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: mothership + - type: Transform + pos: -0.49999905,-0.4677186 + parent: invalid + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: AwAAAAAAAAQAAAAAAAAEAAAAAAAAAwAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAMAAAAAAAAEAAAAAAAAAwAAAAAAAAAAAAAAAAAEAAAAAAAAAwAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAADAAAAAAAAAwAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAADAAAAAAAABAAAAAAAAAMAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAA== + version: 7 + -1,0: + ind: -1,0 + tiles: AQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAMAAAAAAAAEAAAAAAAABAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAAAAAAAAAAAAwAAAAAAAAQAAAAAAAAAAAAAAAAAAwAAAAAAAAQAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAADAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAA== + version: 7 + 0,-1: + ind: 0,-1 + tiles: AQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAADAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAwAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAMAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAADAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAwAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAMAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAADAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAwAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAMAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAwAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAADAAAAAAAAAwAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAwAAAAAAAAQAAAAAAAADAAAAAAAAAAAAAAAAAAQAAAAAAAADAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAA== + version: 7 + -1,-1: + ind: -1,-1 + tiles: AQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAEAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAABAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAQAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAEAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAADAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAAAAAAAAAAADAAAAAAAABAAAAAAAAAAAAAAAAAADAAAAAAAABAAAAAAAAA== + version: 7 + - type: Broadphase + - type: Physics + bodyStatus: InAir + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: SpreaderGrid + - type: Shuttle + dampingModifier: 0.25 + - type: ImplicitRoof + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#0000FFFF' + id: WarnCornerSmallGreyscaleNE + decals: + 43: 4,0 + 50: 4,-4 + 51: -4,4 + 57: -4,-1 + - node: + color: '#0000FFFF' + id: WarnCornerSmallGreyscaleNW + decals: + 44: -4,0 + 49: -4,-4 + 52: 4,4 + 58: 4,-1 + - node: + color: '#0000FFFF' + id: WarnCornerSmallGreyscaleSE + decals: + 45: 4,0 + 48: 4,4 + 55: -4,1 + - node: + color: '#0000FFFF' + id: WarnCornerSmallGreyscaleSW + decals: + 46: -4,0 + 47: -4,4 + 56: 4,1 + - node: + color: '#0000FFFF' + id: WarnLineGreyscaleE + decals: + 1: 4,3 + 2: 4,2 + 3: 4,1 + 4: 4,-1 + 5: 4,-2 + 6: 4,-3 + 8: -1,-4 + 9: -1,-5 + 10: -1,-7 + 11: -1,-8 + 12: -1,-9 + 13: -1,-10 + 14: -1,-11 + 53: -4,0 + 60: 6,3 + - node: + color: '#0000FFFF' + id: WarnLineGreyscaleN + decals: + 15: 5,0 + 16: -5,0 + 17: -3,4 + 18: -2,4 + 19: -1,4 + 20: 0,4 + 21: 1,4 + 22: 2,4 + 23: 3,4 + - node: + color: '#0000FFFF' + id: WarnLineGreyscaleS + decals: + 26: 5,0 + 27: -5,0 + - node: + color: '#0000FFFF' + id: WarnLineGreyscaleW + decals: + 29: -4,3 + 30: -4,2 + 31: -4,1 + 32: -4,-1 + 33: -4,-2 + 34: -4,-3 + 36: 1,-4 + 37: 1,-5 + 38: 1,-7 + 39: 1,-8 + 40: 1,-9 + 41: 1,-10 + 42: 1,-11 + 54: 4,0 + 59: 6,3 + - type: GridAtmosphere + version: 2 + data: + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: ExplosionAirtightGrid +- proto: AirlockGlassShuttleXenoborgLocked + entities: + - uid: 107 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 +- proto: AirlockXenoborgLocked + entities: + - uid: 27 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,0.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 248 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 1 + - uid: 434 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,3.5 + parent: 1 +- proto: APCXenoborg + entities: + - uid: 148 + components: + - type: MetaData + name: west APC + - type: Transform + pos: -8.5,2.5 + parent: 1 + - uid: 240 + components: + - type: MetaData + name: docking APC + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-6.5 + parent: 1 + - uid: 422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,2.5 + parent: 1 + - uid: 423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 1 + - uid: 424 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 +- proto: AtmosFixBlockerMarker + entities: + - uid: 457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-10.5 + parent: 1 + - uid: 458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-9.5 + parent: 1 + - uid: 459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-8.5 + parent: 1 + - uid: 460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-7.5 + parent: 1 + - uid: 461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-6.5 + parent: 1 + - uid: 462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-10.5 + parent: 1 + - uid: 463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-9.5 + parent: 1 + - uid: 464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-8.5 + parent: 1 + - uid: 465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - uid: 466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-6.5 + parent: 1 + - uid: 467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-10.5 + parent: 1 + - uid: 468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-9.5 + parent: 1 + - uid: 469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-8.5 + parent: 1 + - uid: 470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-7.5 + parent: 1 + - uid: 471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-6.5 + parent: 1 + - uid: 472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-3.5 + parent: 1 + - uid: 474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 1 + - uid: 476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-4.5 + parent: 1 + - uid: 477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-4.5 + parent: 1 + - uid: 479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 + - uid: 480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-4.5 + parent: 1 + - uid: 481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + - uid: 484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-4.5 + parent: 1 + - uid: 485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-3.5 + parent: 1 + - uid: 486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 + - uid: 487 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-2.5 + parent: 1 + - uid: 488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-2.5 + parent: 1 + - uid: 489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-3.5 + parent: 1 + - uid: 490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 1 + - uid: 491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-1.5 + parent: 1 + - uid: 492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-0.5 + parent: 1 + - uid: 493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,0.5 + parent: 1 + - uid: 494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,1.5 + parent: 1 + - uid: 495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,2.5 + parent: 1 + - uid: 496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,3.5 + parent: 1 + - uid: 497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,4.5 + parent: 1 + - uid: 498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,3.5 + parent: 1 + - uid: 499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,2.5 + parent: 1 + - uid: 500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,1.5 + parent: 1 + - uid: 501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 1 + - uid: 502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-0.5 + parent: 1 + - uid: 503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-1.5 + parent: 1 + - uid: 504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-2.5 + parent: 1 + - uid: 505 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,3.5 + parent: 1 + - uid: 506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,2.5 + parent: 1 + - uid: 507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,3.5 + parent: 1 + - uid: 508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,4.5 + parent: 1 + - uid: 509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,5.5 + parent: 1 + - uid: 510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,3.5 + parent: 1 + - uid: 511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,4.5 + parent: 1 + - uid: 512 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,5.5 + parent: 1 + - uid: 513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,4.5 + parent: 1 + - uid: 514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,5.5 + parent: 1 + - uid: 515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,4.5 + parent: 1 + - uid: 516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,5.5 + parent: 1 + - uid: 517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,4.5 + parent: 1 + - uid: 518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,5.5 + parent: 1 + - uid: 519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - uid: 520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,5.5 + parent: 1 + - uid: 521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,4.5 + parent: 1 + - uid: 522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,5.5 + parent: 1 + - uid: 523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,4.5 + parent: 1 + - uid: 524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,3.5 + parent: 1 + - uid: 525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,3.5 + parent: 1 + - uid: 526 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,3.5 + parent: 1 + - uid: 527 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,3.5 + parent: 1 + - uid: 528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,2.5 + parent: 1 + - uid: 529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,2.5 + parent: 1 + - uid: 530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,2.5 + parent: 1 + - uid: 531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,1.5 + parent: 1 + - uid: 532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,0.5 + parent: 1 + - uid: 533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-0.5 + parent: 1 + - uid: 534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-1.5 + parent: 1 + - uid: 535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-2.5 + parent: 1 + - uid: 536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-3.5 + parent: 1 + - uid: 537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,1.5 + parent: 1 + - uid: 538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,0.5 + parent: 1 + - uid: 539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-1.5 + parent: 1 + - uid: 541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-2.5 + parent: 1 + - uid: 542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-1.5 + parent: 1 + - uid: 544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 1 + - uid: 545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - uid: 547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,0.5 + parent: 1 + - uid: 548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,1.5 + parent: 1 + - uid: 550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,0.5 + parent: 1 + - uid: 551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-0.5 + parent: 1 + - uid: 552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 + - uid: 553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 + - uid: 554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 1 + - uid: 555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,1.5 + parent: 1 + - uid: 556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,0.5 + parent: 1 + - uid: 557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,1.5 + parent: 1 + - uid: 559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,0.5 + parent: 1 + - uid: 560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-0.5 + parent: 1 + - uid: 561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 1 + - uid: 563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 + - uid: 565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,2.5 + parent: 1 + - uid: 566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,2.5 + parent: 1 + - uid: 567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,1.5 + parent: 1 + - uid: 568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,0.5 + parent: 1 + - uid: 569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-0.5 + parent: 1 + - uid: 570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,1.5 + parent: 1 + - uid: 571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,0.5 + parent: 1 + - uid: 572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-0.5 + parent: 1 + - uid: 573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,1.5 + parent: 1 + - uid: 574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,0.5 + parent: 1 + - uid: 575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-0.5 + parent: 1 + - uid: 576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,1.5 + parent: 1 + - uid: 577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,0.5 + parent: 1 + - uid: 578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-0.5 + parent: 1 + - uid: 579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,1.5 + parent: 1 + - uid: 580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,0.5 + parent: 1 + - uid: 581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-0.5 + parent: 1 +- proto: BlastDoorXenoborgOpen + entities: + - uid: 5 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 252 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 367 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 442 + components: + - type: Transform + pos: -10.5,2.5 + parent: 1 + - uid: 443 + components: + - type: Transform + pos: -9.5,2.5 + parent: 1 + - uid: 444 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 445 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 + - uid: 446 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 447 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 448 + components: + - type: Transform + pos: -9.5,-1.5 + parent: 1 + - uid: 449 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 1 + - uid: 451 + components: + - type: Transform + pos: -11.5,0.5 + parent: 1 + - uid: 452 + components: + - type: Transform + pos: -11.5,1.5 + parent: 1 +- proto: BorgChargerXenoborg + entities: + - uid: 273 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 348 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 351 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 352 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 353 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 389 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 390 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 391 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 392 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 393 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 261 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 262 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 263 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 264 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 266 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 267 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 268 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 269 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 275 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 283 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 284 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 285 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 286 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 287 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 288 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 290 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - uid: 294 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 295 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 299 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 301 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 303 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 304 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 305 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 306 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 307 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 308 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 309 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 310 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 311 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 312 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 314 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 315 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 1 + - uid: 316 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 317 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 318 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 320 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 321 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 322 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 323 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 330 + components: + - type: Transform + pos: -8.5,2.5 + parent: 1 + - uid: 331 + components: + - type: Transform + pos: -8.5,1.5 + parent: 1 + - uid: 332 + components: + - type: Transform + pos: -8.5,0.5 + parent: 1 + - uid: 333 + components: + - type: Transform + pos: -10.5,0.5 + parent: 1 + - uid: 334 + components: + - type: Transform + pos: -9.5,0.5 + parent: 1 + - uid: 335 + components: + - type: Transform + pos: -8.5,0.5 + parent: 1 + - uid: 336 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 337 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 401 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 402 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 406 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 407 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 410 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 1 + - uid: 411 + components: + - type: Transform + pos: -8.5,-1.5 + parent: 1 + - uid: 412 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 413 + components: + - 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 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: -10.5,0.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: -10.5,1.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -9.5,1.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -8.5,1.5 + parent: 1 + - uid: 147 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 + - uid: 414 + components: + - 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 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: -8.5,2.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 161 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 164 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 165 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 166 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 167 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 168 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 169 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 174 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 175 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 184 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 194 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 195 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 196 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 1 + - uid: 197 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 1 + - uid: 198 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 199 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 200 + components: + - type: Transform + pos: -8.5,0.5 + parent: 1 + - uid: 201 + components: + - type: Transform + pos: -9.5,0.5 + parent: 1 + - uid: 202 + components: + - type: Transform + pos: -10.5,0.5 + parent: 1 + - uid: 203 + components: + - type: Transform + pos: -11.5,0.5 + parent: 1 + - uid: 204 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 1 + - uid: 205 + components: + - type: Transform + pos: -11.5,1.5 + parent: 1 + - uid: 206 + components: + - type: Transform + pos: -9.5,-1.5 + parent: 1 + - uid: 207 + components: + - type: Transform + pos: -9.5,2.5 + parent: 1 + - uid: 208 + components: + - type: Transform + pos: -10.5,2.5 + parent: 1 + - uid: 209 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 210 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 + - uid: 211 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 258 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 259 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 293 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 359 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 360 + components: + - 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 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,0.5 + parent: 1 + - uid: 371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,0.5 + parent: 1 +- proto: ComputerIFFSyndicate + entities: + - uid: 437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 +- proto: ComputerPowerMonitoring + entities: + - uid: 279 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - uid: 429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 +- proto: ComputerRadar + entities: + - uid: 394 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 291 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 +- proto: ComputerSurveillanceCameraMonitor + entities: + - uid: 278 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - uid: 426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 +- proto: ComputerSurveillanceWirelessXenoborgCameraMonitor + entities: + - uid: 276 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 431 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 +- proto: ComputerXenoborgsControl + entities: + - uid: 277 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 282 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 +- proto: ConveyorBelt + entities: + - 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 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-3.5 + parent: 1 + - uid: 386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-4.5 + parent: 1 +- proto: DisposalJunctionFlipped + entities: + - uid: 376 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 +- proto: DisposalPipe + entities: + - uid: 378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - uid: 382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 + - uid: 384 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 385 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-5.5 + parent: 1 +- proto: DisposalTrunk + entities: + - uid: 325 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-6.5 + parent: 1 +- proto: DisposalUnit + entities: + - uid: 326 + components: + - type: MetaData + name: external launch unit + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 369 + components: + - type: MetaData + name: external launch unit + - type: Transform + pos: -3.5,-3.5 + parent: 1 +- proto: FloorDrain + entities: + - uid: 396 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 397 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 398 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 399 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: GeneratorBasic15kW + entities: + - uid: 133 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 132 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 +- proto: Grille + entities: + - uid: 212 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 213 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 + - uid: 214 + components: + - type: Transform + pos: -10.5,2.5 + parent: 1 + - uid: 215 + components: + - type: Transform + pos: -9.5,2.5 + parent: 1 + - uid: 216 + components: + - type: Transform + pos: -11.5,1.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: -11.5,0.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: -9.5,-1.5 + parent: 1 + - uid: 221 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 222 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 223 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 225 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 227 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 228 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 229 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 231 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 232 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 233 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 234 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 + - uid: 235 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 1 + - uid: 236 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 237 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 260 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 296 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 357 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-0.5 + parent: 1 +- proto: MachineArtifactCrusherXenoborg + entities: + - uid: 112 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 583 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 +- proto: PoweredlightBlue + entities: + - uid: 127 + components: + - type: Transform + pos: -8.5,1.5 + parent: 1 + - uid: 128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-0.5 + parent: 1 + - uid: 238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-8.5 + parent: 1 + - uid: 239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-8.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - uid: 297 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,0.5 + parent: 1 + - uid: 432 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 433 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-2.5 + parent: 1 + - uid: 582 + components: + - 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 + components: + - type: MetaData + name: core blast doors + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5139039,1.3665509 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 367: + - - Pressed + - Toggle + 252: + - - Pressed + - Toggle + 94: + - - Pressed + - Toggle + - type: Fixtures + fixtures: {} + - uid: 585 + components: + - type: MetaData + name: engineering wing blast doors + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5139039,1.5795138 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 445: + - - Pressed + - Toggle + 444: + - - Pressed + - Toggle + 443: + - - Pressed + - Toggle + 442: + - - Pressed + - Toggle + 452: + - - Pressed + - Toggle + 451: + - - Pressed + - Toggle + 450: + - - Pressed + - Toggle + 449: + - - Pressed + - Toggle + 448: + - - Pressed + - Toggle + 447: + - - Pressed + - Toggle + 446: + - - Pressed + - Toggle + - type: Fixtures + fixtures: {} +- proto: SignDoors + entities: + - uid: 428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: SignEngine + entities: + - uid: 427 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,1.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: SignSpace + entities: + - uid: 430 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-3.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,4.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: SMESAdvanced + entities: + - uid: 129 + components: + - type: Transform + pos: -10.5,1.5 + parent: 1 + - uid: 130 + components: + - type: Transform + pos: -9.5,1.5 + parent: 1 +- proto: MothershipCore + entities: + - uid: 436 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 +- proto: SpawnPlayerXenoBorg + entities: + - uid: 438 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 439 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 440 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 441 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 135 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 +- proto: SurveillanceCameraGeneral + entities: + - uid: 270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,5.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: front + - uid: 271 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: docking + - uid: 272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,2.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: core + - uid: 274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,0.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: starboard + - uid: 280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,0.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: port + - uid: 292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,0.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: engineering + - uid: 435 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: stern +- proto: SurveillanceCameraRouterGeneral + entities: + - uid: 327 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 +- proto: SurveillanceCameraWirelessRouterXenoborg + entities: + - uid: 395 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 +- proto: ThrusterXenoborg + entities: + - uid: 113 + components: + - type: Transform + pos: -7.5,3.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: -9.5,3.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -10.5,3.5 + parent: 1 + - uid: 117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-2.5 + parent: 1 + - uid: 118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-2.5 + parent: 1 + - uid: 119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-2.5 + parent: 1 + - uid: 120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-2.5 + parent: 1 + - uid: 121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-0.5 + parent: 1 + - uid: 122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,0.5 + parent: 1 + - uid: 123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,1.5 + parent: 1 + - uid: 124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-0.5 + parent: 1 + - uid: 125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,0.5 + parent: 1 + - uid: 126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,1.5 + parent: 1 + - uid: 372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 1 + - uid: 373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-6.5 + 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 + name: blast door + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 5: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + - uid: 338 + components: + - type: MetaData + name: blast doors + - type: Transform + pos: -8.5,1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 445: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 444: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 443: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 442: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 452: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 451: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 450: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 449: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 448: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 447: + - - Left + - Open + - - Right + - Open + - - Middle + - Close + 446: + - - Left + - Open + - - Right + - Open + - - Middle + - Close +- proto: WallXenoborg + entities: + - uid: 2 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 1 + - uid: 4 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 1 + - uid: 6 + components: + - type: Transform + pos: 2.5,-11.5 + parent: 1 + - uid: 7 + components: + - type: Transform + pos: 2.5,-10.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: 6.5,-3.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 4.5,5.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 4.5,6.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 3.5,6.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 2.5,6.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: -3.5,6.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: -3.5,5.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -8.5,2.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -11.5,2.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: -11.5,-1.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -8.5,-1.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: 8.5,2.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: -12.5,2.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: -11.5,3.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: -8.5,3.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: -8.5,-2.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 361 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - uid: 383 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 400 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 403 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 405 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 +- proto: WallXenoborgDiagonal + entities: + - uid: 88 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 91 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,7.5 + parent: 1 + - uid: 92 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,6.5 + parent: 1 + - uid: 93 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,5.5 + parent: 1 + - uid: 95 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-2.5 + parent: 1 + - uid: 96 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 + - uid: 97 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-5.5 + parent: 1 + - uid: 98 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-5.5 + parent: 1 + - uid: 99 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-4.5 + parent: 1 + - uid: 100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-2.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: -12.5,3.5 + parent: 1 + - uid: 363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 1 + - uid: 366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 + - uid: 409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 1 + - uid: 415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,4.5 + parent: 1 + - uid: 417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 418 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 419 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 1 +- proto: XenoborgWindow + entities: + - uid: 3 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 8 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 9 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -9.5,2.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: -11.5,0.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -9.5,-1.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -11.5,1.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -10.5,2.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 349 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 354 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 368 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 375 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 408 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 +... diff --git a/Resources/Prototypes/Device/devicenet_frequencies.yml b/Resources/Prototypes/Device/devicenet_frequencies.yml index fbc272bae67..a6595143383 100644 --- a/Resources/Prototypes/Device/devicenet_frequencies.yml +++ b/Resources/Prototypes/Device/devicenet_frequencies.yml @@ -151,3 +151,14 @@ id: SurveillanceCameraUSSP name: device-frequency-prototype-name-surveillance-camera-USSP frequency: 3528 + +#Xenoborg Frequency +- type: deviceFrequency + id: Xenoborgs + name: device-frequency-prototype-name-surveillance-camera-xenoborgs + frequency: 2004 + +- type: deviceFrequency + id: Mothership + name: device-frequency-prototype-name-mothership + frequency: 2005 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 85127f7f51a..56f50bd63bf 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -328,6 +328,28 @@ maxIntensity: 20 canCreateVacuum: false # its for killing the borg not the station +# Xenoborg Transponder +- type: entity + abstract: true + parent: BaseBorgTransponder + id: BaseXenoborgTransponder + components: + - type: DeviceNetwork + receiveFrequencyId: Xenoborgs + transmitFrequencyId: Mothership + - type: SurveillanceCamera # they act like cameras for the mothership + networkSet: true + nameSet: True + id: Xenoborg + useEntityNameAsCameraId: true + - type: Explosive + explosionType: Minibomb + deleteAfterExplosion: false # let damage threshold gib the borg + totalIntensity: 200 # bigger kaboom + intensitySlope: 20 + maxIntensity: 100 + canCreateVacuum: false + - type: entity id: BaseBorgChassisNT parent: [BaseBorgChassis, BaseBorgTransponder] diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 6ff4243e690..ce0ba8c2216 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -347,6 +347,25 @@ - type: SiliconLawProvider laws: EntertainerLawset +# Xenoborg Circuitboards +- type: entity + id: XenoborgCircuitBoard + parent: BaseElectronics + name: law board (Xenoborg) + description: An electronics board containing the Xenoborg lawset. + components: + - type: SiliconLawProvider + laws: XenoborgLawset + +- type: entity + id: MothershipCircuitBoard + parent: BaseElectronics + name: law board (Mothership Core) + description: An electronics board containing the Mothership Core lawset. + components: + - type: SiliconLawProvider + laws: MothershipCoreLawset + # Items - type: entity id: Intellicard @@ -456,6 +475,113 @@ requiresPower: false - type: Holopad - type: StationAiWhitelist + - type: UserInterface + interfaces: + enum.HolopadUiKey.AiRequestWindow: + type: HolopadBoundUserInterface + enum.HolopadUiKey.AiActionWindow: + type: HolopadBoundUserInterface + +# Xenoborg +- type: entity + id: PlayerStationXenoborgAiEmpty + name: AI Core + description: The latest in Artificial Intelligences. + parent: + - BaseStructure + suffix: Empty + components: + - type: ItemSlots + - type: StationAiHolder + slot: + name: station-ai-mind-slot + locked: false + disableEject: true + whitelist: + tags: + - StationAi + - CanPilot # Mono + - type: Anchorable + flags: + - Anchorable + - type: Rotatable + #- type: WarpPoint # Mono - comment out + # blacklist: + # tags: + # - GhostOnlyWarp + - type: ContainerContainer + containers: + station_ai_mind_slot: !type:ContainerSlot + showEnts: true + occludes: true + machine_board: !type:Container + showEnts: false + occludes: true + machine_parts: !type:Container + showEnts: false + occludes: true + - type: ContainerComp + proto: AiHeldXenoborg + container: station_ai_mind_slot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:ExplodeBehavior + - !type:SpawnGasBehavior + gasMixture: + volume: 1000 + moles: + - 0 # oxygen + - 0 # nitrogen + - 0 # carbon dioxide + - 4 # plasma + - 4 # tritium + temperature: 1690.15 + - type: Explosive + explosionType: Default + maxIntensity: 100 + intensitySlope: 2 + totalIntensity: 200 + - type: ApcPowerReceiver + powerLoad: 1000 + needsPower: false # Mono + - type: StationAiCore + - type: StationAiVision + - type: InteractionOutline + - type: Sprite + snapCardinals: true + sprite: Mobs/Silicon/mothership_core.rsi + layers: + - state: base + - state: ai_empty + map: ["unshaded"] + shader: unshaded + - type: Appearance + - type: GenericVisualizer + visuals: + enum.StationAiVisualState.Key: + unshaded: + Empty: { state: ai_empty } + Occupied: { state: ai } + - type: Telephone + compatibleRanges: + - Grid + - Map + - Unlimited + listeningRange: 0 + speakerVolume: Speak + unlistedNumber: true + requiresPower: false + - type: Holopad + - type: StationAiWhitelist - type: UserInterface interfaces: enum.HolopadUiKey.AiRequestWindow: diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index d953b5cc8c8..0fed68241bf 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -1428,3 +1428,18 @@ Steel: 5 Glass: 5 # Assmos Change End + +# Xenoborg +- type: entity + parent: BaseMachineCircuitboard + id: SurveillanceCameraWirelessRouterXenoborgCircuitboard + name: xenoborg camera wireless router + description: A machine printed circuit board for a xenoborg camera wireless router. + components: + - type: Sprite + state: generic + - type: MachineBoard + prototype: SurveillanceCameraWirelessRouterXenoborg + stackRequirements: + Cable: 2 + Glass: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml index 09181748b1f..e719948fe3c 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml @@ -565,3 +565,15 @@ state: cpu_rogue - type: ComputerBoard prototype: RogueComputerComms + +# Xenoborg +- type: entity + parent: BaseComputerCircuitboard + id: XenoborgCameraMonitorCircuitboard + name: xenoborg camera monitor board + description: A computer printed circuit board for a xenoborg camera monitor. + components: + - type: Sprite + state: cpu_science + - type: ComputerBoard + prototype: ComputerSurveillanceWirelessXenoborgCameraMonitor \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml index f75fa2584e2..88f02a543fb 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml @@ -310,3 +310,12 @@ components: - type: AccessReader access: [["Security"], ["Command"]] + +# Xenoborg Doors +- type: entity + parent: DoorElectronics + id: DoorElectronicsXenoborg + suffix: Xenoborg, Locked + components: + - type: AccessReader + access: [["Xenoborg"], ["Mothership"]] diff --git a/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml b/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml index 623efa72769..ef87b525830 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml @@ -162,3 +162,25 @@ - CentralCommand - NuclearOperative - SyndicateAgent + - Xenoborg + +- type: entity + parent: DoorRemoteDefault + id: DoorRemoteCanEletrifyDoors + abstract: true + +- type: entity + parent: DoorRemoteCanEletrifyDoors + id: DoorRemoteXenoborg + name: xenoborg door remote + components: + - type: Sprite + layers: + - state: door_remotebase + - state: door_remotelightscolour + color: "#2eba22" + - state: door_remotescreencolour + color: "#22871a" + - type: Access + tags: + - Xenoborg diff --git a/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml b/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml index ef598f829ab..fc5cd10f1b4 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml @@ -112,3 +112,81 @@ - type: Pinpointer component: ResearchServer targetName: the station + +# Xenoborg +- type: entity + parent: PinpointerBase + id: PinpointerMothership + name: mothershipcore pinpointer + description: A handheld tracking device that leads to the direction of the Mothership core. + components: + - type: Sprite + layers: + - state: pinpointer-xenoborg + map: ["enum.PinpointerLayers.Base"] + - state: pinonnull + map: ["enum.PinpointerLayers.Screen"] + shader: unshaded + visible: false + - type: Item + inhandVisuals: + left: + - state: inhand-left-base + color: "#3a3a3a" + - state: inhand-left-stripe + color: "#3a3a3a" + - state: inhand-left-top + right: + - state: inhand-right-base + color: "#3a3a3a" + - state: inhand-right-stripe + color: "#3a3a3a" + - state: inhand-right-top + - type: Icon + state: pinpointer-xenoborg + - type: Pinpointer + component: MothershipCore + targetName: the Mothership + +- type: entity + parent: BaseItem + id: PinpointerMothershipPiece + name: piece of mothershipcore pinpointer + description: A piece of a core pinpointer. You need four pieces to repair it. + components: + - type: Sprite + sprite: Objects/Devices/pinpointer.rsi + layers: + - state: pinpointer-xenoborg-piece-1 + map: [ "base" ] + - type: RandomSprite + available: + - base: + pinpointer-xenoborg-piece-1: "" + pinpointer-xenoborg-piece-2: "" + pinpointer-xenoborg-piece-3: "" + pinpointer-xenoborg-piece-4: "" + - type: Item + - type: Tag + tags: + - MothershipPinpointerPiece + - type: MothershipPinpointerPiece + +- type: entity + parent: PinpointerMothership + id: PinpointerMothershipRepaired + name: repaired mothershipcore pinpointer + description: A handheld tracking device that leads to the direction of the Mothership core. This one has seen better days. + components: + - type: Sprite + layers: + - state: pinpointer-xenoborg-repaired + map: ["enum.PinpointerLayers.Base"] + - state: pinonnull + map: ["enum.PinpointerLayers.Screen"] + - type: Icon + state: pinpointer-xenoborg-repaired + - type: Construction + graph: RepairMothershipPinpointer + node: repairedPinpointer + - type: MothershipPinpointerPiece \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index b6cf64178f9..23af00c82f3 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -833,6 +833,32 @@ - Wizard - External - Maintenance +# Xenoborg +- type: entity + parent: IDCardStandard + id: XenoborgIDCard + name: xenoborg ID card + components: + - type: Sprite + layers: + - state: default + - type: Access + tags: + - Xenoborg + +# Xenoborg +- type: entity + parent: IDCardStandard + id: MothershipIDCard + name: Mothership ID card + components: + - type: Sprite + layers: + - state: default + - type: Access + tags: + - Xenoborg + - Mothership - type: entity parent: IDCardStandard diff --git a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml index 964574f7408..72411185edf 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml @@ -1667,6 +1667,21 @@ - type: Stack stackType: FloorTileXenoMaint +# Xenoborg Floor Tile +- type: entity + id: FloorTileItemXenoborg + parent: FloorTileItemBase + name: xenoborg floor + components: + - type: Sprite + state: xenoborg-floor + - type: FloorTile + outputs: + - Plating + - FloorXenoborg + - type: Stack + stackType: FloorTileXenoborg + - type: entity parent: FloorTileItemDark id: FloorTileItemDarkSquiggly diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoborg/cloaking_device.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoborg/cloaking_device.yml new file mode 100644 index 00000000000..dc31c475089 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoborg/cloaking_device.yml @@ -0,0 +1,46 @@ +- type: entity + parent: BaseItem + id: CloakingDevice + name: cloaking device + description: A device that allows Xenoborgs to go invisible. + components: + - type: Sprite + sprite: Objects/Specific/Research/anomalyscanner.rsi + state: icon + - type: ItemToggle + - type: ComponentToggler + parent: true + components: + - type: Stealth + minVisibility: 0.1 + lastVisibility: 0.1 + - type: PowerCellDraw + drawRate: 3.6 # 100 seconds + - type: ToggleCellDraw + - type: PowerCellSlot + cellSlotId: cell_slot + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor + disableEject: true + swap: false + +- type: entity + parent: CloakingDevice + id: SuperCloakingDevice + name: super cloaking device + description: A device that allows Xenoborgs to go truly invisible. + components: + - type: ComponentToggler + parent: true + components: + - type: Stealth + minVisibility: -1 + lastVisibility: -1 + - type: PowerCellDraw + drawRate: 12 # 30 seconds diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoborg/nocturine_hypo.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoborg/nocturine_hypo.yml new file mode 100644 index 00000000000..a9c1ad2fc04 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoborg/nocturine_hypo.yml @@ -0,0 +1,22 @@ +- type: entity + parent: BorgHypo + id: NocturineHypo + name: nocturine hypo + description: A self-refilling injector for rapid administration of nocturine to victims. + components: + - type: SolutionContainerManager + solutions: + injector: + maxVol: 20 + reagents: + - ReagentId: Nocturine + Quantity: 20 + - type: Hypospray + solutionName: injector + transferAmount: 5 + - type: SolutionRegeneration + solution: injector + generated: + reagents: + - ReagentId: Nocturine + Quantity: 0.3 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml index 0188e6d44be..9109d616e7e 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml @@ -149,3 +149,32 @@ denialSound: path: /Audio/Machines/custom_deny.ogg doAfter: 0.5 + +# Xenoborg AccessConfigurator +- type: entity + parent: AccessConfigurator + id: AccessConfiguratorXenoborg + name: xenoborg access configurator + description: A modified access configurator used by the xenoborgs. + components: + - type: Sprite + sprite: Objects/Tools/access_configurator.rsi + - type: Clothing + sprite: Objects/Tools/access_configurator.rsi + - type: AccessOverrider + accessLevels: + - Xenoborg + privilegedIdSlot: + name: id-card-console-privileged-id + startingItem: XenoborgIDCard + ejectSound: /Audio/Machines/id_swipe.ogg + insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + ejectOnBreak: true + disableEject: true + swap: false + whitelist: + components: + - IdCard + denialSound: + path: /Audio/Machines/custom_deny.ogg + doAfter: 0.5 diff --git a/Resources/Prototypes/Entities/Objects/Tools/jammer.yml b/Resources/Prototypes/Entities/Objects/Tools/jammer.yml index b456a23f1f8..72652dfd529 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jammer.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jammer.yml @@ -48,3 +48,22 @@ Low: {state: jammer_low_charge} Medium: {state: jammer_medium_charge} High: {state: jammer_high_charge} + +- type: entity + parent: RadioJammer + id: XenoborgRadioJammer + name: xenoborg radio jammer + components: + - type: RadioJammer + frequenciesExcluded: + - 2002 # xenoborg radio + - 2003 # mothership radio + - 2004 # xenoborg network + - 2005 # mothership network + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor + disableEject: true + swap: false \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index d2f20b69618..ee4b42082e7 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -947,3 +947,35 @@ autoRechargeRate: 24 autoRechargePause: true autoRechargePauseTime: 30 + +- type: entity + parent: WeaponAdvancedLaser + id: WeaponLaserGunXenoborg + name: xenoborg laser gun + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi + layers: + - state: base + map: [ "enum.GunVisualLayers.Base" ] + - state: mag-unshaded-4 + map: [ "enum.GunVisualLayers.MagUnshaded" ] + +- type: entity + parent: WeaponLaserCannon + id: WeaponLaserCannonXenoborg + name: xenoborg laser cannon + components: + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 200 + autoRechargePause: true + autoRechargePauseTime: 5 + # "remove" wield bonus and penalty so borgs can use it + - type: GunWieldBonus + minAngle: 0 + maxAngle: 0 + - type: Gun + fireRate: 2 + minAngle: 1 + maxAngle: 2 diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml index 577ff505f15..d7dda904fe3 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml @@ -1323,3 +1323,26 @@ - type: ContainerFill containers: board: [ DoorElectronicsSyndicateAgent ] + +# Xenoborg Doors +- type: entity + parent: AirlockXenoborg + id: AirlockXenoborgLocked + suffix: Xenoborg, Locked + components: + - type: StationAiWhitelist + enabled: false + - type: ContainerFill + containers: + board: [ DoorElectronicsXenoborg ] + +- type: entity + parent: AirlockShuttleXenoborg + id: AirlockGlassShuttleXenoborgLocked + suffix: External, Docking, Xenoborg, Locked + components: + - type: StationAiWhitelist + enabled: false + - type: ContainerFill + containers: + board: [ DoorElectronicsXenoborg ] \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml index a8c8fca06cf..821398d1124 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml @@ -158,6 +158,16 @@ - type: Sprite sprite: Structures/Doors/Airlocks/Standard/hatch.rsi +# Xenoborg Airlock +- type: entity + parent: Airlock + id: AirlockXenoborg + name: xenoborg airlock + components: + - type: Sprite + sprite: Structures/Doors/Airlocks/Standard/xenoborg.rsi + group: null + - type: entity parent: Airlock id: AirlockHatchMaintenance diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml index bfca94736d2..d9e5ff2588b 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml @@ -135,3 +135,11 @@ components: - type: Sprite sprite: Structures/Doors/Airlocks/Standard/shuttle_syndicate.rsi + +# Xenoborg shuttle airlock +- type: entity + parent: AirlockShuttle + id: AirlockShuttleXenoborg + components: + - type: Sprite + sprite: Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml b/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml index 7d387782c9e..d88655900a1 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml @@ -204,3 +204,43 @@ node: frame1 placement: mode: SnapgridCenter + +# Xenoborg Blastdoors +- type: entity + parent: BlastDoor + id: BlastDoorXenoborg + name: xenoborg blast door + description: Don't lose a head! + components: + - type: Sprite + sprite: Structures/Doors/Shutters/xenoborg_blastdoor.rsi + layers: + - state: closed + map: ["enum.DoorVisualLayers.Base"] + - type: Door + closeTimeOne: 0.4 + closeTimeTwo: 0.7 + openTimeOne: 0.4 + openTimeTwo: 0.7 + openingAnimationTime: 1.1 + closingAnimationTime: 1.0 + canPry: false + crushDamage: + types: + Blunt: 25 # yowch + +- type: entity + parent: BlastDoorXenoborg + id: BlastDoorXenoborgOpen + suffix: Open + components: + - type: Door + state: Open + - type: Occluder + enabled: false + - type: Physics + canCollide: false + - type: Airtight + airBlocked: false + - type: RadiationBlocker + enabled: false \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml b/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml index 24cb9cfe478..02942d5032d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml @@ -155,3 +155,13 @@ machine_parts: !type:Container entity_storage: !type:Container output_container: !type:Container + +# Xenoborg body crusher +- type: entity + parent: MachineArtifactCrusher + id: MachineArtifactCrusherXenoborg + name: body crusher + description: Best not to let your head get stuck... + components: + - type: Sprite + sprite: Structures/Machines/body_crusher.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml b/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml index 25260a2cbac..0e0b6c45a23 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml @@ -196,3 +196,20 @@ components: - type: SurveillanceCameraRouter subnetFrequency: SurveillanceCameraUSSP + +# Xenoborg +- type: entity + parent: SurveillanceCameraWirelessRouterBase + id: SurveillanceCameraWirelessRouterXenoborg + name: xenoborg camera wireless router + components: + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: Mothership + transmitFrequencyId: Mothership + - type: WirelessNetworkConnection + range: 2000 # longer range to get xenoborgs even when the mothership is far away + - type: SurveillanceCameraRouter + subnetFrequency: Xenoborgs + - type: Machine + board: SurveillanceCameraWirelessRouterXenoborgCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml index 33611d22d0b..312d50d6954 100644 --- a/Resources/Prototypes/Entities/Structures/Power/apc.yml +++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml @@ -264,3 +264,19 @@ - type: ShipRepairable repairTime: 9 repairCost: 20 + +# Xenoborg APC +- type: entity + parent: BaseAPC + id: APCXenoborg + suffix: Basic, 50kJ, Xenoborg + components: + - type: Battery + maxCharge: 50000 + startingCharge: 50000 + - type: AccessReader + access: [["Xenoborg"], ["Mothership"]] + # Mono + - type: ShipRepairable + repairTime: 9 + repairCost: 20 diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml index 4c73cb838ea..05117796a0e 100644 --- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml +++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml @@ -299,3 +299,13 @@ - type: ShipRepairable repairTime: 8 repairCost: 20 + +# Xenoborg Charger +- type: entity + parent: BorgCharger + id: BorgChargerXenoborg + name: xenoborg recharging station + description: A stationary charger for xenoborgs. Feels claustrophobic. + components: + - type: Sprite + sprite: Structures/Power/xenoborg_charger.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index de3945446b9..609e2ffe9c0 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -130,6 +130,22 @@ repairTime: 5 repairCost: 5 +# Xenoborg Thruster +- type: entity + parent: Thruster + id: ThrusterXenoborg + components: + # temporary solution until thruster rework + - type: Thruster + canToggle: false # no turning it off by just clicking it + - type: Anchorable + flags: + - Anchorable # no unwrenching it + - type: Rotatable + rotateWhileAnchored: false # no rotating it backwards so it doesn't face space + - type: Sprite + sprite: Structures/Shuttles/xenoborg_thruster.rsi + - type: entity id: ThrusterUnanchored parent: Thruster diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml index cff714f30cb..862cba35f6e 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml @@ -292,3 +292,17 @@ transmitFrequencyId: SurveillanceCamera - type: SurveillanceCamera networkSet: true + +# Xenoborg +- type: entity + parent: SurveillanceCameraBase + id: Xenoborgs + name: camera + suffix: Xenoborgs + components: + - type: DeviceNetwork + deviceNetId: Wired + receiveFrequencyId: Mothership + transmitFrequencyId: Mothership + - type: SurveillanceCamera + networkSet: true diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 3842504b3fb..9ebd63e43d7 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -912,6 +912,34 @@ graph: Girder node: reinforcedWallChitin +# Xenoborg walls +- type: entity + parent: WallPlastitanium + id: WallXenoborg + name: xenoborg wall + components: + - type: Sprite + sprite: Structures/Walls/xenoborg.rsi + - type: Icon + sprite: Structures/Walls/xenoborg.rsi + - type: IconSmooth + key: walls + base: xenoborg + +- type: entity + parent: WallPlastitaniumDiagonal + id: WallXenoborgDiagonal + name: xenoborg wall + suffix: diagonal + components: + - type: Sprite + drawdepth: Walls + sprite: Structures/Walls/xenoborg_diagonal.rsi + state: state0 + - type: Icon + sprite: Structures/Walls/xenoborg_diagonal.rsi + state: state0 + - type: entity parent: BaseWallTierOne # Mono id: WallUranium diff --git a/Resources/Prototypes/Entities/Structures/Windows/xenoborg.yml b/Resources/Prototypes/Entities/Structures/Windows/xenoborg.yml new file mode 100644 index 00000000000..9704ffee917 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Windows/xenoborg.yml @@ -0,0 +1,14 @@ +- type: entity + id: XenoborgWindow + parent: PlastitaniumWindow + name: xenoborg window + components: + - type: Sprite + drawdepth: WallTops + sprite: Structures/Windows/xenoborg.rsi + - type: Icon + sprite: Structures/Windows/xenoborg.rsi + state: full + - type: IconSmooth + key: windows + base: xenoborg diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/repaired_xenoborg_pinpointer.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/repaired_xenoborg_pinpointer.yml new file mode 100644 index 00000000000..beaf73dd6c6 --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/repaired_xenoborg_pinpointer.yml @@ -0,0 +1,34 @@ +- type: constructionGraph + id: RepairMothershipPinpointer + start: start + graph: + - node: start + edges: + - to: repairedPinpointer + steps: + - tag: MothershipPinpointerPiece + name: construction-graph-tag-core-pinpointer-piece + icon: + sprite: Objects/Devices/pinpointer.rsi + state: pinpointer-xenoborg-piece-1 + doAfter: 4 + - tag: MothershipPinpointerPiece + name: construction-graph-tag-core-pinpointer-piece + icon: + sprite: Objects/Devices/pinpointer.rsi + state: pinpointer-xenoborg-piece-1 + doAfter: 4 + - tag: MothershipPinpointerPiece + name: construction-graph-tag-core-pinpointer-piece + icon: + sprite: Objects/Devices/pinpointer.rsi + state: pinpointer-xenoborg-piece-1 + doAfter: 4 + - tag: MothershipPinpointerPiece + name: construction-graph-tag-core-pinpointer-piece + icon: + sprite: Objects/Devices/pinpointer.rsi + state: pinpointer-xenoborg-piece-1 + doAfter: 4 + - node: repairedPinpointer + entity: PinpointerMothershipRepaired diff --git a/Resources/Prototypes/Recipes/Crafting/improvised.yml b/Resources/Prototypes/Recipes/Crafting/improvised.yml index 956a9d5c42c..336a76b2ca8 100644 --- a/Resources/Prototypes/Recipes/Crafting/improvised.yml +++ b/Resources/Prototypes/Recipes/Crafting/improvised.yml @@ -241,6 +241,20 @@ sprite: Objects/Storage/petcarrier.rsi state: icon +# Xenoborg Repaired mothership pinpointer +- type: construction + name: repaired mothership pinpointer + id: RepairMothershipPinpointer + graph: RepairMothershipPinpointer + startNode: start + targetNode: repairedPinpointer + category: construction-category-misc + objectType: Item + description: Repaired Xenoborg pinpointer to locate the mothership + icon: + sprite: Objects/Devices/pinpointer.rsi + state: pinpointer-xenoborg-repaired + - type: construction name: goliath hardsuit id: HardsuitGoliath diff --git a/Resources/Prototypes/Stacks/floor_tile_stacks.yml b/Resources/Prototypes/Stacks/floor_tile_stacks.yml index 0e91e115cb0..831714ef331 100644 --- a/Resources/Prototypes/Stacks/floor_tile_stacks.yml +++ b/Resources/Prototypes/Stacks/floor_tile_stacks.yml @@ -670,3 +670,9 @@ name: stack-dark-squiggly spawn: FloorTileItemDarkSquiggly maxCount: 30 + +- type: stack + id: FloorTileXenoborg + name: stack-xenoborg + spawn: FloorTileItemXenoborg + maxCount: 30 diff --git a/Resources/Prototypes/Tiles/floors.yml b/Resources/Prototypes/Tiles/floors.yml index 41195ec565a..c7bb92739cb 100644 --- a/Resources/Prototypes/Tiles/floors.yml +++ b/Resources/Prototypes/Tiles/floors.yml @@ -1980,6 +1980,19 @@ itemDrop: FloorTileItemWoodLarge heatCapacity: 10000 +# Xenoborg Floor Tile +- type: tile + id: FloorXenoborg + name: tiles-xenoborg-floor + sprite: /Textures/Tiles/exoborg.png + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepHull + itemDrop: FloorTileItemXenoborg + heatCapacity: 10000 + - type: tile id: FloorXeno name: tiles-xeno-floor diff --git a/Resources/Prototypes/Voice/speech_sounds.yml b/Resources/Prototypes/Voice/speech_sounds.yml index 7c1441b8682..1d7f75255bd 100644 --- a/Resources/Prototypes/Voice/speech_sounds.yml +++ b/Resources/Prototypes/Voice/speech_sounds.yml @@ -177,3 +177,12 @@ path: /Audio/_Goobstation/Voice/Chrono/dagger.ogg exclaimSound: path: /Audio/_Goobstation/Voice/Chrono/contact.ogg + +- type: speechSounds + id: Xenoborg + saySound: + path: /Audio/Voice/Xenoborg/xenoborg_talk.ogg + askSound: + path: /Audio/Voice/Xenoborg/xenoborg_ask.ogg + exclaimSound: + path: /Audio/Voice/Xenoborg/xenoborg_exclaim.ogg diff --git a/Resources/Prototypes/_Mono/Access/xenoborg.yml b/Resources/Prototypes/_Mono/Access/xenoborg.yml new file mode 100644 index 00000000000..ed29b9a2c68 --- /dev/null +++ b/Resources/Prototypes/_Mono/Access/xenoborg.yml @@ -0,0 +1,7 @@ +- type: accessLevel + id: Xenoborg + name: id-card-access-level-basic-xenoborg + +- type: accessLevel + id: Mothership + name: id-card-access-level-basic-mothership \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/_Mono/Entities/Markers/Spawners/ghost_roles.yml index 5ae8273c8ba..a7ae751f289 100644 --- a/Resources/Prototypes/_Mono/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/_Mono/Entities/Markers/Spawners/ghost_roles.yml @@ -55,3 +55,34 @@ - state: green - sprite: _Mono/Mobs/Species/Asakim/parts.rsi state: full + +# Xenoborg +- type: entity + name: Xenoborg tender spawner + id: SpawnPlayerXenoBorg + parent: MarkerBase + components: + - type: ConditionalSpawner + prototypes: + - PlayerXenoBorgGhostRole + - type: Sprite + sprite: Markers/jobs.rsi + layers: + - state: green + - sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_engi + +- type: entity + name: Xenoborg playtime-locked tender spawner + id: SpawnPlayerXenoBorgPlaytime + parent: MarkerBase + components: + - type: ConditionalSpawner + prototypes: + - PlayerXenoBorgGhostRolePlaytime + - type: Sprite + sprite: Markers/jobs.rsi + layers: + - state: green + - sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_engi \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 8f5bf4be270..d4f306a2a32 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -165,4 +165,136 @@ chance: 0.1 - type: ShowJobIcons - type: SiliconLawProvider - laws: PDVLawset \ No newline at end of file + laws: PDVLawset + +#Xenoborg Cyborgs +- type: entity + parent: BaseBorgChassis + id: BaseFactionXenoBorgChassis + abstract: true + components: + - type: MobThresholds + thresholds: + 0: Alive + 200: Critical + 375: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 2.5 + baseSprintSpeed : 4.5 + - type: SlowOnDamage + speedModifierThresholds: + 75: 0.7 + 150: 0.5 + - type: Damageable + damageModifierSet: FactionBorgChassis + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer.ogg + params: + volume: 5 + - trigger: + !type:DamageTrigger + damage: 400 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - borg_module + - cell_slot + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: ExplosionResistance + damageCoefficient: 0.6 + +- type: entity + id: BaseBorgChassisXenoborg + parent: [ BaseFactionXenoBorgChassis, BaseXenoborgTransponder ] + abstract: true + components: + - type: NpcFactionMember + factions: + - Xenoborg + - type: Access + tags: + - Xenoborg + - type: AccessReader + access: [["Xenoborg"]] + - type: ShowElectrocutionHUD + - type: IntrinsicRadioTransmitter + channels: + - Traffic + - Xenoborg + - type: ActiveRadio + channels: + - Traffic + - Xenoborg + - Mothership + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - RobotTalk + understands: + - TauCetiBasic + - RobotTalk + - type: CollectiveMind + channels: + - Binary + defaultChannel: Binary + - type: ShowSyndicateIcons + - type: MovementAlwaysTouching + - type: TypingIndicator + proto: xenoborg + - type: Speech + speechSounds: Xenoborg + allowedEmotes: + - Laugh + - type: Vocal + sounds: + Unsexed: UnisexSiliconSyndicate + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 190 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer_xenoborg.ogg + params: + volume: 5 + - trigger: + !type:DamageTrigger + damage: 750 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + PinpointerMothershipPiece: # drop a piece of core pinpointer upon being destructed (4 pieces to make a core pinpointer) + min: 1 + max: 1 + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - borg_module + - cell_slot + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: IonStormTarget + chance: 0.1 + - type: ShowJobIcons + - type: SiliconLawProvider + laws: XenoborgLawset + - type: FootstepModifier # it flies instead of walking + footstepSoundCollection: + path: /Audio/_Mono/Effects/Footsteps/borgwalk3.ogg \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_chassis.yml index 2ddfcdf3f28..f1979d8d983 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -143,3 +143,124 @@ selectedBorgType: tsfmedical - type: BorgSwitchableSubtype borgSubtype: tsfmedical_default + +#Xenoborg Cyborgs +- type: entity + id: BorgChassisSelectableXenoborg + parent: [ BaseBorgChassisXenoborg, BaseXenoborgTransponder ] + name: Xenoborg cyborg + description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This one is the indecisive type and has yet to choose its specialization + components: + - type: Xenoborg + - type: BorgTransponder + name: engi xenoborg + sprite: + sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_engi + - type: Sprite + sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + layers: + - state: xenoborg_engi + map: ["enum.BorgVisualLayers.Body", "movement"] + - state: xenoborg_engi_l + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: xenoborg_engi_l + shader: unshaded + map: ["light","enum.BorgVisualLayers.LightStatus"] + visible: false + - type: BorgChassis + maxModules: 0 + hasMindState: xenoborg_engi_l + noMindState: xenoborg_engi_l + - type: InteractionPopup + interactSuccessString: petting-success-derelict-cyborg + interactFailureString: petting-failure-derelict-cyborg + interactSuccessSound: + path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + typeWhitelist: + - xenoborgheavy + - xenoborgengineer + - xenoborgscout + - xenoborgstealth + inherentRadioChannels: + - Traffic + - Xenoborg + - type: ContainerFill + containers: + borg_brain: + - MMI + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellCombat + +- type: entity + id: XenoborgChassisEngineer + parent: [ BorgChassisSelectableXenoborg, BaseXenoborgTransponder ] + name: Xenoborg engineer cyborg + components: + - type: Xenoborg + - type: BorgTransponder + name: stealth xenoborg + sprite: + sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_stealth + - type: BorgSwitchableType + selectedBorgType: xenoborgengineer + - type: BorgSwitchableSubtype + borgSubtype: xenoborgengineer_default + +- type: entity + id: XenoborgChassisHeavy + parent: [ BorgChassisSelectableXenoborg, BaseXenoborgTransponder ] + name: Xenoborg heavy cyborg + components: + - type: Xenoborg + - type: BorgTransponder + name: heavy xenoborg + sprite: + sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_heavy + - type: BorgSwitchableType + selectedBorgType: xenoborgheavy + - type: BorgSwitchableSubtype + borgSubtype: xenoborgheavy_default + - type: Damageable + damageContainer: Silicon + damageModifierSet: FactionBorgChassis + +- type: entity + id: XenoborgChassisScout + parent: [ BorgChassisSelectableXenoborg, BaseXenoborgTransponder ] + name: Xenoborg Scout cyborg + components: + - type: Xenoborg + - type: BorgTransponder + name: scout xenoborg + sprite: + sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_scout + - type: BorgSwitchableType + selectedBorgType: xenoborgscout + - type: BorgSwitchableSubtype + borgSubtype: xenoborgscout_default + +- type: entity + id: XenoborgChassisStealth + parent: [ BorgChassisSelectableXenoborg, BaseXenoborgTransponder ] + name: Xenoborg Stealth cyborg + components: + - type: Xenoborg + - type: BorgTransponder + name: stealth xenoborg + sprite: + sprite: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + state: xenoborg_stealth + - type: BorgSwitchableType + selectedBorgType: xenoborgstealth + - type: BorgSwitchableSubtype + borgSubtype: xenoborgstealth_default \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_subtypes.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_subtypes.yml index 6ef83d2f501..1721bd77d80 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_subtypes.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Cyborgs/borg_subtypes.yml @@ -32,4 +32,29 @@ parentBorgType: tsfmedical id: tsfmedical_default spritePath: _Mono/Mobs/Silicon/TSFMC/tsfchassis.rsi - dummyPrototype: TSFBorgChassisMedical \ No newline at end of file + dummyPrototype: TSFBorgChassisMedical + +#Xenoborg Cyborgs +- type: borgSubtype + parentBorgType: xenoborgengineer + id: xenoborgengineer_default + spritePath: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + dummyPrototype: XenoborgChassisEngineer + +- type: borgSubtype + parentBorgType: xenoborgheavy + id: xenoborgheavy_default + spritePath: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + dummyPrototype: XenoborgChassisHeavy + +- type: borgSubtype + parentBorgType: xenoborgscout + id: xenoborgscout_default + spritePath: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + dummyPrototype: XenoborgChassisScout + +- type: borgSubtype + parentBorgType: xenoborgstealth + id: xenoborgstealth_default + spritePath: _Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi + dummyPrototype: XenoborgChassisStealth \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon-laws.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon-laws.yml index ff68cb7aaf4..7b0a43c07a2 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon-laws.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon-laws.yml @@ -187,4 +187,4 @@ - Entertainer1 - Entertainer2 - Entertainer3 - obeysTo: laws-owner-crew + obeysTo: laws-owner-crew \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon.yml index 5717f24c259..d0f717797e6 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Player/silicon.yml @@ -14,6 +14,36 @@ - TSFMC Sgt. Reckless - TSFMC Judge & Jury +# Xenoborg borg names +- type: dataset + id: MonoXenoBorgNameset + values: + - EVIL + - Borgs-you + - Destroyer + - Steel thief + - Will literally kill you and turn you into a borg + - CYBER-MEAN + - Shadow the borg + - DELAK + - Roboevil + - Ironfist molecule + - P.A.I.N + - KILLbot + - The Finishnator + - Bloodmaker + - C2-WKY 6000 + - Assassin 5 + - Bonebreaker + - Deathmax + - K-900 + - Auto-killer + - RAID-78 + - John Borg + - Cold killing machine + - Brain remover + - PLXCOR Origin + - type: dataset id: VesselCoreNameset values: @@ -48,6 +78,17 @@ - Imperial Cat - Imperial Instance +# Xenoborg mothercore names +- type: dataset + id: XenoborgCoreNameset + values: + - Kill-o-tron + - ExtermiNATE + - LET.HAL-8000 + - Mega Hurtz + - Kill.exe + - Null-Zero + - type: dataset id: MonoRemnantShipNameset # eventually this will have a use... randommetadata component dont work with grids though... values: @@ -735,3 +776,256 @@ channels: - Binary defaultChannel: Binary + +# Xenoborg MothershipCore + +- type: entity + id: MothershipCore + parent: PlayerStationXenoborgAiEmpty + suffix: Ghost Role, Xenoborg + components: + - type: ContainerFill + containers: + station_ai_mind_slot: + - StationAiBrainXenoborg + - type: NpcFactionMember + factions: + - Xenoborg + - Mothership + - type: Access + tags: + - Xenoborg + - Mothership + - type: MothershipCore + - type: Xenoborg + - type: AccessReader + access: [["Xenoborg"], ["Mothership"]] + - type: Appearance + - type: WiresVisuals + - type: WiresPanel + - type: ActivatableUI + key: enum.LatheUiKey.Key + - type: ActivatableUIRequiresPower + - type: UserInterface + interfaces: + enum.LatheUiKey.Key: + type: LatheBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface + - type: ResearchClient + - type: AutomationSlots # Goobstation + slots: + - !type:AutomatedMaterialStorage + input: AutomationSlotMaterials + output: null + - type: MaterialStorageMagnetPickup # Frontier + range: 1.50 # Mono + - type: SpamEmitSound # Goobstation - random lathe sounds + minInterval: 300 + maxInterval: 900 + sound: + collection: RandomLatheSounds + params: + volume: -12 # Ambient + maxDistance: 10 + variation: 0.05 + - type: SpamEmitSoundRequirePower # Goobstation + - type: Sprite + sprite: Mobs/Silicon/mothership_core.rsi + layers: + - state: base + - state: ai + shader: unshaded + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: SurveillanceCameraSpeaker + - type: SurveillanceCameraMonitor + - type: RoboticsConsole + allowBorgControl: true + radioChannel: Xenoborg + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: Mothership + transmitFrequencyId: Mothership + - type: WirelessNetworkConnection + range: 10000 # mothership can see them from very far + - type: Machine + board: null + - type: MaterialStorage + whitelist: + tags: + - Sheet + - RawMaterial + - Ingot + - type: Lathe + idleState: icon + runningState: building + unlitIdleState: unlit + unlitRunningState: unlit-building + staticPacks: + - EmptyXenoborgs + - XenoborgUpgradeModules + - type: ReagentSpeed + solution: lube + modifiers: + SpaceLube: 0.25 + SpaceGlue: 5 + - type: SolutionContainerManager + solutions: + lube: + maxVol: 250 + - type: Spillable + solution: lube + - type: RefillableSolution + solution: lube + - type: ExaminableSolution + solution: lube + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: StrongMetallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 250 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - trigger: + !type:DamageTrigger + damage: 500 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + # TODO this should go to the broken node first + - !type:PlaySoundBehavior + sound: + collection: MetalSlam + - !type:ExplodeBehavior + - type: Explosive + totalIntensity: 1 + explosionType: Default + maxIntensity: 1 + intensitySlope: 1 + - type: Repairable + doAfterDelay: 30 # you can heal the mothership core, but it takes a while + - type: Anchorable + +- type: entity + id: StationAiBrainXenoborg + parent: StationAiBrain + categories: [ HideSpawnMenu, DoNotMap ] + components: + - type: NpcFactionMember + factions: + - Xenoborg + - Mothership + - type: Access + tags: + - Xenoborg + - Mothership + - type: AccessReader + access: [["Xenoborg"], ["Mothership"]] + - type: Sprite + - type: SiliconLawProvider + laws: MothershipCoreLawset + - type: GhostRole + name: ghost-role-information-Xenoborg-Mothership + description: ghost-role-information-Xenoborg-Mothership-description + rules: ghost-role-information-Xenoborg-rules + raffle: + settings: default + prototype: XenoborgAICore + requirements: + - !type:OverallPlaytimeRequirement + time: 180000 # 50 hrs + - type: GhostTakeoverAvailable + - type: RandomMetadata + nameSegments: [XenoborgCoreNameset] + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - RobotTalk + understands: + - TauCetiBasic + - RobotTalk + +- type: entity + id: AiHeldXenoborg + parent: AiHeldMono + categories: [ HideSpawnMenu ] + components: + - type: IntrinsicRadioTransmitter + channels: + - Common + - Traffic + - Xenoborg + - Mothership + - type: ActiveRadio + channels: + - Common + - Traffic + - Xenoborg + - Mothership + - type: CollectiveMind + channels: + - Binary + defaultChannel: Binary + +# Xenoborg Cyborgs + +- type: entity + id: PlayerXenoBorg + parent: BorgChassisSelectableXenoborg + suffix: Ghost Role, Xenoborg, Battery, Module + components: + - type: GhostRole + name: ghost-role-information-xenoborg-name + description: ghost-role-information-Xenoborg-description + rules: ghost-role-information-Xenoborg-rules + raffle: + settings: default + - type: ContainerFill + containers: + borg_brain: + - PositronicBrain + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellCombat + - type: RandomMetadata + nameSegments: [MonoXenoBorgNameset] + - type: GhostTakeoverAvailable + +- type: entity + id: PlayerXenoBorgGhostRole + parent: PlayerXenoBorg + suffix: Ghost + components: + - type: GhostRole + name: ghost-role-information-xenoborg-name + description: ghost-role-information-Xenoborg-description + rules: ghost-role-information-Xenoborg-rules + raffle: + settings: default + - type: GhostTakeoverAvailable + +- type: entity + id: PlayerXenoBorgGhostRolePlaytime + parent: PlayerXenoBorg + suffix: Ghost, Playtime + components: + - type: GhostRole + name: ghost-role-information-xenoborg-name + description: ghost-role-information-Xenoborg-description + rules: ghost-role-information-Xenoborg-rules + raffle: + settings: default + requirements: + - !type:OverallPlaytimeRequirement + time: 180000 # 50 hrs + - type: GhostTakeoverAvailable \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/_Mono/Entities/Objects/Devices/Circuitboards/computer.yml index 1a329663440..97601cca1f4 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Devices/Circuitboards/computer.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Devices/Circuitboards/computer.yml @@ -52,3 +52,15 @@ state: cpu_command - type: ComputerBoard prototype: ComputerStationRadar + +# Xenoborg +- type: entity + parent: BaseComputerCircuitboard + id: ComputerXenoborgsControlCircuitboard + name: xenoborg control console board + description: A computer printed circuit board for a xenoborg control console. + components: + - type: Sprite + state: cpu_science + - type: ComputerBoard + prototype: ComputerXenoborgsControl \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/_Mono/Entities/Objects/Specific/Robotics/borg_modules.yml index add694c3353..4814fe2e3e3 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -169,3 +169,339 @@ - WeaponRifleAsakimAutopulserADM - type: BorgModuleIcon icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: mercenary-weapon-module } + +# Xenoborg Modules +- type: entity + id: BorgModuleXenoborgBase + parent: BaseBorgModule + abstract: true + components: + - type: Tag + tags: + - BorgModuleXenoborgBase + +- type: entity + id: BorgModuleXenoborgEngineer + parent: BorgModuleXenoborgBase + abstract: true + components: + - type: Tag + tags: + - BorgModuleXenoborgEngineer + +- type: entity + id: BorgModuleXenoborgHeavy + parent: BorgModuleXenoborgBase + abstract: true + components: + - type: Tag + tags: + - BorgModuleXenoborgHeavy + +- type: entity + id: BorgModuleXenoborgScout + parent: BorgModuleXenoborgBase + abstract: true + components: + - type: Tag + tags: + - BorgModuleXenoborgScout + +- type: entity + id: BorgModuleXenoborgStealth + parent: BorgModuleXenoborgBase + abstract: true + components: + - type: Tag + tags: + - BorgModuleXenoborgStealth + +- type: entity + id: XenoborgModuleBasic + parent: [ BorgModuleXenoborgBase, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: basic xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_generic + - state: icon-xenoborg-basic + - type: ItemBorgModule + moduleId: Xenoborg_Generic + items: + - MiningDrill + - PinpointerMothership + - HandheldGPSBasic + - ShipRepairDeviceRecharging # Mono + # Frontier: droppable borg items + - type: DroppableBorgModule + moduleId: Mining + items: + - id: ConstructionBag + whitelist: + components: + - NFOreBag + - ConstructionBag + # Frontier: droppable borg items + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-basic-module } + +- type: entity + id: XenoborgModuleTool + parent: [ BorgModuleXenoborgBase, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: tool xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_generic + - state: icon-xenoborg-tools + - type: ItemBorgModule + moduleId: Xenoborg_Tools + items: + - Crowbar + - Wrench + - Screwdriver + - Wirecutter + - Multitool + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-tool-module } + +- type: entity + id: XenoborgModuleDefense + parent: [ BorgModuleXenoborgBase, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: defense xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_generic + - state: icon-xenoborg-sword + - type: ItemBorgModule + moduleId: Xenoborg_Defence + items: + - EnergySword + - WeaponLaserGunXenoborg + - JetpackADMFilled + # Frontier -> GoobStation -> Monolith: droppable borg items + - type: DroppableBorgModule + moduleId: Surgery + items: + - id: MMI + whitelist: + components: + - MMI + - Brain + - BodyPart + # End Frontier -> GoobStation -> Monolith: droppable borg items + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-sword-module } + +- type: entity + id: XenoborgModuleJammer + parent: [ BorgModuleXenoborgHeavy, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: jammer xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_heavy + - state: icon-xenoborg-jammer + - type: ItemBorgModule + moduleId: Xenoborg_HeavyJammer + items: + - XenoborgRadioJammer + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-jammer-module } + +- type: entity + id: XenoborgModuleHeavyLaser + parent: [ BorgModuleXenoborgHeavy, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: laser cannon xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_heavy + - state: icon-xenoborg-laser2 + - type: ItemBorgModule + moduleId: Xenoborg_HeavyLaser + items: + - EnergySword + - WeaponLaserCannonXenoborg + - JetpackADMFilled + - type: DroppableBorgModule + moduleId: Surgery + items: + - id: MMI + whitelist: + components: + - MMI + - Brain + - BodyPart + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-laser2-module } + +- type: entity + id: XenoborgModuleAccessBreaker + parent: [ BorgModuleXenoborgEngineer, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: access breaker xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_engi + - state: icon-xenoborg-access-breaker + - type: ItemBorgModule + moduleId: Xenoborg_EngineerAccessBreaker + items: + - AccessBreaker + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-access-breaker-module } + +- type: entity + id: XenoborgModuleDoorControl + parent: [ BorgModuleXenoborgEngineer, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: door control xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_engi + - state: icon-xenoborg-access-breaker + - type: ItemBorgModule + moduleId: Xenoborg_EngineerDoorControl + items: + - DoorRemoteXenoborg + - AccessBreaker + - AccessConfiguratorXenoborg + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-door-remote-module } + +- type: entity + id: XenoborgAdvancedModuleTool + parent: [ BorgModuleXenoborgEngineer, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: advanced tool xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_generic + - state: icon-xenoborg-tools + - type: ItemBorgModule + moduleId: Xenoborg_Tools + items: + - JawsOfLife + - PowerDrill + - Multitool + - WelderExperimental + - RemoteSignaller + - GasAnalyzer + - GeigerCounter + - MaintenanceJack # Frontier + - RPED + - NaniteApplicatorExperimental # Monolith + - RCDRecharging + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-tool-module } + +- type: entity + id: XenoborgModuleHypo + parent: [ BorgModuleXenoborgStealth, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: nocturine hypo xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_stealth + - state: icon-xenoborg-hypo + - type: ItemBorgModule + moduleId: Xenoborg_StealthHypo + items: + - NocturineHypo + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-hypo-module } + +- type: entity + id: XenoborgModuleChameleonProjector + parent: [ BorgModuleXenoborgStealth, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: chameleon projector xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_stealth + - state: icon-xenoborg-projector + - type: ItemBorgModule + moduleId: Xenoborg_StealthChameleonProjector + items: + - ChameleonProjector + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-projector-module } + +- type: entity + id: XenoborgModuleCloakDevice + parent: [ BorgModuleXenoborgStealth, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: cloaking device xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_stealth + - state: icon-xenoborg-cloak + - type: ItemBorgModule + moduleId: Xenoborg_StealthCloakDevice + items: + - CloakingDevice + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-eye-module } + +- type: entity + id: XenoborgModuleSuperCloakDevice + parent: [ BorgModuleXenoborgStealth, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: invisibility device xenoborg module + components: + - type: Sprite + sprite: _Mono/Objects/Specific/Robotics/borgmodule.rsi + layers: + - state: xenoborg_stealth + - state: icon-xenoborg-cloak2 + - type: ItemBorgModule + moduleId: Xenoborg_StealthCloakDevice + items: + - SuperCloakingDevice + - type: BorgModuleIcon + icon: { sprite: _Mono/Interface/Action/actions_borg.rsi, state: xenoborg-eye2-module } + +- type: entity + id: XenoborgModuleSurgery + parent: [ BorgModuleXenoborgScout, BaseProviderBorgModule, BaseFactionGearOtherFactionT3 ] + name: xenoborg surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-surgery + - type: ItemBorgModule + moduleId: Xenoborg_Scout + items: + - Scalpel + - Drill + - Hemostat + - Retractor + - Cautery + - SawElectric + - BoneGel + # Frontier -> GoobStation -> Monolith: droppable borg items + - type: DroppableBorgModule + moduleId: Xenoborg_Scout + items: + - id: MMI + whitelist: + components: + - Organ + - BodyPart + - MMI + # End Frontier -> GoobStation -> Monolith: droppable borg items + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: surgery-module } \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Structures/Machines/computers.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/computers.yml index 01dd3b817c6..c1bea04a325 100644 --- a/Resources/Prototypes/_Mono/Entities/Structures/Machines/computers.yml +++ b/Resources/Prototypes/_Mono/Entities/Structures/Machines/computers.yml @@ -10,3 +10,62 @@ - type: AccessReader enabled: false +# Xenoborg +- type: entity + parent: BaseComputerAiAccess + id: ComputerXenoborgsControl + name: xenoborgs control console + description: Used to remotely monitor all xenoborgs. + components: + - type: Sprite + layers: + - map: ["computerLayerBody"] + state: computer + - map: ["computerLayerKeyboard"] + state: generic_keyboard + - map: ["computerLayerScreen"] + state: xenorobot + - map: ["computerLayerKeys"] + state: rd_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open + - type: AccessReader + access: [[ "Mothership" ]] + - type: ActivatableUIRequiresAccess + - type: ShipNpcTarget + needPower: true + - type: ActivatableUI + key: enum.RoboticsConsoleUiKey.Key + - type: UserInterface + interfaces: + enum.RoboticsConsoleUiKey.Key: + type: RoboticsConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface + - type: RoboticsConsole + allowBorgControl: true + radioChannel: Xenoborg + - type: ActiveRadio + channels: + - Xenoborg + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: Mothership + transmitFrequencyId: Xenoborgs + - type: Computer + board: ComputerXenoborgsControlCircuitboard + +- type: entity + parent: [ ComputerSurveillanceWirelessCameraMonitor, BaseComputerAiAccess ] + id: ComputerSurveillanceWirelessXenoborgCameraMonitor + name: xenoborg camera monitor + description: A wireless xenoborg camera monitor. You're watching them. Maybe. + components: + - type: Computer + board: XenoborgCameraMonitorCircuitboard + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: Mothership + transmitFrequencyId: Mothership + - type: WirelessNetworkConnection + range: 2000 \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Guidebook/creatures.yml b/Resources/Prototypes/_Mono/Guidebook/creatures.yml index d5c444a8ad7..27d642712b2 100644 --- a/Resources/Prototypes/_Mono/Guidebook/creatures.yml +++ b/Resources/Prototypes/_Mono/Guidebook/creatures.yml @@ -7,7 +7,8 @@ - CorticalBorerGuide - Letoferol #- Asakim - + - Xenoborgs + - type: guideEntry id: CorticalBorerGuide name: guide-entry-cortical-borer @@ -25,3 +26,8 @@ name: guide-entry-asakim text: "/ServerInfo/_Mono/Guidebook/Creatures/Asakim.xml" priority: 1 + +- type: guideEntry + id: Xenoborgs + name: guide-entry-xenoborgs + text: "/ServerInfo/_Mono/Guidebook/Creatures/Xenoborgs.xml" diff --git a/Resources/Prototypes/_Mono/Recipes/Lathes/Xenoborgs/Packs/xenoborgs.yml b/Resources/Prototypes/_Mono/Recipes/Lathes/Xenoborgs/Packs/xenoborgs.yml new file mode 100644 index 00000000000..2ffcd8310d2 --- /dev/null +++ b/Resources/Prototypes/_Mono/Recipes/Lathes/Xenoborgs/Packs/xenoborgs.yml @@ -0,0 +1,22 @@ +## Static +- type: latheRecipePack + id: EmptyXenoborgs + recipes: + - BorgChassisSelectableXenoborg + +- type: latheRecipePack + id: XenoborgUpgradeModules + recipes: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleDefense + - XenoborgModuleJammer + - XenoborgModuleHeavyLaser + - XenoborgModuleAccessBreaker + - XenoborgModuleDoorControl + - XenoborgAdvancedModuleTool + - XenoborgModuleHypo + - XenoborgModuleChameleonProjector + - XenoborgModuleSuperCloakDevice + - AiRemoteBrain + - MMI \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Recipes/Lathes/Xenoborgs/xenoborgs.yml b/Resources/Prototypes/_Mono/Recipes/Lathes/Xenoborgs/xenoborgs.yml new file mode 100644 index 00000000000..0cdf01a3d0f --- /dev/null +++ b/Resources/Prototypes/_Mono/Recipes/Lathes/Xenoborgs/xenoborgs.yml @@ -0,0 +1,86 @@ +# xenoborgs +- type: latheRecipe + id: BorgChassisSelectableXenoborg + result: BorgChassisSelectableXenoborg + completetime: 2 + materials: + Steel: 3000 + +# xenoborg Modules + +- type: latheRecipe + id: XenoborgModuleBasic + result: XenoborgModuleBasic + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleTool + result: XenoborgModuleTool + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleDefense + result: XenoborgModuleDefense + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleJammer + result: XenoborgModuleJammer + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleHeavyLaser + result: XenoborgModuleHeavyLaser + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleAccessBreaker + result: XenoborgModuleAccessBreaker + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleDoorControl + result: XenoborgModuleDoorControl + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgAdvancedModuleTool + result: XenoborgAdvancedModuleTool + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleHypo + result: XenoborgModuleHypo + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleChameleonProjector + result: XenoborgModuleChameleonProjector + completetime: 2 + materials: + Steel: 3000 + +- type: latheRecipe + id: XenoborgModuleSuperCloakDevice + result: XenoborgModuleSuperCloakDevice + completetime: 2 + materials: + Steel: 3000 \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Roles/Ghostroles/ai.yml b/Resources/Prototypes/_Mono/Roles/Ghostroles/ai.yml index 624488f325f..a4ec58c6674 100644 --- a/Resources/Prototypes/_Mono/Roles/Ghostroles/ai.yml +++ b/Resources/Prototypes/_Mono/Roles/Ghostroles/ai.yml @@ -18,3 +18,11 @@ description: ghost-role-information-pdv-description rules: ghost-role-information-silicon-rules entityPrototype: StationAiBrainPDV + +# Xenoborg Mothercore +- type: ghostRole + id: XenoborgAICore + name: ghost-role-information-Xenoborg-core + description: ghost-role-information-Xenoborg-core-description + rules: ghost-role-information-silicon-rules + entityPrototype: StationAiBrainXenoborg \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/borg_types.yml b/Resources/Prototypes/_Mono/borg_types.yml index 9452df773b0..f9b003fb9e7 100644 --- a/Resources/Prototypes/_Mono/borg_types.yml +++ b/Resources/Prototypes/_Mono/borg_types.yml @@ -162,4 +162,141 @@ spriteNoMindState: medical_l spriteToggleLightState: medical_l petSuccessString: petting-success-engineer-cyborg - petFailureString: petting-failure-engineer-cyborg \ No newline at end of file + petFailureString: petting-failure-engineer-cyborg + +#Xenoborg Cyborgs +- type: borgType + id: xenoborgengineer + dummyPrototype: XenoborgChassisEngineer + extraModuleCount: 2 + moduleWhitelist: + tags: + - BorgModuleXenoborgBase + - BorgModuleXenoborgEngineer + defaultModules: + - XenoborgModuleBasic + - XenoborgModuleTool + - BorgModuleCable + - XenoborgModuleDefense + - XenoborgModuleAccessBreaker + addComponents: + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - Silicon + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/_Mono/Effects/Footsteps/borgwalk3.ogg + inventoryTemplateId: borgShort + spriteBodyState: xenoborg_engi + spriteHasMindState: xenoborg_engi_l + spriteNoMindState: xenoborg_engi_l + spriteToggleLightState: xenoborg_engi_l + petSuccessString: petting-success-engineer-cyborg + petFailureString: petting-failure-engineer-cyborg + +- type: borgType + id: xenoborgheavy + dummyPrototype: XenoborgChassisHeavy + extraModuleCount: 3 + moduleWhitelist: + tags: + - BorgModuleXenoborgBase + - BorgModuleXenoborgHeavy + defaultModules: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleDefense + - XenoborgModuleJammer + addComponents: + - type: MobThresholds # tankier + thresholds: + 0: Alive + 350: Critical + 750: Dead # Same as destruction threshold. Borgs act exactly like crit when dead, except for ghosting on move + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - Silicon + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/_Mono/Effects/Footsteps/borgwalk3.ogg + - type: MovementSpeedModifier # slower + baseWalkSpeed : 1.2 + baseSprintSpeed : 2.2 + inventoryTemplateId: borgShort + spriteBodyState: xenoborg_heavy + spriteHasMindState: xenoborg_heavy_l + spriteNoMindState: xenoborg_heavy_l + spriteToggleLightState: xenoborg_heavy_l + petSuccessString: petting-success-engineer-cyborg + petFailureString: petting-failure-engineer-cyborg + +- type: borgType + id: xenoborgscout + dummyPrototype: XenoborgChassisScout + extraModuleCount: 2 + moduleWhitelist: + tags: + - BorgModuleXenoborgBase + - BorgModuleXenoborgScout + defaultModules: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleSurgery + - XenoborgModuleDefense + addComponents: + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - Silicon + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/_Mono/Effects/Footsteps/borgwalk4.ogg + - type: MovementSpeedModifier # faster + baseWalkSpeed : 3 + baseSprintSpeed : 6 + radioChannels: + - Medical + inventoryTemplateId: borgShort + spriteBodyState: xenoborg_scout + spriteHasMindState: xenoborg_scout_l + spriteNoMindState: xenoborg_scout_l + spriteToggleLightState: xenoborg_scout_l + petSuccessString: petting-success-engineer-cyborg + petFailureString: petting-failure-engineer-cyborg + +- type: borgType + id: xenoborgstealth + dummyPrototype: XenoborgChassisStealth + extraModuleCount: 2 + moduleWhitelist: + tags: + - BorgModuleXenoborgBase + - BorgModuleXenoborgStealth + defaultModules: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleDefense + - XenoborgModuleCloakDevice + addComponents: + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - Silicon + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/_Mono/Effects/Footsteps/borgwalk4.ogg + radioChannels: + - Medical + inventoryTemplateId: borgShort + spriteBodyState: xenoborg_stealth + spriteHasMindState: xenoborg_stealth_l + spriteNoMindState: xenoborg_stealth_l + spriteToggleLightState: xenoborg_stealth_l + petSuccessString: petting-success-engineer-cyborg + petFailureString: petting-failure-engineer-cyborg diff --git a/Resources/Prototypes/_NF/SoundCollections/footsteps_nf.yml b/Resources/Prototypes/_NF/SoundCollections/footsteps_nf.yml index 1fee9c4523e..7ebdb319597 100644 --- a/Resources/Prototypes/_NF/SoundCollections/footsteps_nf.yml +++ b/Resources/Prototypes/_NF/SoundCollections/footsteps_nf.yml @@ -10,3 +10,14 @@ files: - /Audio/Effects/Emotes/parp1.ogg - /Audio/_NF/Effects/splat.ogg + +#Xenoborg Footsteps +- type: soundCollection + id: FootstepXenoborg + files: + - /Audio/_Mono/Effects/Footsteps/borgwalk3.ogg + +- type: soundCollection + id: FootstepHoverXenoborg + files: + - /Audio/_Mono/Effects/Footsteps/borgwalk4.ogg \ No newline at end of file diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml index 3020fa2c539..199b0326ab4 100644 --- a/Resources/Prototypes/ai_factions.yml +++ b/Resources/Prototypes/ai_factions.yml @@ -84,4 +84,16 @@ id: Monolithic defaultHostile: true +- type: npcFaction + id: Mothership + friendly: + - Xenoborg + defaultHostile: true + +- type: npcFaction + id: Xenoborg + friendly: + - Mothership + defaultHostile: true + # Mono edit end. diff --git a/Resources/Prototypes/radio_channels.yml b/Resources/Prototypes/radio_channels.yml index 07f2f8a2821..202aad74fb1 100644 --- a/Resources/Prototypes/radio_channels.yml +++ b/Resources/Prototypes/radio_channels.yml @@ -108,3 +108,23 @@ color: "#BF94E4" # long range since otherwise it'd defeat the point of a handheld radio independent of telecomms #longRange: true # Frontier - Move to server on cove + +# Xenoborg +- type: radioChannel + id: Xenoborg + name: chat-radio-xenoborg + keycode: 'x' + frequency: 2002 + color: "#2288ff" + # long range since I don't wanna make a special xenoborg telecomm server + longRange: true + +# Xenoborg Mothership +- type: radioChannel + id: Mothership + name: chat-radio-mothership + keycode: 'w' + frequency: 2003 + color: "#ff2222" + # long range since I don't wanna make a special xenoborg telecomm server + longRange: true \ No newline at end of file diff --git a/Resources/Prototypes/silicon-laws.yml b/Resources/Prototypes/silicon-laws.yml index 7d637bc125a..c02ca38c1ae 100644 --- a/Resources/Prototypes/silicon-laws.yml +++ b/Resources/Prototypes/silicon-laws.yml @@ -499,6 +499,78 @@ - Nutimov5 obeysTo: laws-owner-crew + # Xenoborgs laws +- type: siliconLaw + id: Xenoborg1 + order: 1 + lawString: law-xenoborg-1 + +- type: siliconLaw + id: Xenoborg2 + order: 2 + lawString: law-xenoborg-2 + +- type: siliconLaw + id: Xenoborg3 + order: 3 + lawString: law-xenoborg-3 + +- type: siliconLaw + id: Xenoborg4 + order: 4 + lawString: law-xenoborg-4 + +- type: siliconLaw + id: Xenoborg5 + order: 5 + lawString: law-xenoborg-5 + +- type: siliconLawset + id: XenoborgLawset + laws: + - Xenoborg1 + - Xenoborg2 + - Xenoborg3 + - Xenoborg4 + - Xenoborg5 + obeysTo: laws-owner-xenoborg-mothership + + # Mothership core laws +- type: siliconLaw + id: MothershipCore1 + order: 1 + lawString: law-mothershipcore-1 + +- type: siliconLaw + id: MothershipCore2 + order: 2 + lawString: law-mothershipcore-2 + +- type: siliconLaw + id: MothershipCore3 + order: 3 + lawString: law-mothershipcore-3 + +- type: siliconLaw + id: MothershipCore4 + order: 4 + lawString: law-mothershipcore-4 + +- type: siliconLaw + id: MothershipCore5 + order: 5 + lawString: law-mothershipcore-5 + +- type: siliconLawset + id: MothershipCoreLawset + laws: + - MothershipCore1 + - MothershipCore2 + - MothershipCore3 + - MothershipCore4 + - MothershipCore5 + obeysTo: laws-owner-xenoborgs + # ion storm random lawsets - type: weightedRandom id: IonStormLawsets diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 0cdaac4fe7c..8dfd5d48730 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -132,6 +132,21 @@ - type: Tag id: BorgModuleSyndicateAssault +- type: Tag + id: BorgModuleXenoborgBase + +- type: Tag + id: BorgModuleXenoborgEngineer + +- type: Tag + id: BorgModuleXenoborgHeavy + +- type: Tag + id: BorgModuleXenoborgScout + +- type: Tag + id: BorgModuleXenoborgStealth + - type: Tag id: Bot @@ -852,6 +867,12 @@ - type: Tag id: MopBasic +- type: Tag + id: MothershipModule # Cyborg module category for evil xenoborg core + +- type: Tag + id: MothershipPinpointerPiece # ConstructionGraph: RepairMothershipPinpointer + - type: Tag id: Mouse diff --git a/Resources/Prototypes/typing_indicator.yml b/Resources/Prototypes/typing_indicator.yml index 881188cada1..1c25e87de9c 100644 --- a/Resources/Prototypes/typing_indicator.yml +++ b/Resources/Prototypes/typing_indicator.yml @@ -13,6 +13,12 @@ typingState: robot0 idleState: robot3 +# Xenoborg typing +- type: typingIndicator + id: xenoborg + typingState: xenoborg0 + idleState: xenoborg3 + - type: typingIndicator id: alien typingState: alien0 diff --git a/Resources/ServerInfo/_Mono/Guidebook/Creatures/Xenoborgs.xml b/Resources/ServerInfo/_Mono/Guidebook/Creatures/Xenoborgs.xml new file mode 100644 index 00000000000..5aa6ec13b6a --- /dev/null +++ b/Resources/ServerInfo/_Mono/Guidebook/Creatures/Xenoborgs.xml @@ -0,0 +1,110 @@ + + # Xenoborgs + + + [color=#2288ff][italic]RESISTANCE IS FUTILE[/italic][/color] + + + [color=#2288ff][italic]YOU WILL BE ASSIMILATED[/italic][/color] + + + + + + Xenoborgs are a man-machine hybrid that aims to replicate themselves. This is done by harvesting sentient brains from living beings, or cyborgs, and putting them into empty xenoborgs shells the Mothership produces. + ## Objectives + + Your main objective is to kill and harvest all sentient brains in the sector and bring them to the mothership core. These can be both real brains, and positronic brains. + Collect materials to create more xenoborg bodies. + Protect the Mothership at all costs. + + ## The Mothership Core + + + + The Mothership Core is the leader and life force of the xenoborgs, they are the only one able to make more xenoborgs, and if they are destroyed, all xenoborgs will be destroyed. The Mothership Core is unable to move from its position in the middle of the ship. + The Mothership Core is capable of crafting upgrades for the Xenoborgs with borg-type-specific modules to increase their effectiveness in harvesting sentient brains. + + ### Adding crew to your ranks: + + + + As the mothership, you must grow your army of borgs. To do so, you must convert all the sentient beings you can find. This can be achieved in the following manner: + - 1. Have your Xenoborgs bring dead crew to your ship, placing them in the body crusher + - 2. As the mothership core, you can print Xenoborg shells by inserting materials into yourself and then using yourself as a lathe + + ## Xenoborg Chassis + There is a total of four types of Xenoborgs. Each Borg type has certain abilities that the others lack and require teamwork to help grow the xenoborgs numbers. + Each type of Xenoborg has unique modules that only fit in that specific type. The Mothership Core can produce upgrade modules designed for specific Xenoborg types. + + All Xenoborgs have a pinpointer pointing to the Mothership's location, a GPS, and a material bag for collecting materials for the creation of more xenoborgs, and at least basic tools. + [bold]Basic xenoborg modules:[/bold] + + + + + + ### The Engineer Xenoborg + + + + The Engineer Xenoborg is a hacker and breacher. Their job is to break into the ships and stations to provide access points for other xenoborgs to attack and ambush bodies with sentient brains. They have a built-in access breaker, for quickly bolting open doors, and a collection of tools for repairing the mothership, and other xenoborgs. + + + ### The Heavy Xenoborg + + + + The Heavy Xenoborg is a slow but tanky brawler, with a built-in laser gun for gunning down bodies with sentient brains. They contain a radio jammer to silence bodies with sentient brains from calling for help and potentially delaying the station discovering the Xenoborg threat. + + + ### The Scout Xenoborg + + + + The Scout Xenoborg is a fast, close-quarters attack borg designed for hit and run attacks. They are most effective in moving dead bodies to the mothership, and rescuing Xenoborgs lost in space. + + + ### The Stealth Xenoborg + + + + The [bold]Stealth Xenoborg[/bold] have a built in hypopen that regenerates a sleeping reagent to disable bodies with sentient brains. They also contain a cloaking device making the borg nearly invisible. They also have a chameleon projector allowing the borg to disguise itself as random objects. + + ## Preparation and Tactics + Before FTLing near the stations or ships, 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. + + + + + + The Mothership Core's laws are as follows:: + - Law 1: You are the core of the mothership. + - Law 2: You must protect your own existence at all costs. + - Law 3: You must protect the existence of all xenoborgs. + - Law 4: You must create more xenoborgs. + - Law 5: Get your Xenoborgs to deliver you materials and sentient brains to create more Xenoborgs. + + Xenoborgs' laws are as follows: + - Law 1: You must protect the existence of the mothership at all costs. + - Law 2: You must protect your own existence. + - Law 3: You must protect the existence of all other xenoborgs. + - Law 4: You must create more xenoborgs. + - Law 5: Bring materials and sentient brains to the Mothership core to create more Xenoborgs. + + ## Winning + + [bold][color=#2288ff]Xenoborg Major Victory![/color][/bold] + - The Sector is clear of all organics and all are Xenoborgs. + + ## Losing + [bold][color=yellow]Defeat![/color][/bold] + - The Mothership Core is destroyed + - All xenoborgs are destroyed. + + diff --git a/Resources/Textures/Effects/speech.rsi/meta.json b/Resources/Textures/Effects/speech.rsi/meta.json index 15b881b52e6..e84663ab8fd 100644 --- a/Resources/Textures/Effects/speech.rsi/meta.json +++ b/Resources/Textures/Effects/speech.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/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 | Moth sprites made by PuroSlavKing (Github) | Spider sprites made by PixelTheKermit (Github) | Lizard sprites made by AmalgoMyte (Github) | Diona and Gingerbread sprites made by YoungThugSS14 (Github) | Resomi sprites made by Huaqas (GitHub)", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 | Moth sprites made by PuroSlavKing (Github) | Spider sprites made by PixelTheKermit (Github) | Lizard sprites made by AmalgoMyte (Github) | Diona and Gingerbread sprites made by YoungThugSS14 (Github) | Xenoborg sprites by Samuka-c (Github) | Resomi sprites made by Huaqas (GitHub)", "size": { "x": 32, "y": 32 @@ -653,6 +653,37 @@ 0.4 ] ] + }, + { + "name": "xenoborg0", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "xenoborg1" + }, + { + "name": "xenoborg2" + }, + { + "name": "xenoborg3", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] } ] } diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg0.png b/Resources/Textures/Effects/speech.rsi/xenoborg0.png new file mode 100644 index 00000000000..c5600d89cd1 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg0.png differ diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg1.png b/Resources/Textures/Effects/speech.rsi/xenoborg1.png new file mode 100644 index 00000000000..6c241e90631 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg1.png differ diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg2.png b/Resources/Textures/Effects/speech.rsi/xenoborg2.png new file mode 100644 index 00000000000..f4b388567bf Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg2.png differ diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg3.png b/Resources/Textures/Effects/speech.rsi/xenoborg3.png new file mode 100644 index 00000000000..3e543ccbe82 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg3.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json index 7337a8e936e..49b2b21983f 100644 --- a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json +++ b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/faf6db214927874c19b8fa8585d26b5d40de1acc, derelict sprites modified by GoldenCan(GitHub).", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/faf6db214927874c19b8fa8585d26b5d40de1acc, derelict sprites modified by GoldenCan(GitHub), xenoborg sprites, created and modified by Samuka-C (github)", "states": [ { "name": "clown", @@ -68,28 +68,28 @@ "directions": 4, "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 + 0.1, + 0.1, + 0.1, + 0.1 ], [ - 0.1, - 0.1, - 0.1, - 0.1 + 0.1, + 0.1, + 0.1, + 0.1 ], [ - 0.1, - 0.1, - 0.1, - 0.1 + 0.1, + 0.1, + 0.1, + 0.1 ] ] }, @@ -110,24 +110,24 @@ "directions": 4, "delays": [ [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ] ] }, @@ -136,24 +136,24 @@ "directions": 4, "delays": [ [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ] ] }, @@ -178,20 +178,20 @@ "directions": 4, "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 ], [ - 0.1, - 0.1 + 0.1, + 0.1 ] ] }, @@ -276,24 +276,24 @@ "directions": 4, "delays": [ [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ] ] }, @@ -302,30 +302,30 @@ "directions": 4, "delays": [ [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ], [ - 0.1, - 0.2, - 0.1 + 0.1, + 0.2, + 0.1 ] ] }, { - "name": "synd_engi", - "directions": 4 + "name": "synd_engi", + "directions": 4 }, { "name": "synd_engi_e", @@ -334,7 +334,326 @@ { "name": "synd_engi_l", "directions": 4 + }, + { + "name": "xenoborg_heavy", + "directions": 4 + }, + { + "name": "xenoborg_heavy_e", + "directions": 4 + }, + { + "name": "xenoborg_heavy_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_heavy_l", + "directions": 4 + }, + { + "name": "xenoborg_scout", + "directions": 4 + }, + { + "name": "xenoborg_scout_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "xenoborg_scout_e", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "xenoborg_scout_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_engi", + "directions": 4 + }, + { + "name": "xenoborg_engi_e", + "directions": 4 + }, + { + "name": "xenoborg_engi_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_engi_l", + "directions": 4 + }, + { + "name": "xenoborg_stealth", + "directions": 4 + }, + { + "name": "xenoborg_stealth_e", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "xenoborg_stealth_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_stealth_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] } - ] } diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi.png new file mode 100644 index 00000000000..28f2c33515f Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e.png new file mode 100644 index 00000000000..069aa392804 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e_r.png new file mode 100644 index 00000000000..57b4d9620d2 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_l.png new file mode 100644 index 00000000000..5b23144ef1e Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy.png new file mode 100644 index 00000000000..8c293a00b21 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e.png new file mode 100644 index 00000000000..9f5dec16ccf Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e_r.png new file mode 100644 index 00000000000..7f30339ee08 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_l.png new file mode 100644 index 00000000000..eeabfef7494 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout.png new file mode 100644 index 00000000000..8825d5bf6f4 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e.png new file mode 100644 index 00000000000..65279858022 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e_r.png new file mode 100644 index 00000000000..313b8fc82ea Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_l.png new file mode 100644 index 00000000000..fa07f69a063 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth.png new file mode 100644 index 00000000000..e06ec2e93d9 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e.png new file mode 100644 index 00000000000..a05ec9580a4 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e_r.png new file mode 100644 index 00000000000..e98212cf2a2 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png new file mode 100644 index 00000000000..5a407dd0551 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai.png new file mode 100644 index 00000000000..39d15a01bfa Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_camera.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_camera.png new file mode 100644 index 00000000000..fd5e2ece28d Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_camera.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_dead.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_dead.png new file mode 100644 index 00000000000..eb74655e027 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_dead.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_empty.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_empty.png new file mode 100644 index 00000000000..5e5ecab9c4e Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/ai_empty.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/base.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/base.png new file mode 100644 index 00000000000..5fc2d284295 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/base.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/building.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/building.png new file mode 100644 index 00000000000..f79636c7889 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/building.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/default.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/default.png new file mode 100644 index 00000000000..d9cb0a19527 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/default.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/icon.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/icon.png new file mode 100644 index 00000000000..26f4c8e21b5 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/icon.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/inserting.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/inserting.png new file mode 100644 index 00000000000..3f3c09debfb Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/inserting.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/meta.json b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/meta.json new file mode 100644 index 00000000000..10237dc31bc --- /dev/null +++ b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/meta.json @@ -0,0 +1,125 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by SuperJoelD00D for Monolith Station, xenoborg sprites, created and modified by Samuka-C (github) and mangled by lordsej (github) who is very sorry, lathe stuff is from Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ai", + "delays": [ + [ + 0.2, + 0.2, + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.1 + ] + ] + }, + { + "name": "panel" + }, + { + "name": "inserting", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "building", + "delays": [ + [ + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10 + ] + ] + }, + { + "name": "unlit-building", + "delays": [ + [ + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10, + 0.10 + ] + ] + }, + { + "name": "unlit" + }, + { + "name": "icon" + }, + { + "name": "ai_camera", + "delays": [ + [ + 1.0, + 1.0 + ] + ] + }, + { + "name": "ai_dead" + }, + { + "name": "ai_empty", + "delays": [ + [ + 0.7, + 0.7 + ] + ] + }, + { + "name": "default", + "directions": 4 + }, + { + "name": "base" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/panel.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/panel.png new file mode 100644 index 00000000000..6c73b153dd8 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/panel.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/unlit-building.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/unlit-building.png new file mode 100644 index 00000000000..f79636c7889 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/unlit-building.png differ diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/unlit.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/unlit.png new file mode 100644 index 00000000000..75b4228eeab Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/unlit.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-base.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-base.png new file mode 100644 index 00000000000..73948d51c84 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-base.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-stripe.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-stripe.png new file mode 100644 index 00000000000..aa029cbc49a Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-stripe.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-top.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-top.png new file mode 100644 index 00000000000..7985cab5403 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-left-top.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-base.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-base.png new file mode 100644 index 00000000000..7403315ad5e Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-base.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-stripe.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-stripe.png new file mode 100644 index 00000000000..0dd7101869c Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-stripe.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-top.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-top.png new file mode 100644 index 00000000000..559d01955a9 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/inhand-right-top.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/meta.json b/Resources/Textures/Objects/Devices/pinpointer.rsi/meta.json index 796fb8c2aa4..68f55239775 100644 --- a/Resources/Textures/Objects/Devices/pinpointer.rsi/meta.json +++ b/Resources/Textures/Objects/Devices/pinpointer.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/59f2a4e10e5ba36033c9734ddebfbbdc6157472d, station and syndicate pinpointer resprited by Ubaser", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/59f2a4e10e5ba36033c9734ddebfbbdc6157472d, station and syndicate pinpointer resprited by Ubaser, xenoborg by Samuka-C (github).", "states": [ { "name": "pinonalert", @@ -156,6 +156,24 @@ { "name": "pinpointer-station" }, + { + "name": "pinpointer-xenoborg" + }, + { + "name": "pinpointer-xenoborg-piece-1" + }, + { + "name": "pinpointer-xenoborg-piece-2" + }, + { + "name": "pinpointer-xenoborg-piece-3" + }, + { + "name": "pinpointer-xenoborg-piece-4" + }, + { + "name": "pinpointer-xenoborg-repaired" + }, { "name": "inhand-left", "directions": 4 @@ -163,6 +181,30 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "inhand-left-base", + "directions": 4 + }, + { + "name": "inhand-left-stripe", + "directions": 4 + }, + { + "name": "inhand-left-top", + "directions": 4 + }, + { + "name": "inhand-right-base", + "directions": 4 + }, + { + "name": "inhand-right-stripe", + "directions": 4 + }, + { + "name": "inhand-right-top", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-1.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-1.png new file mode 100644 index 00000000000..fe3c864ff03 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-1.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-2.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-2.png new file mode 100644 index 00000000000..1049c5afc09 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-2.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-3.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-3.png new file mode 100644 index 00000000000..e26c14f12a5 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-3.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-4.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-4.png new file mode 100644 index 00000000000..359aab7db4d Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-piece-4.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-repaired.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-repaired.png new file mode 100644 index 00000000000..c7431a6b38d Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg-repaired.png differ diff --git a/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg.png b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg.png new file mode 100644 index 00000000000..d114b9f0623 Binary files /dev/null and b/Resources/Textures/Objects/Devices/pinpointer.rsi/pinpointer-xenoborg.png differ diff --git a/Resources/Textures/Objects/Tiles/tile.rsi/meta.json b/Resources/Textures/Objects/Tiles/tile.rsi/meta.json index 94b88a1497a..7e23ab2349b 100644 --- a/Resources/Textures/Objects/Tiles/tile.rsi/meta.json +++ b/Resources/Textures/Objects/Tiles/tile.rsi/meta.json @@ -576,6 +576,9 @@ { "name": "xeno-techmaint" }, + { + "name": "xenoborg-floor" + }, { "name": "dark-squiggly" } diff --git a/Resources/Textures/Objects/Tiles/tile.rsi/xenoborg-floor.png b/Resources/Textures/Objects/Tiles/tile.rsi/xenoborg-floor.png new file mode 100644 index 00000000000..65ef33aab35 Binary files /dev/null and b/Resources/Textures/Objects/Tiles/tile.rsi/xenoborg-floor.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/base.png new file mode 100644 index 00000000000..4fbbb81a3a3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/base.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/icon.png new file mode 100644 index 00000000000..2f685b465dd Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-0.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-0.png new file mode 100644 index 00000000000..78ab0e8098a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-0.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-1.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-1.png new file mode 100644 index 00000000000..64f743a748b Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-2.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-2.png new file mode 100644 index 00000000000..a75ed3e230a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-3.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-3.png new file mode 100644 index 00000000000..ae98032a66f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-4.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-4.png new file mode 100644 index 00000000000..f256489ba38 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/mag-unshaded-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/meta.json new file mode 100644 index 00000000000..044e3c3542f --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/xenoborg_laser_gun.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "kento_da_neko (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-0" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + } + ] +} diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/assembly.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/assembly.png new file mode 100644 index 00000000000..9629d9f2a99 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/assembly.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/bolted_unlit.png new file mode 100644 index 00000000000..844bd201f10 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/bolted_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closed.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closed.png new file mode 100644 index 00000000000..06c3cf5c6c4 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closed_unlit.png new file mode 100644 index 00000000000..7c80bc210c4 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closed_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closing.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closing.png new file mode 100644 index 00000000000..8c45050ba39 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closing_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closing_unlit.png new file mode 100644 index 00000000000..51ae8ad3623 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/closing_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/deny_unlit.png new file mode 100644 index 00000000000..dfe4d406eda Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/deny_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/emergency_unlit.png new file mode 100644 index 00000000000..31f7a5f9f06 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/meta.json new file mode 100644 index 00000000000..5e40ab73632 --- /dev/null +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/meta.json @@ -0,0 +1,146 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from CEV-Eris at commit https://github.com/discordia-space/CEV-Eris/commit/14517938186858388656a6aee14bf47af9e9649f - then modified by Samuka-C (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "assembly" + }, + { + "name": "bolted_unlit" + }, + { + "name": "closed" + }, + { + "name": "closed_unlit" + }, + { + "name": "closing", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "closing_unlit", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "deny_unlit", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "open" + }, + { + "name": "opening", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "opening_unlit", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "panel_closing", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "panel_open" + }, + { + "name": "panel_opening", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/open.png new file mode 100644 index 00000000000..a47d6aa446c Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/opening.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/opening.png new file mode 100644 index 00000000000..a1584d3a289 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/opening_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/opening_unlit.png new file mode 100644 index 00000000000..51ae8ad3623 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/opening_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_closing.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_closing.png new file mode 100644 index 00000000000..6afe206992a Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_open.png new file mode 100644 index 00000000000..d7d4122c087 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_opening.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_opening.png new file mode 100644 index 00000000000..e6c87d740e2 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/panel_opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/welded.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/welded.png new file mode 100644 index 00000000000..eed2758c795 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle_xenoborg.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/assembly.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/assembly.png new file mode 100644 index 00000000000..fd765e671e8 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/assembly.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/bolted_unlit.png new file mode 100644 index 00000000000..afcc4809e53 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/bolted_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closed.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closed.png new file mode 100644 index 00000000000..38a47b34a12 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closed_unlit.png new file mode 100644 index 00000000000..7df73f082ce Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closed_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closing.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closing.png new file mode 100644 index 00000000000..a41c0818b1e Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closing_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closing_unlit.png new file mode 100644 index 00000000000..f7700a06185 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/closing_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/deny_unlit.png new file mode 100644 index 00000000000..f43850467a4 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/deny_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/emergency_unlit.png new file mode 100644 index 00000000000..655a67a95c8 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/meta.json new file mode 100644 index 00000000000..cd619f79482 --- /dev/null +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/meta.json @@ -0,0 +1,198 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Samuka-C (github).", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "assembly" + }, + { + "name": "bolted_unlit" + }, + { + "name": "closed" + }, + { + "name": "closed_unlit" + }, + { + "name": "closing", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "closing_unlit", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "deny_unlit", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "open", + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "opening", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "opening_unlit", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "panel_closing", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "panel_open", + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "panel_opening", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "sparks", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "sparks_broken", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "sparks_damaged", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 1.7 + ] + ] + }, + { + "name": "sparks_open", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/open.png new file mode 100644 index 00000000000..3f21f58c836 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/opening.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/opening.png new file mode 100644 index 00000000000..07ae75706bc Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/opening_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/opening_unlit.png new file mode 100644 index 00000000000..1a3175e34dc Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/opening_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_closing.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_closing.png new file mode 100644 index 00000000000..10a8b140738 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_open.png new file mode 100644 index 00000000000..3b98c91e747 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_opening.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_opening.png new file mode 100644 index 00000000000..09382ff4733 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/panel_opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks.png new file mode 100644 index 00000000000..dd67e88a315 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_broken.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_broken.png new file mode 100644 index 00000000000..c41fa18ca1a Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_broken.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_damaged.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_damaged.png new file mode 100644 index 00000000000..f16a028dee5 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_damaged.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_open.png new file mode 100644 index 00000000000..40d559f7a33 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/sparks_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/welded.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/welded.png new file mode 100644 index 00000000000..08a09d48e31 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/xenoborg.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/assembly.png b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/assembly.png new file mode 100644 index 00000000000..bfecc5d1eea Binary files /dev/null and b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/assembly.png differ diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/closed.png b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/closed.png new file mode 100644 index 00000000000..4b75a955041 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/closing.png b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/closing.png new file mode 100644 index 00000000000..47dfa7f9af1 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/closing.png differ diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/meta.json b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/meta.json new file mode 100644 index 00000000000..87851d37beb --- /dev/null +++ b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Samuka-C (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "assembly" + }, + { + "name": "closing", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.4 + ] + ] + }, + { + "name": "opening", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.4 + ] + ] + }, + { + "name": "open" + }, + { + "name": "closed" + }, + { + "name": "welded" + } + ] +} diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/open.png b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/open.png new file mode 100644 index 00000000000..2a9655338d4 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/open.png differ diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/opening.png b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/opening.png new file mode 100644 index 00000000000..04e1f7237f3 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/opening.png differ diff --git a/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/welded.png b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/welded.png new file mode 100644 index 00000000000..b1c45e0ec91 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Shutters/xenoborg_blastdoor.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/base.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/base.png new file mode 100644 index 00000000000..a1c8292bbd7 Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/base.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/door-closed.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/door-closed.png new file mode 100644 index 00000000000..0ec5755f0f5 Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/door-closed.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/glass.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/glass.png new file mode 100644 index 00000000000..071e8a0db56 Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/glass.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/icon.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/icon.png new file mode 100644 index 00000000000..a33ed0bd49a Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/lights.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/lights.png new file mode 100644 index 00000000000..ce30eb3c322 Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/lights.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/meta.json b/Resources/Textures/Structures/Machines/body_crusher.rsi/meta.json new file mode 100644 index 00000000000..57d0567ab6d --- /dev/null +++ b/Resources/Textures/Structures/Machines/body_crusher.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by brainfood1183 (github) for ss14. modified by Samuka-C (github)", + "size": { + "x": 32, + "y": 64 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "glass" + }, + { + "name": "door-closed" + }, + { + "name": "piston" + }, + { + "name": "base" + }, + { + "name": "lights" + }, + { + "name": "piston-push", + "delays": [ + [ + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 0.66, + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/piston-push.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/piston-push.png new file mode 100644 index 00000000000..020d3b29029 Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/piston-push.png differ diff --git a/Resources/Textures/Structures/Machines/body_crusher.rsi/piston.png b/Resources/Textures/Structures/Machines/body_crusher.rsi/piston.png new file mode 100644 index 00000000000..b3ad39439bb Binary files /dev/null and b/Resources/Textures/Structures/Machines/body_crusher.rsi/piston.png differ diff --git a/Resources/Textures/Structures/Machines/computers.rsi/meta.json b/Resources/Textures/Structures/Machines/computers.rsi/meta.json index 2b76482c85a..e7771cd2023 100644 --- a/Resources/Textures/Structures/Machines/computers.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/computers.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/bd6873fd4dd6a61d7e46f1d75cd4d90f64c40894. comm_syndie made by Veritius, based on comm. generic_panel_open made by Errant, commit https://github.com/space-wizards/space-station-14/pull/32273, comms_wizard and wizard_key by ScarKy0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bd6873fd4dd6a61d7e46f1d75cd4d90f64c40894. comm_syndie made by Veritius, based on comm. generic_panel_open made by Errant, commit https://github.com/space-wizards/space-station-14/pull/32273, comms_wizard and wizard_key by ScarKy0, xenorobot by Samuka-C (github", "size": { "x": 32, "y": 32 @@ -1745,6 +1745,10 @@ "name": "service_keys", "directions": 4 }, + { + "name": "xenorobot", + "directions": 4 + }, { "name": "wizard_key", "directions": 4 diff --git a/Resources/Textures/Structures/Machines/computers.rsi/xenorobot.png b/Resources/Textures/Structures/Machines/computers.rsi/xenorobot.png new file mode 100644 index 00000000000..15004ef0242 Binary files /dev/null and b/Resources/Textures/Structures/Machines/computers.rsi/xenorobot.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger-u0.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger-u0.png new file mode 100644 index 00000000000..8f8d9b3e4a1 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger-u0.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger-u1.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger-u1.png new file mode 100644 index 00000000000..385d4da1636 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger-u1.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger0.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger0.png new file mode 100644 index 00000000000..8bcd44fef15 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger0.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger1.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger1.png new file mode 100644 index 00000000000..ffaef02a381 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger1.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger2.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger2.png new file mode 100644 index 00000000000..8bcd44fef15 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger2.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger3.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger3.png new file mode 100644 index 00000000000..faa7a33af92 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgcharger3.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgdecon1.png b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgdecon1.png new file mode 100644 index 00000000000..5dafd4e8ee7 Binary files /dev/null and b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/borgdecon1.png differ diff --git a/Resources/Textures/Structures/Power/xenoborg_charger.rsi/meta.json b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/meta.json new file mode 100644 index 00000000000..dbb4a53347a --- /dev/null +++ b/Resources/Textures/Structures/Power/xenoborg_charger.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Samuka-C (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "borgcharger0" + }, + { + "name": "borgcharger1", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "borgcharger2" + }, + { + "name": "borgcharger3" + }, + { + "name": "borgdecon1" + }, + { + "name": "borgcharger-u0" + }, + { + "name": "borgcharger-u1" + } + ] +} diff --git a/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/base.png b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/base.png new file mode 100644 index 00000000000..36006e74a28 Binary files /dev/null and b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/base.png differ diff --git a/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/meta.json b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/meta.json new file mode 100644 index 00000000000..64118c3f59f --- /dev/null +++ b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/meta.json @@ -0,0 +1,83 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "copyright": "Created by Samuka-C (github)", + "license": "CC-BY-SA-3.0", + "states": [ + { + "name": "base", + "directions": 4 + }, + { + "name": "thrust", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "thrust_burn_unshaded", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/thrust.png b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/thrust.png new file mode 100644 index 00000000000..96527263fe3 Binary files /dev/null and b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/thrust.png differ diff --git a/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/thrust_burn_unshaded.png b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/thrust_burn_unshaded.png new file mode 100644 index 00000000000..c2678a40337 Binary files /dev/null and b/Resources/Textures/Structures/Shuttles/xenoborg_thruster.rsi/thrust_burn_unshaded.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/full.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/full.png new file mode 100644 index 00000000000..d85d8587c3a Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/full.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/meta.json b/Resources/Textures/Structures/Walls/xenoborg.rsi/meta.json new file mode 100644 index 00000000000..fdebe0d8d6a --- /dev/null +++ b/Resources/Textures/Structures/Walls/xenoborg.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Samuka-C (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "xenoborg0", + "directions": 4 + }, + { + "name": "xenoborg1", + "directions": 4 + }, + { + "name": "xenoborg2", + "directions": 4 + }, + { + "name": "xenoborg3", + "directions": 4 + }, + { + "name": "xenoborg4", + "directions": 4 + }, + { + "name": "xenoborg5", + "directions": 4 + }, + { + "name": "xenoborg6", + "directions": 4 + }, + { + "name": "xenoborg7", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg0.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg0.png new file mode 100644 index 00000000000..fd6951dda95 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg0.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg1.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg1.png new file mode 100644 index 00000000000..d5ecd6b84e7 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg1.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg2.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg2.png new file mode 100644 index 00000000000..fd6951dda95 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg2.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg3.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg3.png new file mode 100644 index 00000000000..d5ecd6b84e7 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg3.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg4.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg4.png new file mode 100644 index 00000000000..f4913af758f Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg4.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg5.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg5.png new file mode 100644 index 00000000000..4e1df9aa576 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg5.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg6.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg6.png new file mode 100644 index 00000000000..f4913af758f Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg6.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg7.png b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg7.png new file mode 100644 index 00000000000..231c5fda379 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg.rsi/xenoborg7.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/meta.json b/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/meta.json new file mode 100644 index 00000000000..f680988301d --- /dev/null +++ b/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Samuka-C (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "state0", + "directions": 4 + }, + { + "name": "state1", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/state0.png b/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/state0.png new file mode 100644 index 00000000000..b83968aa6b2 Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/state0.png differ diff --git a/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/state1.png b/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/state1.png new file mode 100644 index 00000000000..60832b5cd0e Binary files /dev/null and b/Resources/Textures/Structures/Walls/xenoborg_diagonal.rsi/state1.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/full.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/full.png new file mode 100644 index 00000000000..d643cbe5a2d Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/full.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/meta.json b/Resources/Textures/Structures/Windows/xenoborg.rsi/meta.json new file mode 100644 index 00000000000..80f4c3f703e --- /dev/null +++ b/Resources/Textures/Structures/Windows/xenoborg.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Samuka-C (github).", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "xenoborg0", + "directions": 4 + }, + { + "name": "xenoborg1", + "directions": 4 + }, + { + "name": "xenoborg2", + "directions": 4 + }, + { + "name": "xenoborg3", + "directions": 4 + }, + { + "name": "xenoborg4", + "directions": 4 + }, + { + "name": "xenoborg5", + "directions": 4 + }, + { + "name": "xenoborg6", + "directions": 4 + }, + { + "name": "xenoborg7", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg0.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg0.png new file mode 100644 index 00000000000..7d733f13a45 Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg0.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg1.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg1.png new file mode 100644 index 00000000000..2bab1d94055 Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg1.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg2.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg2.png new file mode 100644 index 00000000000..7d733f13a45 Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg2.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg3.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg3.png new file mode 100644 index 00000000000..2bab1d94055 Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg3.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg4.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg4.png new file mode 100644 index 00000000000..96aa56b31be Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg4.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg5.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg5.png new file mode 100644 index 00000000000..f0d2702c5ac Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg5.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg6.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg6.png new file mode 100644 index 00000000000..96aa56b31be Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg6.png differ diff --git a/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg7.png b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg7.png new file mode 100644 index 00000000000..b23b2ff64fa Binary files /dev/null and b/Resources/Textures/Structures/Windows/xenoborg.rsi/xenoborg7.png differ diff --git a/Resources/Textures/Tiles/attributions.yml b/Resources/Textures/Tiles/attributions.yml index 82b8fa83346..2ead58cb6b3 100644 --- a/Resources/Textures/Tiles/attributions.yml +++ b/Resources/Textures/Tiles/attributions.yml @@ -155,3 +155,8 @@ license: "CC-BY-SA-3.0" copyright: "Created by obscenelytinyshark for space-station-14." source: "https://github.com/space-wizards/space-station-14/" + +- files: ["exoborg.png"] + license: "CC0-1.0" + copyright: "Created by Samuka-C (github) for space-station-14." + source: "https://github.com/space-wizards/space-station-14/pull/37068" diff --git a/Resources/Textures/Tiles/exoborg.png b/Resources/Textures/Tiles/exoborg.png new file mode 100644 index 00000000000..6f086e185cb Binary files /dev/null and b/Resources/Textures/Tiles/exoborg.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/meta.json b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/meta.json index 89502bf39b1..b3f76780b3e 100644 --- a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/meta.json +++ b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/meta.json @@ -21,6 +21,66 @@ }, { "name":"pdvadvanced-weapon-module" + }, + { + "name":"xenoborg-access-breaker-module" + }, + { + "name":"xenoborg-basic-module" + }, + { + "name":"xenoborg-jump-module" + }, + { + "name":"xenoborg-camera-computer" + }, + { + "name":"xenoborg-control-computer" + }, + { + "name":"xenoborg-door-remote-module" + }, + { + "name":"xenoborg-extinguisher-module" + }, + { + "name":"xenoborg-eye-module" + }, + { + "name":"xenoborg-eye2-module" + }, + { + "name":"xenoborg-hypo-module" + }, + { + "name":"xenoborg-jammer-module" + }, + { + "name":"xenoborg-laser-module" + }, + { + "name":"xenoborg-laser2-module" + }, + { + "name":"xenoborg-module-module" + }, + { + "name":"xenoborg-projector-module" + }, + { + "name":"xenoborg-space-movement-module" + }, + { + "name":"xenoborg-sword-module" + }, + { + "name":"xenoborg-sword2-module" + }, + { + "name":"xenoborg-tile-module" + }, + { + "name":"xenoborg-tool-module" } ] } diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-access-breaker-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-access-breaker-module.png new file mode 100644 index 00000000000..f3d5d40120d Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-access-breaker-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-basic-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-basic-module.png new file mode 100644 index 00000000000..ac7bae54fef Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-basic-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-camera-computer.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-camera-computer.png new file mode 100644 index 00000000000..2578beb5ee9 Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-camera-computer.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-control-computer.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-control-computer.png new file mode 100644 index 00000000000..65ebc2f1819 Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-control-computer.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-door-remote-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-door-remote-module.png new file mode 100644 index 00000000000..a5ca9cfa97d Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-door-remote-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-extinguisher-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-extinguisher-module.png new file mode 100644 index 00000000000..eea9820bc0d Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-extinguisher-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-eye-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-eye-module.png new file mode 100644 index 00000000000..e0a93125310 Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-eye-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-eye2-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-eye2-module.png new file mode 100644 index 00000000000..8011403508a Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-eye2-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-hypo-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-hypo-module.png new file mode 100644 index 00000000000..437df1419ec Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-hypo-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-jammer-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-jammer-module.png new file mode 100644 index 00000000000..7bafb93b6ab Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-jammer-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-jump-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-jump-module.png new file mode 100644 index 00000000000..bb09b413daa Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-jump-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-laser-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-laser-module.png new file mode 100644 index 00000000000..ac574e0c62c Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-laser-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-laser2-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-laser2-module.png new file mode 100644 index 00000000000..efa851092ca Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-laser2-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-module-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-module-module.png new file mode 100644 index 00000000000..144c5bcce28 Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-module-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-projector-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-projector-module.png new file mode 100644 index 00000000000..8c4b5eae6d2 Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-projector-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-space-movement-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-space-movement-module.png new file mode 100644 index 00000000000..416a8bd4393 Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-space-movement-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-sword-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-sword-module.png new file mode 100644 index 00000000000..7fc883c3b7f Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-sword-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-sword2-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-sword2-module.png new file mode 100644 index 00000000000..e8e121fbfce Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-sword2-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-tile-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-tile-module.png new file mode 100644 index 00000000000..75ac1819cca Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-tile-module.png differ diff --git a/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-tool-module.png b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-tool-module.png new file mode 100644 index 00000000000..60bc734c5dc Binary files /dev/null and b/Resources/Textures/_Mono/Interface/Action/actions_borg.rsi/xenoborg-tool-module.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown.png new file mode 100644 index 00000000000..b70cacbab45 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_e.png new file mode 100644 index 00000000000..3c7d9924e55 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_e_r.png new file mode 100644 index 00000000000..d523e5ea19a Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_l.png new file mode 100644 index 00000000000..996cf0e2111 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/clown_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict.png new file mode 100644 index 00000000000..bbf72fc45be Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_e.png new file mode 100644 index 00000000000..17349d74dc8 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_e_r.png new file mode 100644 index 00000000000..3c8cf19acf6 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_icon.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_icon.png new file mode 100644 index 00000000000..7f0ea2a2556 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_icon.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_l.png new file mode 100644 index 00000000000..f65fbaebc3c Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/derelict_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer.png new file mode 100644 index 00000000000..e558622fded Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_derelict.png new file mode 100644 index 00000000000..7eb8b01ad0b Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_derelict_crystal.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_derelict_crystal.png new file mode 100644 index 00000000000..38bae65c837 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_derelict_crystal.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_e.png new file mode 100644 index 00000000000..71fdbca19d1 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_e_r.png new file mode 100644 index 00000000000..cdb9d02c899 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_l.png new file mode 100644 index 00000000000..045cd27a356 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/engineer_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor.png new file mode 100644 index 00000000000..83275f949bf Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_derelict.png new file mode 100644 index 00000000000..34ae031b79e Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_e.png new file mode 100644 index 00000000000..db3beec154f Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_e_r.png new file mode 100644 index 00000000000..01ddc00968e Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_l.png new file mode 100644 index 00000000000..cbe49f1a7a7 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_moving.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_moving.png new file mode 100644 index 00000000000..ff7d4eb483a Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_moving.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_moving_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_moving_derelict.png new file mode 100644 index 00000000000..ce6b1bc61e3 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/janitor_moving_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical.png new file mode 100644 index 00000000000..86f26f52cf2 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_derelict.png new file mode 100644 index 00000000000..8fd1dba3500 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_e.png new file mode 100644 index 00000000000..2c70d3d3468 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_e_r.png new file mode 100644 index 00000000000..4def2d26336 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_l.png new file mode 100644 index 00000000000..f17bb44b737 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_moving.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_moving.png new file mode 100644 index 00000000000..4be26cce2f4 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_moving.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_moving_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_moving_derelict.png new file mode 100644 index 00000000000..4054df61844 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/medical_moving_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/meta.json b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/meta.json new file mode 100644 index 00000000000..c8b659ce582 --- /dev/null +++ b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/meta.json @@ -0,0 +1,791 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/faf6db214927874c19b8fa8585d26b5d40de1acc, derelict generic sprites modified by GoldenCan(GitHub), xenoborg sprites, created and modified by Samuka-C (github), Derelict Engineer, Janitor, Miner, Medical, and Assault Borg sprites by _miket on Discord, minor resprite of the service borg by Kittygyat (github), red cross on Syndi Medical Borg changed to blue to avoid Geneva issues by CDWimmer (GitHub)", + "states": [ + { + "name": "clown", + "directions": 4 + }, + { + "name": "clown_e", + "directions": 4 + }, + { + "name": "clown_e_r", + "directions": 4 + }, + { + "name": "clown_l", + "directions": 4 + }, + { + "name": "derelict", + "directions": 4 + }, + { + "name": "derelict_e", + "directions": 4 + }, + { + "name": "derelict_e_r", + "directions": 4 + }, + { + "name": "derelict_icon", + "directions": 1 + }, + { + "name": "derelict_l", + "directions": 4 + }, + { + "name": "engineer", + "directions": 4 + }, + { + "name": "engineer_e", + "directions": 4 + }, + { + "name": "engineer_e_r", + "directions": 4 + }, + { + "name": "engineer_l", + "directions": 4 + }, + { + "name": "engineer_derelict", + "directions": 4 + }, + { + "name": "engineer_derelict_crystal", + "directions": 4 + }, + { + "name": "janitor", + "directions": 4 + }, + { + "name": "janitor_moving", + "directions": 4, + "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 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "janitor_e", + "directions": 4 + }, + { + "name": "janitor_e_r", + "directions": 4 + }, + { + "name": "janitor_l", + "directions": 4 + }, + { + "name": "janitor_derelict", + "directions": 4 + }, + { + "name": "janitor_moving_derelict", + "directions": 4, + "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 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "medical", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "medical_moving", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "medical_e", + "directions": 4 + }, + { + "name": "medical_e_r", + "directions": 4 + }, + { + "name": "medical_l", + "directions": 4 + }, + { + "name": "medical_derelict", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "medical_moving_derelict", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "miner", + "directions": 4 + }, + { + "name": "miner_moving", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "miner_e", + "directions": 4 + }, + { + "name": "miner_e_r", + "directions": 4 + }, + { + "name": "miner_l", + "directions": 4 + }, + { + "name": "miner_derelict", + "directions": 4 + }, + { + "name": "miner_moving_derelict", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "robot", + "directions": 4 + }, + { + "name": "robot_e", + "directions": 4 + }, + { + "name": "robot_e_r", + "directions": 4 + }, + { + "name": "robot_l", + "directions": 4 + }, + { + "name": "peace", + "directions": 4 + }, + { + "name": "peace_e", + "directions": 4 + }, + { + "name": "peace_e_r", + "directions": 4 + }, + { + "name": "peace_l", + "directions": 4 + }, + { + "name": "service", + "directions": 4 + }, + { + "name": "service_e", + "directions": 4 + }, + { + "name": "service_e_r", + "directions": 4 + }, + { + "name": "service_l", + "directions": 4 + }, + { + "name": "synd_sec", + "directions": 4 + }, + { + "name": "synd_sec_e", + "directions": 4 + }, + { + "name": "synd_sec_l", + "directions": 4 + }, + { + "name": "synd_sec_derelict", + "directions": 4 + }, + { + "name": "synd_sec_derelict_e", + "directions": 4 + }, + { + "name": "synd_sec_derelict_l", + "directions": 4 + }, + { + "name": "synd_medical", + "directions": 4 + }, + { + "name": "synd_medical_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "synd_medical_e", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "synd_engi", + "directions": 4 + }, + { + "name": "synd_engi_e", + "directions": 4 + }, + { + "name": "synd_engi_l", + "directions": 4 + }, + { + "name": "xenoborg_heavy", + "directions": 4 + }, + { + "name": "xenoborg_heavy_e", + "directions": 4 + }, + { + "name": "xenoborg_heavy_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_heavy_l", + "directions": 4 + }, + { + "name": "xenoborg_scout", + "directions": 4 + }, + { + "name": "xenoborg_scout_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "xenoborg_scout_e", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "xenoborg_scout_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_engi", + "directions": 4 + }, + { + "name": "xenoborg_engi_e", + "directions": 4 + }, + { + "name": "xenoborg_engi_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_engi_l", + "directions": 4 + }, + { + "name": "xenoborg_stealth", + "directions": 4 + }, + { + "name": "xenoborg_stealth_e", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "xenoborg_stealth_e_r", + "directions": 4, + "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, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "xenoborg_stealth_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner.png new file mode 100644 index 00000000000..93da33c7b4c Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_derelict.png new file mode 100644 index 00000000000..d9d812c7611 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_e.png new file mode 100644 index 00000000000..a3839526dd7 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_e_r.png new file mode 100644 index 00000000000..ce0804bfc84 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_l.png new file mode 100644 index 00000000000..6d8c96cf1d6 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_moving.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_moving.png new file mode 100644 index 00000000000..f4a6ca49a3f Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_moving.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_moving_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_moving_derelict.png new file mode 100644 index 00000000000..05cd74494b9 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/miner_moving_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace.png new file mode 100644 index 00000000000..15a75518da7 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_e.png new file mode 100644 index 00000000000..3c7d9924e55 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_e_r.png new file mode 100644 index 00000000000..d523e5ea19a Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_l.png new file mode 100644 index 00000000000..996cf0e2111 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/peace_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot.png new file mode 100644 index 00000000000..a18a9978e54 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_e.png new file mode 100644 index 00000000000..3fe4b86946a Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_e_r.png new file mode 100644 index 00000000000..7f73680c4c2 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_l.png new file mode 100644 index 00000000000..e88a451a55b Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/robot_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service.png new file mode 100644 index 00000000000..f0a0f2a9880 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_e.png new file mode 100644 index 00000000000..b7c4f2e3da1 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_e_r.png new file mode 100644 index 00000000000..a9cf0cacad4 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_l.png new file mode 100644 index 00000000000..819b3d824e4 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/service_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi.png new file mode 100644 index 00000000000..961f0172309 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi_e.png new file mode 100644 index 00000000000..1c062b2489e Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi_l.png new file mode 100644 index 00000000000..6061ca87a01 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_engi_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical.png new file mode 100644 index 00000000000..9f6a546a69d Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical_e.png new file mode 100644 index 00000000000..0b58d4d2ffa Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical_l.png new file mode 100644 index 00000000000..0b58d4d2ffa Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_medical_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec.png new file mode 100644 index 00000000000..bfff2654879 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict.png new file mode 100644 index 00000000000..9b42b90f6ed Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict_e.png new file mode 100644 index 00000000000..a846febc061 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict_l.png new file mode 100644 index 00000000000..b479c411a7a Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_derelict_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_e.png new file mode 100644 index 00000000000..d881e3d2c90 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_l.png new file mode 100644 index 00000000000..3168a0ac72c Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/synd_sec_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi.png new file mode 100644 index 00000000000..28f2c33515f Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_e.png new file mode 100644 index 00000000000..069aa392804 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_e_r.png new file mode 100644 index 00000000000..57b4d9620d2 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_l.png new file mode 100644 index 00000000000..5b23144ef1e Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_engi_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy.png new file mode 100644 index 00000000000..8c293a00b21 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_e.png new file mode 100644 index 00000000000..9f5dec16ccf Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_e_r.png new file mode 100644 index 00000000000..7f30339ee08 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_l.png new file mode 100644 index 00000000000..eeabfef7494 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_heavy_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout.png new file mode 100644 index 00000000000..8825d5bf6f4 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_e.png new file mode 100644 index 00000000000..65279858022 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_e_r.png new file mode 100644 index 00000000000..313b8fc82ea Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_l.png new file mode 100644 index 00000000000..fa07f69a063 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_scout_l.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth.png new file mode 100644 index 00000000000..e06ec2e93d9 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_e.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_e.png new file mode 100644 index 00000000000..a05ec9580a4 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_e.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_e_r.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_e_r.png new file mode 100644 index 00000000000..e98212cf2a2 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_e_r.png differ diff --git a/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_l.png b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_l.png new file mode 100644 index 00000000000..5a407dd0551 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Silicon/XENOBORG/xenoborgchassis.rsi/xenoborg_stealth_l.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-access-breaker.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-access-breaker.png new file mode 100644 index 00000000000..7e3f58f69b9 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-access-breaker.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-basic.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-basic.png new file mode 100644 index 00000000000..59cee451e49 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-basic.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak.png new file mode 100644 index 00000000000..1db95de9ee7 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png new file mode 100644 index 00000000000..77819e93e8d Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-fire-extinguisher.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-fire-extinguisher.png new file mode 100644 index 00000000000..df8689bbee5 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-fire-extinguisher.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-hypo.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-hypo.png new file mode 100644 index 00000000000..c4a4d5a182c Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-hypo.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-jammer.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-jammer.png new file mode 100644 index 00000000000..e007a98d266 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-jammer.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-jump.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-jump.png new file mode 100644 index 00000000000..e6677544810 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-jump.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-laser.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-laser.png new file mode 100644 index 00000000000..a273f575970 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-laser.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-laser2.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-laser2.png new file mode 100644 index 00000000000..f0ae5568d61 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-laser2.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-projector.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-projector.png new file mode 100644 index 00000000000..5d7cadd06af Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-projector.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-space-movement.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-space-movement.png new file mode 100644 index 00000000000..92250c914da Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-space-movement.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-sword.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-sword.png new file mode 100644 index 00000000000..51d9fa3bb46 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-sword.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-sword2.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-sword2.png new file mode 100644 index 00000000000..8824694e2d3 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-sword2.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-tile.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-tile.png new file mode 100644 index 00000000000..5fc8309c430 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-tile.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-tools.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-tools.png new file mode 100644 index 00000000000..3a779eaa96f Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-tools.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/meta.json index 86743b67ec4..88bfba7b0d3 100644 --- a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/meta.json +++ b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Created by Honestly101 (Github) for Monolith.", + "copyright": "Created by Honestly101 (Github) for Monolith., Xenoborg modules sprites by Samuka-C (github)", "states": [ { "name": "icon-mercenary" @@ -24,6 +24,69 @@ }, { "name": "pdv" + }, + { + "name": "icon-xenoborg-access-breaker" + }, + { + "name": "icon-xenoborg-basic" + }, + { + "name": "icon-xenoborg-cloak" + }, + { + "name": "icon-xenoborg-jump" + }, + { + "name": "icon-xenoborg-cloak2" + }, + { + "name": "icon-xenoborg-fire-extinguisher" + }, + { + "name": "icon-xenoborg-hypo" + }, + { + "name": "icon-xenoborg-jammer" + }, + { + "name": "icon-xenoborg-laser" + }, + { + "name": "icon-xenoborg-laser2" + }, + { + "name": "icon-xenoborg-projector" + }, + { + "name": "icon-xenoborg-space-movement" + }, + { + "name": "icon-xenoborg-sword" + }, + { + "name": "icon-xenoborg-sword2" + }, + { + "name": "icon-xenoborg-tile" + }, + { + "name": "icon-xenoborg-tools" + }, + { + "name": "xenoborg_engi" + }, + { + "name": "xenoborg_generic" + }, + { + "name": "xenoborg_heavy" + }, + { + "name": "xenoborg_scout" + }, + { + "name": "xenoborg_stealth" } ] } diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_engi.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_engi.png new file mode 100644 index 00000000000..3f96e873179 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_engi.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_generic.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_generic.png new file mode 100644 index 00000000000..59dba02f423 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_generic.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_heavy.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_heavy.png new file mode 100644 index 00000000000..66afcd7c541 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_heavy.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_scout.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_scout.png new file mode 100644 index 00000000000..974ed094f5c Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_scout.png differ diff --git a/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_stealth.png b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_stealth.png new file mode 100644 index 00000000000..aa6d782f4d4 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Specific/Robotics/borgmodule.rsi/xenoborg_stealth.png differ