From 2452e4647652a09a968ebc1cc09e9ccd301720f4 Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:35:47 -0500 Subject: [PATCH] Completes secure wiring across all airlocks and windoors (#30794) Co-authored-by: Velcroboy --- .../Structures/Doors/Airlocks/access.yml | 28 +++++- .../Structures/Doors/Airlocks/external.yml | 2 + .../Doors/Windoors/base_structurewindoors.yml | 14 +++ .../Structures/Doors/Windoors/windoor.yml | 86 ++++++++++++++---- .../Graphs/structures/windoor.yml | 89 ++++++++++++++++++- Resources/Prototypes/Wires/layouts.yml | 4 + Resources/Prototypes/tags.yml | 9 ++ 7 files changed, 210 insertions(+), 22 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml index 0c280f339a..51484b9599 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml @@ -90,6 +90,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockExternal @@ -99,6 +101,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternal @@ -108,6 +112,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsAtmospherics ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternal @@ -117,6 +123,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSyndicateAgent ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternal @@ -126,6 +134,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsNukeop ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockFreezer @@ -431,7 +441,7 @@ board: [ DoorElectronicsTheatre ] - type: entity - parent: AirlockGlass + parent: AirlockServiceGlassLocked id: AirlockBarGlassLocked suffix: Bar, Locked components: @@ -456,6 +466,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockExternalGlass @@ -465,6 +477,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSyndicateAgent ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternalGlass @@ -474,6 +488,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsNukeop ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternalGlass @@ -483,6 +499,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternalGlass @@ -492,6 +510,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsAtmospherics ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockServiceGlassLocked @@ -1153,6 +1173,9 @@ components: - type: PriorityDock tag: DockArrivals + - type: ContainerFill + containers: + board: [ DoorElectronicsExternal ] - type: entity parent: AirlockGlassShuttle @@ -1164,6 +1187,9 @@ - type: IFF flags: - HideLabel + - type: ContainerFill + containers: + board: [ DoorElectronicsExternal ] #HighSecDoors - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml index 3197ba417f..7f5c019025 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml @@ -19,6 +19,8 @@ - type: PaintableAirlock group: External department: null + - type: Wires + layoutId: AirlockExternal - type: entity parent: AirlockExternal diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml index e9d95f90be..800affffbb 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml @@ -204,6 +204,11 @@ node: windoorSecure - type: StaticPrice price: 350 + - type: Tag + tags: + - SecureWindoor + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor + #Plasma Windoors - type: entity @@ -314,6 +319,11 @@ price: 500 - type: RadiationBlocker resistance: 4 + - type: Tag + tags: + - SecurePlasmaWindoor + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor + #Uranium Windoors - type: entity @@ -424,3 +434,7 @@ price: 750 - type: RadiationBlocker resistance: 5 + - type: Tag + tags: + - SecureUraniumWindoor + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml index 089d5f81d1..2501a9fb7a 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml @@ -44,7 +44,7 @@ # Windoors (alphabetical) - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorBarLocked suffix: Bar, Locked components: @@ -53,7 +53,7 @@ board: [ DoorElectronicsBar ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorBarKitchenLocked suffix: Bar&Kitchen, Locked components: @@ -69,6 +69,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: Windoor @@ -80,7 +82,7 @@ board: [ DoorElectronicsChapel ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorHydroponicsLocked suffix: Hydroponics, Locked components: @@ -89,7 +91,7 @@ board: [ DoorElectronicsHydroponics ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorJanitorLocked suffix: Janitor, Locked components: @@ -105,9 +107,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsJanitor ] + - type: Wires + layoutId: AirlockService - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorKitchenLocked suffix: Kitchen, Locked components: @@ -116,7 +120,7 @@ board: [ DoorElectronicsKitchen ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorKitchenHydroponicsLocked suffix: Kitchen&Hydroponics, Locked components: @@ -132,9 +136,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsService ] + - type: Wires + layoutId: AirlockService - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorTheatreLocked suffix: Theatre, Locked components: @@ -145,13 +151,15 @@ # Secure - type: entity - parent: WindoorSecureSecurityLocked + parent: WindoorSecure id: WindoorSecureArmoryLocked suffix: Armory, Locked components: - type: ContainerFill containers: board: [ DoorElectronicsArmory ] + - type: Wires + layoutId: AirlockArmory - type: entity parent: WindoorSecurePlasma @@ -161,9 +169,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsArmory ] + - type: Wires + layoutId: AirlockArmory - type: entity - parent: WindoorSecure + parent: WindoorSecureEngineeringLocked id: WindoorSecureAtmosphericsLocked suffix: Atmospherics, Locked components: @@ -172,7 +182,7 @@ board: [ DoorElectronicsAtmospherics ] - type: entity - parent: WindoorSecurePlasma + parent: PlasmaWindoorSecureEngineeringLocked id: PlasmaWindoorSecureAtmosphericsLocked suffix: Atmospherics, Locked, Plasma components: @@ -181,7 +191,7 @@ board: [ DoorElectronicsAtmospherics ] - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureBarLocked suffix: Bar, Locked components: @@ -206,6 +216,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: WindoorSecure @@ -217,7 +229,7 @@ board: [ DoorElectronicsChapel ] - type: entity - parent: WindoorSecure + parent: WindoorSecureMedicalLocked id: WindoorSecureChemistryLocked suffix: Chemistry, Locked components: @@ -233,9 +245,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsChemistry ] + - type: Wires + layoutId: AirlockMedical - type: entity - parent: WindoorSecure + parent: WindoorSecureCommandLocked id: WindoorSecureCentralCommandLocked suffix: Central Command, Locked components: @@ -244,7 +258,7 @@ board: [ DoorElectronicsCentralCommand ] - type: entity - parent: WindoorSecurePlasma + parent: PlasmaWindoorSecureCommandLocked id: PlasmaWindoorSecureCentralCommandLocked suffix: Central Command, Locked, Plasma components: @@ -260,6 +274,10 @@ - type: ContainerFill containers: board: [ DoorElectronicsCentralCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity parent: WindoorSecure @@ -269,6 +287,10 @@ - type: ContainerFill containers: board: [ DoorElectronicsCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity parent: WindoorSecurePlasma @@ -278,9 +300,13 @@ - type: ContainerFill containers: board: [ DoorElectronicsCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity - parent: WindoorSecure + parent: WindoorSecureSecurityLocked id: WindoorSecureDetectiveLocked suffix: Detective, Locked components: @@ -296,6 +322,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecurePlasma @@ -305,6 +333,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecureUranium @@ -314,6 +344,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecure @@ -323,9 +355,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsExternal ] + - type: Wires + layoutId: AirlockExternal - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureJanitorLocked suffix: Janitor, Locked components: @@ -341,9 +375,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsJanitor ] + - type: Wires + layoutId: AirlockService - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureKitchenLocked suffix: Kitchen, Locked components: @@ -368,9 +404,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsMedical ] + - type: Wires + layoutId: AirlockMedical - type: entity - parent: WindoorSecure + parent: WindoorSecureCargoLocked id: WindoorSecureSalvageLocked suffix: Salvage, Locked components: @@ -386,6 +424,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSecurity ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: WindoorSecurePlasma @@ -395,6 +435,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSecurity ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: WindoorSecure @@ -404,6 +446,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsResearch ] + - type: Wires + layoutId: AirlockScience - type: entity parent: WindoorSecurePlasma @@ -413,6 +457,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsResearch ] + - type: Wires + layoutId: AirlockScience - type: entity parent: WindoorSecure @@ -422,9 +468,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsService ] + - type: Wires + layoutId: AirlockService - type: entity - parent: WindoorSecure + parent: WindoorSecureCommandLocked id: WindoorSecureHeadOfPersonnelLocked suffix: HeadOfPersonnel, Locked components: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml index de89663467..b56c48d0df 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml @@ -370,7 +370,6 @@ - tool: Screwing doAfter: 4 - - node: wiredSecure entity: WindoorAssemblySecure edges: @@ -406,6 +405,10 @@ - node: windoorSecure entity: WindoorSecure + doNotReplaceInheritingEntities: true + actions: + - !type:SetWiresPanelSecurity + wiresAccessible: true edges: - to: wiredSecure conditions: @@ -422,6 +425,15 @@ - tool: Anchoring doAfter: 4 + - to: medSecurityUnfinished + conditions: + - !type:WirePanel {} + steps: + - material: Steel + amount: 2 + doAfter: 2 + +#Clockwork - node: assemblyClockwork entity: WindoorAssemblyClockwork actions: @@ -580,6 +592,10 @@ - node: pwindoorSecure entity: WindoorSecurePlasma + doNotReplaceInheritingEntities: true + actions: + - !type:SetWiresPanelSecurity + wiresAccessible: true edges: - to: pwiredSecure conditions: @@ -619,7 +635,6 @@ - tool: Screwing doAfter: 4 - - node: uwiredSecure entity: WindoorAssemblySecureUranium edges: @@ -655,6 +670,10 @@ - node: uwindoorSecure entity: WindoorSecureUranium + doNotReplaceInheritingEntities: true + actions: + - !type:SetWiresPanelSecurity + wiresAccessible: true edges: - to: uwiredSecure conditions: @@ -670,3 +689,69 @@ steps: - tool: Anchoring doAfter: 4 + +#Security Panels + - node: medSecurityUnfinished + actions: + - !type:SetWiresPanelSecurity + examine: wires-panel-component-on-examine-security-level1 + wiresAccessible: false + edges: + - to: windoorSecure + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + - !type:HasTag + tag: SecureWindoor + steps: + - tool: Prying + doAfter: 4 + + - to: pwindoorSecure + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + - !type:HasTag + tag: SecurePlasmaWindoor + steps: + - tool: Prying + doAfter: 4 + + - to: uwindoorSecure + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + - !type:HasTag + tag: SecureUraniumWindoor + steps: + - tool: Prying + doAfter: 4 + + - to: medSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 3 + + - node: medSecurity + actions: + - !type:SetWiresPanelSecurity + examine: wires-panel-component-on-examine-security-level2 + wiresAccessible: false + edges: + - to: medSecurityUnfinished + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 10 diff --git a/Resources/Prototypes/Wires/layouts.yml b/Resources/Prototypes/Wires/layouts.yml index 70b11ca7ed..7b42ef8b75 100644 --- a/Resources/Prototypes/Wires/layouts.yml +++ b/Resources/Prototypes/Wires/layouts.yml @@ -43,6 +43,10 @@ parent: Airlock id: AirlockArmory +- type: wireLayout + parent: Airlock + id: AirlockExternal + - type: wireLayout id: HighSec wires: diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index cfe1ecfdea..e2400265f2 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1157,6 +1157,15 @@ id: SecBeltEquip - type: Tag + id: SecurePlasmaWindoor + +- type: Tag + id: SecureUraniumWindoor + +- type: Tag + id: SecureWindoor + +- type: Tag id: SecurityHelmet - type: Tag -- 2.51.2