From 09a51d2083ac34a66c4ded04eada11eae3893110 Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Fri, 17 Jul 2026 22:14:37 +0200 Subject: [PATCH 01/10] new files made for organization --- Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs | 0 Content.Shared/_Mono/POICapture/ControlTerminal.cs | 0 Content.Shared/_Mono/POICapture/PoiTerminal.cs | 0 Content.Shared/_Mono/POICapture/TransmissionAntenna.cs | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs create mode 100644 Content.Shared/_Mono/POICapture/ControlTerminal.cs create mode 100644 Content.Shared/_Mono/POICapture/PoiTerminal.cs create mode 100644 Content.Shared/_Mono/POICapture/TransmissionAntenna.cs diff --git a/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs b/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Content.Shared/_Mono/POICapture/ControlTerminal.cs b/Content.Shared/_Mono/POICapture/ControlTerminal.cs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Content.Shared/_Mono/POICapture/PoiTerminal.cs b/Content.Shared/_Mono/POICapture/PoiTerminal.cs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs b/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs new file mode 100644 index 00000000000..e69de29bb2d From ec49df305dccf04fcaceeabbf7ce52671c00ea6e Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Fri, 17 Jul 2026 23:02:04 +0200 Subject: [PATCH 02/10] more framework and todos hahahaha --- .../_Mono/POICapture/ControlEncryptionKey.cs | 1 + .../_Mono/POICapture/ControlTerminal.cs | 1 + .../_Mono/POICapture/PoiTerminal.cs | 1 + .../_Mono/POICapture/TransmissionAntenna.cs | 1 + .../_Mono/DeviceLinking/sink_ports.yml | 5 ++- .../_Mono/DeviceLinking/source_ports.yml | 5 ++- .../Misc/faction_control_encryption_keys.yml | 1 + .../Computers/sector_control_terminals.yml | 36 +++++++++++++++++++ .../Machines/poi_control_antennae.yml | 1 + 9 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/_Mono/Entities/Objects/Devices/Misc/faction_control_encryption_keys.yml create mode 100644 Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml create mode 100644 Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml diff --git a/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs b/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs index e69de29bb2d..8ad1dfb5353 100644 --- a/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs +++ b/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs @@ -0,0 +1 @@ +//TODO diff --git a/Content.Shared/_Mono/POICapture/ControlTerminal.cs b/Content.Shared/_Mono/POICapture/ControlTerminal.cs index e69de29bb2d..8ad1dfb5353 100644 --- a/Content.Shared/_Mono/POICapture/ControlTerminal.cs +++ b/Content.Shared/_Mono/POICapture/ControlTerminal.cs @@ -0,0 +1 @@ +//TODO diff --git a/Content.Shared/_Mono/POICapture/PoiTerminal.cs b/Content.Shared/_Mono/POICapture/PoiTerminal.cs index e69de29bb2d..8ad1dfb5353 100644 --- a/Content.Shared/_Mono/POICapture/PoiTerminal.cs +++ b/Content.Shared/_Mono/POICapture/PoiTerminal.cs @@ -0,0 +1 @@ +//TODO diff --git a/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs b/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs index e69de29bb2d..8ad1dfb5353 100644 --- a/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs +++ b/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs @@ -0,0 +1 @@ +//TODO diff --git a/Resources/Prototypes/_Mono/DeviceLinking/sink_ports.yml b/Resources/Prototypes/_Mono/DeviceLinking/sink_ports.yml index 55b7f74c48b..07fe26d41bc 100644 --- a/Resources/Prototypes/_Mono/DeviceLinking/sink_ports.yml +++ b/Resources/Prototypes/_Mono/DeviceLinking/sink_ports.yml @@ -11,4 +11,7 @@ - type: sinkPort id: SpaceArtilleryLoad name: signal-port-name-space-artillery-load - description: signal-port-description-space-artillery-load \ No newline at end of file + description: signal-port-description-space-artillery-load + +- type: sinkPort #it's here so i remind later i want a multitool adjacent thing to link capture computers to sector control computers of the controlling faction + id: ResearchPOITransmitterReceive diff --git a/Resources/Prototypes/_Mono/DeviceLinking/source_ports.yml b/Resources/Prototypes/_Mono/DeviceLinking/source_ports.yml index 24f3ac3cce3..063299d4e37 100644 --- a/Resources/Prototypes/_Mono/DeviceLinking/source_ports.yml +++ b/Resources/Prototypes/_Mono/DeviceLinking/source_ports.yml @@ -6,4 +6,7 @@ - type: sourcePort id: AmmoLoaderLoad name: signal-port-name-ammo-loader-load - description: signal-port-description-ammo-loader-load \ No newline at end of file + description: signal-port-description-ammo-loader-load + +- type: sourcePort #it's here so i remind later i want a multitool adjacent thing to link capture computers to sector control computers of the controlling faction + id: ResearchPOITransmitterEmit diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/Misc/faction_control_encryption_keys.yml b/Resources/Prototypes/_Mono/Entities/Objects/Devices/Misc/faction_control_encryption_keys.yml new file mode 100644 index 00000000000..f9bf1abc130 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Devices/Misc/faction_control_encryption_keys.yml @@ -0,0 +1 @@ +#TODO diff --git a/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml new file mode 100644 index 00000000000..0f48e6e9aa7 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml @@ -0,0 +1,36 @@ +- type: entity + parent: BaseComputer + id: SectorControlComputer + suffix: DEBUG, unaffiliated + name: unaffiliated sector control computer + description: placeholder + components: + - type: Computer + board: CaptureControlComputerCircuitBoard + + +- type: entity #will be used for testing before factionizing the thing + parent: BaseComputerCircuitboard + id: SectorControlComputerCircuitBoard + suffix: DEBUG, unaffiliated + name: unaffiliated sector control computer circuit board #what a mouthful + desciption: placeholder + components: + +- type: entity + parent: BaseComputer + id: SectorCaptureComputerBase + suffix: DEBUG + name: base capture point terminal + desciption: the place where you insert ur key and capture the thingiemabob + components: + - type: Computer + board: SectorCaptureComputerCircuitBoard + +- type: entity #will be used for testing before factionizing the thing + parent: BaseComputerCircuitboard + id: SectorCaptureComputerCircuitBoard + suffix: DEBUG, unaffiliated + name: unaffiliated poi control computer circuit board + desciption: placeholder + components: diff --git a/Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml new file mode 100644 index 00000000000..f9bf1abc130 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml @@ -0,0 +1 @@ +#TODO From 1a3a22e19adcd9a45515029aaf639d669d83d258 Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sat, 18 Jul 2026 18:31:13 +0200 Subject: [PATCH 03/10] more groundwork --- .../_Mono/POICapture/ControlEncryptionKey.cs | 1 - .../_Mono/POICapture/ControlTerminal.cs | 1 - .../_Mono/POICapture/PoiTerminal.cs | 1 - .../_Mono/POICapture/TransmissionAntenna.cs | 1 - .../Components/CaptureTerminalComponent.cs | 5 +++ .../Components/ControlKeyComponent.cs | 9 +++++ .../Components/ControlTerminalComponent.cs | 5 +++ .../TransmissionAntennaComponent.cs | 5 +++ .../Devices/sector_control_capture_keys.yml | 20 +++++++++++ .../Computers/sector_control_terminals.yml | 33 ++++++++++--------- .../Machines/poi_control_antennae.yml | 1 - .../research_transmission_antennae.yml} | 0 12 files changed, 61 insertions(+), 21 deletions(-) delete mode 100644 Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs delete mode 100644 Content.Shared/_Mono/POICapture/ControlTerminal.cs delete mode 100644 Content.Shared/_Mono/POICapture/PoiTerminal.cs delete mode 100644 Content.Shared/_Mono/POICapture/TransmissionAntenna.cs create mode 100644 Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs create mode 100644 Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs create mode 100644 Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs create mode 100644 Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs create mode 100644 Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml delete mode 100644 Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml rename Resources/Prototypes/_Mono/Entities/{Objects/Devices/Misc/faction_control_encryption_keys.yml => Structures/Machines/research_transmission_antennae.yml} (100%) diff --git a/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs b/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs deleted file mode 100644 index 8ad1dfb5353..00000000000 --- a/Content.Shared/_Mono/POICapture/ControlEncryptionKey.cs +++ /dev/null @@ -1 +0,0 @@ -//TODO diff --git a/Content.Shared/_Mono/POICapture/ControlTerminal.cs b/Content.Shared/_Mono/POICapture/ControlTerminal.cs deleted file mode 100644 index 8ad1dfb5353..00000000000 --- a/Content.Shared/_Mono/POICapture/ControlTerminal.cs +++ /dev/null @@ -1 +0,0 @@ -//TODO diff --git a/Content.Shared/_Mono/POICapture/PoiTerminal.cs b/Content.Shared/_Mono/POICapture/PoiTerminal.cs deleted file mode 100644 index 8ad1dfb5353..00000000000 --- a/Content.Shared/_Mono/POICapture/PoiTerminal.cs +++ /dev/null @@ -1 +0,0 @@ -//TODO diff --git a/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs b/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs deleted file mode 100644 index 8ad1dfb5353..00000000000 --- a/Content.Shared/_Mono/POICapture/TransmissionAntenna.cs +++ /dev/null @@ -1 +0,0 @@ -//TODO diff --git a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs new file mode 100644 index 00000000000..0476895c690 --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs @@ -0,0 +1,5 @@ +using Robust.Shared.Components; +using Content.Shared._Mono.Company; +using Robust.Shared.Timing; + +namespace Content.Shared._Mono.SectorCapture.Components; diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs new file mode 100644 index 00000000000..6c2d1795cb3 --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs @@ -0,0 +1,9 @@ +//TODO +using Robust.Shared.Prototypes; +using Robust.Shared.Components; +using Content.Shared._Mono.Company; +using Robust.Shared.Timing; + +namespace Content.Shared._Mono.SectorCapture.Components; + + diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs new file mode 100644 index 00000000000..0476895c690 --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs @@ -0,0 +1,5 @@ +using Robust.Shared.Components; +using Content.Shared._Mono.Company; +using Robust.Shared.Timing; + +namespace Content.Shared._Mono.SectorCapture.Components; diff --git a/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs new file mode 100644 index 00000000000..29a83e604e7 --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs @@ -0,0 +1,5 @@ +using Robust.Shared.Components; +using Robust.Shared.Timing; +using Content.Shared.Research; + +namespace Content.Shared._Mono.SectorCapture.Components; diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml b/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml new file mode 100644 index 00000000000..7d0b9c3855a --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml @@ -0,0 +1,20 @@ +#TODO +- type: entity + parent: BaseItem + id: SectorControlCaptureKey + suffix: DEBUG + name: Capture Key + description: Debug item + +- type: entity + parent: SectorControlCaptureKey + suffix: Empty + id: SectorControlCaptureKeyNone + name: Unafilliated capture key + description: A small electronic key containing a data package specifically designed to target a station's systems and take control of them. This one has no data on it. + components: + - type: Sprite + sprite: + state: + - type: ControlKey + owner: None diff --git a/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml index 0f48e6e9aa7..8e2925ecc81 100644 --- a/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml +++ b/Resources/Prototypes/_Mono/Entities/Structures/Machines/Computers/sector_control_terminals.yml @@ -1,36 +1,37 @@ - type: entity parent: BaseComputer id: SectorControlComputer - suffix: DEBUG, unaffiliated - name: unaffiliated sector control computer - description: placeholder + suffix: Sector Control, Neutral + name: Unafilliated sector control terminal + description: A console designed to overwatch all data feeds coming from successfully infiltrated stations. components: + - type: Sprite + sprite: + state: - type: Computer - board: CaptureControlComputerCircuitBoard - + board: SectorControlComputerCircuitBoard + - type: ControlTerminal + owner: None - type: entity #will be used for testing before factionizing the thing parent: BaseComputerCircuitboard id: SectorControlComputerCircuitBoard suffix: DEBUG, unaffiliated name: unaffiliated sector control computer circuit board #what a mouthful - desciption: placeholder + desciption: A circuit board used to make an unaffiliated sector control terminal components: + - type: Sprite + state: cpu_command + - type: ComputerBoard + prototype: SectorControlComputer + + - type: entity parent: BaseComputer id: SectorCaptureComputerBase - suffix: DEBUG + suffix: POI Capture, Neutral name: base capture point terminal desciption: the place where you insert ur key and capture the thingiemabob components: - - type: Computer - board: SectorCaptureComputerCircuitBoard -- type: entity #will be used for testing before factionizing the thing - parent: BaseComputerCircuitboard - id: SectorCaptureComputerCircuitBoard - suffix: DEBUG, unaffiliated - name: unaffiliated poi control computer circuit board - desciption: placeholder - components: diff --git a/Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml deleted file mode 100644 index f9bf1abc130..00000000000 --- a/Resources/Prototypes/_Mono/Entities/Structures/Machines/poi_control_antennae.yml +++ /dev/null @@ -1 +0,0 @@ -#TODO diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/Misc/faction_control_encryption_keys.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/research_transmission_antennae.yml similarity index 100% rename from Resources/Prototypes/_Mono/Entities/Objects/Devices/Misc/faction_control_encryption_keys.yml rename to Resources/Prototypes/_Mono/Entities/Structures/Machines/research_transmission_antennae.yml From 5f130af279719f0dc7b5f2e15f7e2a9ba90a5d0b Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sat, 18 Jul 2026 19:04:42 +0200 Subject: [PATCH 04/10] my brain hort --- .../Components/CaptureTerminalComponent.cs | 8 +++++++- .../Components/ControlKeyComponent.cs | 10 +++++++--- .../Components/ControlTerminalComponent.cs | 9 ++++++++- .../Components/TransmissionAntennaComponent.cs | 3 ++- .../_Mono/SectorCapture/SectorCaptureSystem.cs | 14 ++++++++++++++ 5 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs diff --git a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs index 0476895c690..22dfbfdda25 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs @@ -1,5 +1,11 @@ using Robust.Shared.Components; using Content.Shared._Mono.Company; -using Robust.Shared.Timing; +using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; +public sealed partial class CaptureTerminalComponent : Component +{ + /// + /// capture terminal takes a control key and if the key is not blank starts a timer for it to be captured + /// +} diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs index 6c2d1795cb3..f0b35202653 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs @@ -1,9 +1,13 @@ //TODO -using Robust.Shared.Prototypes; using Robust.Shared.Components; using Content.Shared._Mono.Company; -using Robust.Shared.Timing; +using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; - +public sealed partial class ControlKeyComponent : Component +{ + /// + /// This component takes the company (or faction) of the source Control terminal and keeps it in memory to imprint onto Capture Terminals + /// +} diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs index 0476895c690..b9e8deb96af 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs @@ -1,5 +1,12 @@ using Robust.Shared.Components; using Content.Shared._Mono.Company; -using Robust.Shared.Timing; +using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; + +public sealed partial class ControlTerminalComponent : Component +{ + /// + /// this component stores the owner's faction company id and can imprint it to a control key + /// +} diff --git a/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs index 29a83e604e7..90e2099ab9d 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs @@ -1,5 +1,6 @@ using Robust.Shared.Components; -using Robust.Shared.Timing; using Content.Shared.Research; namespace Content.Shared._Mono.SectorCapture.Components; +public sealed partial class TransmissionAntennaComponent : Component +{} diff --git a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs new file mode 100644 index 00000000000..eb056ca41a8 --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Events; +using Robust.Shared.Timing; +using Content.Shared._Mono.SectorCapture.Components; +using Content.Shared._Mono.SectorCapture.Prototypes; +using Content.Shared.Research; +using Content.Shared._Mono.Company; +using Content.Shared._NF.Bank; +using Content.Shared.Containers.ItemSlots; + +namespace Content.Shared._Mono.SectorCapture; +public abstract partial class SectorCaptureSystem : EntitySystem +{ + +} From 5ffd8652499326620130cbab6e87a50a4982b012 Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sat, 18 Jul 2026 22:43:33 +0200 Subject: [PATCH 05/10] maybe i should actually learn how shit works --- .../Components/CaptureTerminalComponent.cs | 10 +++++++++- .../Components/ControlKeyComponent.cs | 7 ++++--- .../Components/ControlTerminalComponent.cs | 7 ++++--- .../Components/TransmissionAntennaComponent.cs | 14 +++++++++++++- .../_Mono/SectorCapture/SectorCaptureSystem.cs | 13 +++++++++++-- 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs index 22dfbfdda25..a54fd93a972 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs @@ -3,9 +3,17 @@ using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; +[RegisterComponent, NetworkedComponent] public sealed partial class CaptureTerminalComponent : Component { /// - /// capture terminal takes a control key and if the key is not blank starts a timer for it to be captured + /// sets the current owner of the terminal /// + [DataField] + public string Owner = ""; + /// + /// sets what class of POI terminal (ergo what class of POI) the terminal is assigned to: either Economy or Research + /// + [DataField] + public string Class = ""; } diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs index f0b35202653..ed6213264b7 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs @@ -1,13 +1,14 @@ -//TODO -using Robust.Shared.Components; using Content.Shared._Mono.Company; using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; - +[RegisterComponent, NetworkedComponent] public sealed partial class ControlKeyComponent : Component { /// /// This component takes the company (or faction) of the source Control terminal and keeps it in memory to imprint onto Capture Terminals /// + [Datafield] + [AutoNetworkedField] + public string Owner = ""; } diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs index b9e8deb96af..7f068dbbbeb 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs @@ -1,12 +1,13 @@ -using Robust.Shared.Components; using Content.Shared._Mono.Company; using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; - +[RegisterComponent, NetworkedComponent] public sealed partial class ControlTerminalComponent : Component { /// - /// this component stores the owner's faction company id and can imprint it to a control key + /// sets the owner of the Control terminal, will not get changed in gameplay /// + [DataField] + public string Owner = ""; } diff --git a/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs index 90e2099ab9d..ae6f93eaec5 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/TransmissionAntennaComponent.cs @@ -2,5 +2,17 @@ using Content.Shared.Research; namespace Content.Shared._Mono.SectorCapture.Components; +[RegisterComponent, NetworkedComponent] public sealed partial class TransmissionAntennaComponent : Component -{} +{ + /// + ///sets the default transmission rate of the antenna (by how much the normal, aligned antenna would transmit) + /// + [DataField] + public float TransmissionRate = 0f; + /// + /// defines the degree of alignment the antenna has, from 0 to 360, value chosen for alignment will vary depending on position of the receiver in space (yes this will be hell) + /// + [DataField] + public float AlignmentParameter = 1f; +} diff --git a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs index eb056ca41a8..b40e9b8c597 100644 --- a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs +++ b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs @@ -1,14 +1,23 @@ -using Robust.Shared.Events; -using Robust.Shared.Timing; using Content.Shared._Mono.SectorCapture.Components; using Content.Shared._Mono.SectorCapture.Prototypes; using Content.Shared.Research; using Content.Shared._Mono.Company; using Content.Shared._NF.Bank; using Content.Shared.Containers.ItemSlots; +using System.Runtime.CompilerServices; namespace Content.Shared._Mono.SectorCapture; public abstract partial class SectorCaptureSystem : EntitySystem { + [Dependency] private readonly IPrototypeManager PrototypeManager = default!; + + [Dependency] private ItemSlotsSystem _itemSlotsSystem = default!; + + public override void Initialize() + { + base.Initialize(); + } + + } From eed1f01a36f63563c4a26cf3581addf213b96abc Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sat, 18 Jul 2026 22:53:49 +0200 Subject: [PATCH 06/10] i have no idea what i'm doing and i'm scared --- .../_Mono/SectorCapture/Components/CaptureTerminalComponent.cs | 1 - .../_Mono/SectorCapture/Components/ControlKeyComponent.cs | 1 - Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs index a54fd93a972..6da5ad8d998 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs @@ -1,4 +1,3 @@ -using Robust.Shared.Components; using Content.Shared._Mono.Company; using Content.Shared.Containers.ItemSlots; diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs index ed6213264b7..9192d873f7a 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs @@ -1,5 +1,4 @@ using Content.Shared._Mono.Company; -using Content.Shared.Containers.ItemSlots; namespace Content.Shared._Mono.SectorCapture.Components; [RegisterComponent, NetworkedComponent] diff --git a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs index b40e9b8c597..b68cfafc579 100644 --- a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs +++ b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs @@ -5,6 +5,7 @@ using Content.Shared._NF.Bank; using Content.Shared.Containers.ItemSlots; using System.Runtime.CompilerServices; +using Content.Shared.Lathe; namespace Content.Shared._Mono.SectorCapture; public abstract partial class SectorCaptureSystem : EntitySystem From 331d8cf6dd690368a5211c3d667dd11e942c295e Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sun, 19 Jul 2026 13:24:36 +0200 Subject: [PATCH 07/10] oo ye woo ye i'm coding it --- .../Components/CapturableGridComponent.cs | 26 +++++++++++++++++++ .../Components/CaptureTerminalComponent.cs | 4 +-- .../Components/ControlKeyComponent.cs | 2 +- .../Components/ControlTerminalComponent.cs | 2 +- .../SectorCapture/SectorCaptureSystem.cs | 6 ++--- .../SectorCapture/SectorControlSystem.cs | 8 ++++++ .../Devices/sector_control_capture_keys.yml | 26 +++++++++++++++++++ 7 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs create mode 100644 Content.Shared/_Mono/SectorCapture/SectorControlSystem.cs diff --git a/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs new file mode 100644 index 00000000000..b8635373b3c --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs @@ -0,0 +1,26 @@ +using System.ComponentModel; +using Robus.Shared.Gamestates; +/// +/// Marks an entity as a capturable point. +/// Stores the permanent ownership state of the grid. +/// +namespace Content.Shared._Mono.SectorCapture.Components; +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class CapturableGridComponent : Component +{ + [Datafield] + [AutoNetworkedField] + public string? Owner; + [Datafield] + [AutoNetworkedField] + public bool IsBeingCaptured; + [Datafield] + [AutoNetworkedField] + public string? CaptureState; + [DataField] + [AutoNetworkedField] + public float CaptureProgress; + [DataField] + public string? Class ; + +} diff --git a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs index 6da5ad8d998..97b1bc4dff8 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs @@ -9,10 +9,10 @@ public sealed partial class CaptureTerminalComponent : Component /// sets the current owner of the terminal /// [DataField] - public string Owner = ""; + public string? Owner ; /// /// sets what class of POI terminal (ergo what class of POI) the terminal is assigned to: either Economy or Research /// [DataField] - public string Class = ""; + public string? Class ; } diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs index 9192d873f7a..49ca3831b99 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs @@ -9,5 +9,5 @@ public sealed partial class ControlKeyComponent : Component /// [Datafield] [AutoNetworkedField] - public string Owner = ""; + public string? Owner; } diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs index 7f068dbbbeb..cf0c31309a4 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs @@ -9,5 +9,5 @@ public sealed partial class ControlTerminalComponent : Component /// sets the owner of the Control terminal, will not get changed in gameplay /// [DataField] - public string Owner = ""; + public string? Owner ; } diff --git a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs index b68cfafc579..c62059f2d9e 100644 --- a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs +++ b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs @@ -1,11 +1,9 @@ using Content.Shared._Mono.SectorCapture.Components; using Content.Shared._Mono.SectorCapture.Prototypes; -using Content.Shared.Research; using Content.Shared._Mono.Company; -using Content.Shared._NF.Bank; using Content.Shared.Containers.ItemSlots; -using System.Runtime.CompilerServices; -using Content.Shared.Lathe; +using Content.Server.Radio.EntitySystems; +using Content.Shared.Popups; namespace Content.Shared._Mono.SectorCapture; public abstract partial class SectorCaptureSystem : EntitySystem diff --git a/Content.Shared/_Mono/SectorCapture/SectorControlSystem.cs b/Content.Shared/_Mono/SectorCapture/SectorControlSystem.cs new file mode 100644 index 00000000000..40e2e47493b --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/SectorControlSystem.cs @@ -0,0 +1,8 @@ +using Content.Shared.Research; +using Content.Shared._NF.Bank; +using Content.Server.Radio.EntitySystems; +using Content.Shared._Mono.SectorCapture.Components; +using Content.Shared._Mono.SectorCapture.Prototypes; +using Content.Shared._Mono.Company; + +namespace Content.Shared._Mono.SectorControl; diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml b/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml index 7d0b9c3855a..ac55c2b841c 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml @@ -18,3 +18,29 @@ state: - type: ControlKey owner: None + +- type: entity + parent: SectorControlCaptureKey + suffix: TSF + id: SectorControlCaptureKeyTSF + name: Tsf encrypted capture key + description: A small electronic key containing a data package specifically designed to target a station's systems and take control of them. This one has a Trans solarian data package on it. + components: + - type: Sprite + sprite: + state: + - type: ControlKey + owner: TSF + +- type: entity + parent: SectorControlCaptureKey + suffix: Empty + id: SectorControlCaptureKeyPDV + name: Pdv encrypted capture key + description: A small electronic key containing a data package specifically designed to target a station's systems and take control of them. This one has an Imperial data package on it. + components: + - type: Sprite + sprite: + state: + - type: ControlKey + owner: PDV From 2d143f8e0931becca4ca4a45db5f151e7a82a216 Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sun, 19 Jul 2026 14:34:25 +0200 Subject: [PATCH 08/10] a --- .../_Mono/SectorCapture/Components/ControlKeyComponent.cs | 2 +- .../SectorCapture/Components/ControlTerminalComponent.cs | 4 ++-- .../Entities/Objects/Devices/sector_control_capture_keys.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs index 49ca3831b99..e8c707f2f6c 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlKeyComponent.cs @@ -5,7 +5,7 @@ namespace Content.Shared._Mono.SectorCapture.Components; public sealed partial class ControlKeyComponent : Component { /// - /// This component takes the company (or faction) of the source Control terminal and keeps it in memory to imprint onto Capture Terminals + /// This component sets the company of the encrypted capture key, and is used to switch state from Neutral/Hacked to Captured, with the owner built in /// [Datafield] [AutoNetworkedField] diff --git a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs index cf0c31309a4..98f5c7d3531 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/ControlTerminalComponent.cs @@ -6,8 +6,8 @@ namespace Content.Shared._Mono.SectorCapture.Components; public sealed partial class ControlTerminalComponent : Component { /// - /// sets the owner of the Control terminal, will not get changed in gameplay + /// sets the owner of the Control terminal, so that it can display which POIs the owner (ergo faction) has captured /// [DataField] - public string? Owner ; + public string? Owner; } diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml b/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml index ac55c2b841c..372d1ddfa15 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Devices/sector_control_capture_keys.yml @@ -34,7 +34,7 @@ - type: entity parent: SectorControlCaptureKey - suffix: Empty + suffix: PDV id: SectorControlCaptureKeyPDV name: Pdv encrypted capture key description: A small electronic key containing a data package specifically designed to target a station's systems and take control of them. This one has an Imperial data package on it. From c416cfaa48370583bdf5820ca317e356dbe1de30 Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Sun, 19 Jul 2026 16:18:43 +0200 Subject: [PATCH 09/10] a --- .../Components/CapturableGridComponent.cs | 21 ++++++++++++++++++- .../Components/CaptureTerminalComponent.cs | 5 +++-- .../SectorCapture/SectorCaptureSystem.cs | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs index b8635373b3c..974fbd4cb2a 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/CapturableGridComponent.cs @@ -8,19 +8,38 @@ namespace Content.Shared._Mono.SectorCapture.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class CapturableGridComponent : Component { + /// + /// This is the current owner of the capturable grid; ie. TSF, USSP, PDV, VG, all other factions that should be able to capture a POI + /// [Datafield] [AutoNetworkedField] public string? Owner; + /// + /// Set to True if the grid is currently in the process of being captured + /// [Datafield] [AutoNetworkedField] public bool IsBeingCaptured; + /// + /// this is the state that updates after a capture attempt is successful, it should take only three values: + /// Neutral (no one touched it, the POI functions associated are turned off); + /// Captured (with precision of who captured it); + /// Hijacked (third mode of operation, a merc or spacer hijacked it with a regular id and as such it does not benefit to factions but prints cash/research disks) + /// [Datafield] [AutoNetworkedField] public string? CaptureState; + /// + /// Tracks the progress of the POI capture up to 100 + /// [DataField] [AutoNetworkedField] public float CaptureProgress; + /// + /// This dictates the class of the capturable grid, either an economic capture point, which sets off its own shenanigans when captured, or research capture point, which sets off its own shenanigans when captured + /// (maybe add a third type that'd throw unique rewards aside from global tax revenue) + /// [DataField] - public string? Class ; + public string? CaptureClass ; } diff --git a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs index 97b1bc4dff8..d7250dd2a53 100644 --- a/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs +++ b/Content.Shared/_Mono/SectorCapture/Components/CaptureTerminalComponent.cs @@ -11,8 +11,9 @@ public sealed partial class CaptureTerminalComponent : Component [DataField] public string? Owner ; /// - /// sets what class of POI terminal (ergo what class of POI) the terminal is assigned to: either Economy or Research + /// sets the class of capture terminal, which should correspond with the class of the POI that the terminal is on + /// used to trigger specific radio calls/ popups (eventually a specific ui depending on POI class?) /// [DataField] - public string? Class ; + public string? CaptureClass ; } diff --git a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs index c62059f2d9e..9c9398b672d 100644 --- a/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs +++ b/Content.Shared/_Mono/SectorCapture/SectorCaptureSystem.cs @@ -15,6 +15,7 @@ public abstract partial class SectorCaptureSystem : EntitySystem public override void Initialize() { base.Initialize(); + } From 55beec520bef6377408fd2d948311e8cc90e4c75 Mon Sep 17 00:00:00 2001 From: EldritchPineapple Date: Mon, 20 Jul 2026 15:16:25 +0200 Subject: [PATCH 10/10] a --- .../_Mono/SectorCapture/Components/HijackKeyComponent.cs | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Content.Shared/_Mono/SectorCapture/Components/HijackKeyComponent.cs diff --git a/Content.Shared/_Mono/SectorCapture/Components/HijackKeyComponent.cs b/Content.Shared/_Mono/SectorCapture/Components/HijackKeyComponent.cs new file mode 100644 index 00000000000..bdca0b94236 --- /dev/null +++ b/Content.Shared/_Mono/SectorCapture/Components/HijackKeyComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Shared._Mono.SectorCapture.Components; +[RegisterComponent, NetworkedComponent] +public sealed partial class HijackKeyComponent : Component +{}