Implement inflatable wall (#3703)

* Implement inflatable wall

* Actually block atmos

* Fix naming and add description

* Add requested changes

* Change prototype to field

* Refactor checks to use existing methods

* Fix PrototypeIdSerializer imports

* Fix mass in yaml
This commit is contained in:
ShadowCommander
2021-04-01 00:04:56 -07:00
committed by GitHub
parent a69e98dcdc
commit a98c0dadd4
17 changed files with 417 additions and 9 deletions

View File

@@ -24,7 +24,7 @@
Asphyxiation: 0
Bloodloss: 0
Cellular: 0
- type: resistanceSet
id: dionaResistances
coefficients:
@@ -51,7 +51,7 @@
Asphyxiation: 0
Bloodloss: 0
Cellular: 0
- type: resistanceSet
id: metallicResistances
coefficients:
@@ -77,4 +77,31 @@
Radiation: 0
Asphyxiation: 0
Bloodloss: 0
Cellular: 0
Cellular: 0
- type: resistanceSet
id: inflatableResistances
coefficients:
Blunt: 0.5
Slash: 1.0
Piercing: 2.0
Heat: 0.5
Shock: 0
Cold: 0
Poison: 0
Radiation: 0
Asphyxiation: 0
Bloodloss: 0
Cellular: 0
flatReductions:
Blunt: 5
Slash: 0
Piercing: 0
Heat: 0
Shock: 0
Cold: 0
Poison: 0
Radiation: 0
Asphyxiation: 0
Bloodloss: 0
Cellular: 0

View File

@@ -0,0 +1,40 @@
- type: entity
id: InflatableWall
name: inflatable barricade
description: An inflated membrane. Activate to deflate. Do not puncture.
components:
- type: Clickable
- type: InteractionOutline
- type: Sprite
sprite: Objects/Misc/inflatable_wall.rsi
state: inflatable_wall
- type: Physics
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 15
layer:
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable
- type: Damageable
resistances: inflatableResistances
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: DisassembleOnActivate
prototype: InflatableWallStack1
doAfter: 3
- type: Airtight
- type: SnapGrid
offset: Center
placement:
mode: SnapgridCenter

View File

@@ -0,0 +1,40 @@
- type: entity
id: InflatableWallStack
parent: BaseItem
name: inflatable barricade
description: A folded membrane which rapidly expands into a large cubical shape on activation.
suffix: Full
components:
- type: Stack
stackType: InflatableWall
- type: Sprite
sprite: Objects/Misc/inflatable_wall.rsi
state: item_wall
netsync: false
- type: Item
sprite: Objects/Misc/inflatable_wall.rsi
size: 5
- type: SpawnAfterInteract
prototype: InflatableWall
doAfter: 1
removeOnInteract: true
- type: Clickable
# - type: Appearance # TODO: Add stack sprites
# visuals:
# - type: StackVisualizer
# stackLayers:
# - coillv-10
# - coillv-20
# - coillv-30
- type: entity
parent: InflatableWallStack
id: InflatableWallStack1
suffix: 1
components:
- type: Sprite
state: item_wall
- type: Item
size: 5
- type: Stack
count: 1

View File

@@ -0,0 +1,4 @@
- type: stack
id: InflatableWall
name: inflatable wall
spawn: InflatableWallStack1