From e92e913452eab69605ad69fe8d9a48d6809e2eed Mon Sep 17 00:00:00 2001 From: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Date: Fri, 15 Sep 2023 02:08:50 -0500 Subject: [PATCH] Adjust default airlock hacking protections (#20171) --- .../Structures/Doors/Airlocks/airlocks.yml | 24 +-- .../Structures/Doors/Airlocks/highsec.yml | 4 + .../Graphs/structures/highsec.yml | 166 ++++++++++++++++++ 3 files changed, 174 insertions(+), 20 deletions(-) create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml index 0d77c8b986..f445163257 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml @@ -21,10 +21,6 @@ components: - type: Sprite sprite: Structures/Doors/Airlocks/Standard/atmospherics.rsi - - type: WiresPanel - securityLevel: Level2 - - type: Construction - node: airlockMedSecurity - type: entity parent: Airlock @@ -74,9 +70,9 @@ - type: Sprite sprite: Structures/Doors/Airlocks/Standard/command.rsi - type: WiresPanel - securityLevel: Level5 + securityLevel: Level2 - type: Construction - node: airlockMaxSecurity + node: airlockMedSecurity - type: entity parent: Airlock @@ -85,10 +81,6 @@ components: - type: Sprite sprite: Structures/Doors/Airlocks/Standard/security.rsi - - type: WiresPanel - securityLevel: Level2 - - type: Construction - node: airlockMedSecurity - type: entity parent: Airlock @@ -176,10 +168,6 @@ sprite: Structures/Doors/Airlocks/Glass/atmospherics.rsi - type: PaintableAirlock group: Glass - - type: WiresPanel - securityLevel: Level2 - - type: Construction - node: glassAirlockMedSecurity - type: entity parent: AirlockGlass @@ -231,9 +219,9 @@ - type: PaintableAirlock group: Glass - type: WiresPanel - securityLevel: Level5 + securityLevel: Level2 - type: Construction - node: glassAirlockMaxSecurity + node: glassAirlockMedSecurity - type: entity parent: AirlockGlass @@ -244,10 +232,6 @@ sprite: Structures/Doors/Airlocks/Glass/security.rsi - type: PaintableAirlock group: Glass - - type: WiresPanel - securityLevel: Level2 - - type: Construction - node: glassAirlockMedSecurity - type: entity parent: AirlockGlass diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml index 912e3cfa39..80194a48cd 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml @@ -67,6 +67,7 @@ enabled: false usesApcPower: true - type: WiresPanel + securityLevel: Level5 - type: Wires BoardName: wires-board-name-highsec LayoutId: HighSec @@ -92,3 +93,6 @@ - type: IconSmooth key: walls mode: NoSprite + - type: Construction + graph: HighSecDoor + node: maxSecurity diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml new file mode 100644 index 0000000000..bf210ad463 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml @@ -0,0 +1,166 @@ +- type: constructionGraph + id: HighSecDoor + start: start + graph: + - node: start + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level0 + edges: + - to: medSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Steel + amount: 2 + doAfter: 2 + + - to: highSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Plasteel + amount: 2 + doAfter: 2 + +## Medium security level door: a layer of steel plating protects the internal wiring + - node: medSecurityBreached + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level1 + edges: + - to: start + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Prying + doAfter: 4 + + - to: medSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 3 + + - node: medSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level2 + edges: + - to: medSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 10 + +## High security level door: a layer of plasteel plating protects the internal wiring + - node: highSecurityBreached + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level3 + edges: + - to: start + completed: + - !type:GivePrototype + prototype: SheetPlasteel1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Prying + doAfter: 4 + + - to: highSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 5 + + - node: highSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level4 + edges: + - to: highSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 15 + + - to: maxSecurity + conditions: + - !type:WirePanel {} + steps: + - material: MetalRod + amount: 2 + doAfter: 1 + +## Max security level door: an electric grill is added + - node: maxSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level5 + edges: + - to: highSecurity + completed: + - !type:AttemptElectrocute + - !type:GivePrototype + prototype: PartRodMetal1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Cutting + doAfter: 0.5 + + - to: superMaxSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - material: Plasteel + amount: 2 + doAfter: 2 + +## Super max security level door: an additional layer of plasteel is added + - node: superMaxSecurityBreached + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level6 + edges: + - to: maxSecurity + completed: + - !type:GivePrototype + prototype: SheetPlasteel1 + amount: 2 + conditions: + - !type:WirePanel {} + steps: + - tool: Prying + doAfter: 4 + + - to: superMaxSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 5 + + - node: superMaxSecurity + actions: + - !type:ChangeWiresPanelSecurityLevel + level: Level7 + edges: + - to: superMaxSecurityBreached + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 15 -- 2.51.2