diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml index 1878fd7cee..d32cdc0939 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 @@ -432,7 +442,7 @@ board: [ DoorElectronicsTheatre ] - type: entity - parent: AirlockGlass + parent: AirlockServiceGlassLocked id: AirlockBarGlassLocked suffix: Bar, Locked components: @@ -457,6 +467,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockExternalGlass @@ -466,6 +478,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSyndicateAgent ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternalGlass @@ -475,6 +489,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsNukeop ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternalGlass @@ -484,6 +500,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternalGlass @@ -493,6 +511,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsAtmospherics ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockServiceGlassLocked @@ -1155,6 +1175,9 @@ components: - type: PriorityDock tag: DockArrivals + - type: ContainerFill + containers: + board: [ DoorElectronicsExternal ] - type: entity parent: AirlockGlassShuttle @@ -1166,6 +1189,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 b509d5feb4..34d9b21622 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 98b2ebc0d1..690e4c2e97 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: @@ -207,6 +217,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: WindoorSecure @@ -218,7 +230,7 @@ board: [ DoorElectronicsChapel ] - type: entity - parent: WindoorSecure + parent: WindoorSecureMedicalLocked id: WindoorSecureChemistryLocked suffix: Chemistry, Locked components: @@ -234,9 +246,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsChemistry ] + - type: Wires + layoutId: AirlockMedical - type: entity - parent: WindoorSecure + parent: WindoorSecureCommandLocked id: WindoorSecureCentralCommandLocked suffix: Central Command, Locked components: @@ -245,7 +259,7 @@ board: [ DoorElectronicsCentralCommand ] - type: entity - parent: WindoorSecurePlasma + parent: PlasmaWindoorSecureCommandLocked id: PlasmaWindoorSecureCentralCommandLocked suffix: Central Command, Locked, Plasma components: @@ -261,6 +275,10 @@ - type: ContainerFill containers: board: [ DoorElectronicsCentralCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity parent: WindoorSecure @@ -270,6 +288,10 @@ - type: ContainerFill containers: board: [ DoorElectronicsCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity parent: WindoorSecurePlasma @@ -279,9 +301,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: @@ -297,6 +323,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecurePlasma @@ -306,6 +334,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecureUranium @@ -315,6 +345,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecure @@ -324,9 +356,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsExternal ] + - type: Wires + layoutId: AirlockExternal - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureJanitorLocked suffix: Janitor, Locked components: @@ -342,9 +376,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsJanitor ] + - type: Wires + layoutId: AirlockService - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureKitchenLocked suffix: Kitchen, Locked components: @@ -369,9 +405,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsMedical ] + - type: Wires + layoutId: AirlockMedical - type: entity - parent: WindoorSecure + parent: WindoorSecureCargoLocked id: WindoorSecureSalvageLocked suffix: Salvage, Locked components: @@ -387,6 +425,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSecurity ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: WindoorSecurePlasma @@ -396,6 +436,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSecurity ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: WindoorSecure @@ -405,6 +447,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsResearch ] + - type: Wires + layoutId: AirlockScience - type: entity parent: WindoorSecurePlasma @@ -414,6 +458,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsResearch ] + - type: Wires + layoutId: AirlockScience - type: entity parent: WindoorSecure @@ -423,9 +469,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 6c6ba2cd37..4f90b3ac69 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1160,6 +1160,15 @@ id: SecBeltEquip - type: Tag + id: SecurePlasmaWindoor + +- type: Tag + id: SecureUraniumWindoor + +- type: Tag + id: SecureWindoor + +- type: Tag id: SecurityHelmet - type: Tag