Fixed an issue where airlock safeguards could not be applied to glass airlocks (#19110)

This commit is contained in:
chromiumboy
2023-08-14 01:42:02 -05:00
committed by GitHub
parent 518bf77479
commit 6a41a554e5
2 changed files with 202 additions and 3 deletions

View File

@@ -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

View File

@@ -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