]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Adjust default airlock hacking protections (#20171)
authorchromiumboy <50505512+chromiumboy@users.noreply.github.com>
Fri, 15 Sep 2023 07:08:50 +0000 (02:08 -0500)
committerGitHub <noreply@github.com>
Fri, 15 Sep 2023 07:08:50 +0000 (23:08 -0800)
Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml
Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml
Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml [new file with mode: 0644]

index 0d77c8b98638f1ea28ec2d62b57eba3a8d49d864..f445163257d445dffe3ccd96f3aea81f0c3b3c89 100644 (file)
   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
   components:
   - type: Sprite
     sprite: Structures/Doors/Airlocks/Standard/security.rsi
-  - type: WiresPanel
-    securityLevel: Level2
-  - type: Construction
-    node: airlockMedSecurity
 
 - type: entity
   parent: Airlock
     sprite: Structures/Doors/Airlocks/Glass/atmospherics.rsi
   - type: PaintableAirlock
     group: Glass
-  - type: WiresPanel
-    securityLevel: Level2
-  - type: Construction
-    node: glassAirlockMedSecurity
 
 - type: entity
   parent: AirlockGlass
   - type: PaintableAirlock
     group: Glass
   - type: WiresPanel
-    securityLevel: Level5
+    securityLevel: Level2
   - type: Construction
-    node: glassAirlockMaxSecurity
+    node: glassAirlockMedSecurity
 
 - type: entity
   parent: AirlockGlass
     sprite: Structures/Doors/Airlocks/Glass/security.rsi
   - type: PaintableAirlock
     group: Glass
-  - type: WiresPanel
-    securityLevel: Level2
-  - type: Construction
-    node: glassAirlockMedSecurity
 
 - type: entity
   parent: AirlockGlass
index 912e3cfa39e2da3893541451c4ec2e82f61c62fa..80194a48cdfce7e6b04892b6b0f61552373d3718 100644 (file)
@@ -67,6 +67,7 @@
     enabled: false\r
     usesApcPower: true\r
   - type: WiresPanel\r
+    securityLevel: Level5\r
   - type: Wires\r
     BoardName: wires-board-name-highsec\r
     LayoutId: HighSec\r
@@ -92,3 +93,6 @@
   - type: IconSmooth\r
     key: walls\r
     mode: NoSprite\r
+  - type: Construction\r
+    graph: HighSecDoor\r
+    node: maxSecurity\r
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/highsec.yml
new file mode 100644 (file)
index 0000000..bf210ad
--- /dev/null
@@ -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