diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml index 0d90cd1e45..28f8652463 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml @@ -163,7 +163,7 @@ - type: PaintableAirlock group: Glass - type: Construction - node: airlockMedSecurity + node: glassAirlockMedSecurity - type: entity parent: AirlockGlass @@ -215,7 +215,7 @@ - type: PaintableAirlock group: Glass - type: Construction - node: airlockMaxSecurity + node: glassAirlockMaxSecurity - type: entity parent: AirlockGlass @@ -227,4 +227,4 @@ - type: PaintableAirlock group: Glass - type: Construction - node: airlockMedSecurity + node: glassAirlockMedSecurity diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml index 47478ac0fe..3d7e458731 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml @@ -112,6 +112,9 @@ - node: glassAirlock entity: AirlockGlass + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level0 edges: - to: glassElectronics conditions: @@ -128,6 +131,202 @@ steps: - tool: Prying doAfter: 2 + + - to: glassAirlockMedSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Steel + amount: 2 + doAfter: 2 + + - to: glassAirlockHighSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Plasteel + amount: 2 + doAfter: 2 + +## Return node so that removing all internal plating doesn't reset the door + - node: glassAirlockUnsecured + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level0 + edges: + - to: glassElectronics + conditions: + - !type:EntityAnchored {} + - !type:DoorWelded {} + - !type:DoorBolted + value: false + - !type:WirePanel {} + - !type:AllWiresCut + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 1 + steps: + - tool: Prying + doAfter: 2 + + - to: glassAirlockMedSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Steel + amount: 2 + doAfter: 2 + + - to: glassAirlockHighSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Plasteel + amount: 2 + doAfter: 2 + +## Medium security level airlock: a layer of steel plating protects the internal wiring + - node: glassAirlockMedSecurityBreached + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level1 + edges: + - to: glassAirlockUnsecured + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Prying + doAfter: 4 + + - to: glassAirlockMedSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 3 + + - node: glassAirlockMedSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level2 + edges: + - to: glassAirlockMedSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 10 + +## High security level airlock: a layer of plasteel plating protects the internal wiring + - node: glassAirlockHighSecurityBreached + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level3 + edges: + - to: glassAirlockUnsecured + completed: + - !type:GivePrototype + prototype: SheetPlasteel1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Prying + doAfter: 4 + + - to: glassAirlockHighSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 5 + + - node: glassAirlockHighSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level4 + edges: + - to: glassAirlockHighSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 15 + + - to: glassAirlockMaxSecurity + conditions: + - !type:WirePanel {} + steps: + - material: MetalRod + amount: 2 + doAfter: 1 + +## Max security level airlock: an electric grill is added + - node: glassAirlockMaxSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level5 + edges: + - to: glassAirlockHighSecurity + completed: + - !type:AttemptElectrocute + - !type:GivePrototype + prototype: PartRodMetal1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Cutting + doAfter: 0.5 + + - to: glassAirlockSuperMaxSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Plasteel + amount: 2 + doAfter: 2 + +## Super max security level airlock: an additional layer of plasteel is added + - node: glassAirlockSuperMaxSecurityBreached + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level6 + edges: + - to: glassAirlockMaxSecurity + completed: + - !type:GivePrototype + prototype: SheetPlasteel1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Prying + doAfter: 4 + + - to: glassAirlockSuperMaxSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 5 + + - node: glassAirlockSuperMaxSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level7 + edges: + - to: glassAirlockSuperMaxSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 15 - node: airlock entity: Airlock