--- /dev/null
+namespace Content.Client.Wall;
+
+public enum ShuttleWallVisualLayers : byte
+{
+ Deconstruction,
+}
--- /dev/null
+namespace Content.Shared.Wall;
+using Robust.Shared.Serialization;
+
+[Serializable, NetSerializable]
+public enum ShuttleWallVisuals
+{
+ DeconstructionStage,
+}
components:
- type: Transform
anchored: true
- noRot: true
+ noRot: false
- type: Physics
bodyType: Static
- type: Fixtures
!type:DamageTrigger
damage: 600
behaviors:
+ - !type:PlaySoundBehavior
+ sound:
+ path: /Audio/Effects/metalbreak.ogg
- !type:ChangeConstructionNodeBehavior
node: girder
- !type:DoActsBehavior
acts: ["Destruction"]
+ destroySound:
+ path: /Audio/Effects/metalbreak.ogg
- type: IconSmooth
key: walls
base: reinf_over
key: walls
base: silver
+#shuttle walls
- type: entity
id: WallShuttleDiagonal
name: shuttle wall
- suffix: diagonal
+ suffix: Diagonal
description: Keeps the air in and the greytide out.
placement:
mode: SnapgridCenter
state: state0
- type: Damageable
damageContainer: Inorganic
- damageModifierSet: Metallic
+ damageModifierSet: StrongMetallic
- type: Physics
bodyType: Static
- type: Reflect
!type:DamageTrigger
damage: 300
behaviors:
+ - !type:ChangeConstructionNodeBehavior
+ node: girder
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
acts: ["Destruction"]
destroySound:
path: /Audio/Effects/metalbreak.ogg
+ - type: Construction
+ graph: Girder
+ node: diagonalshuttleWall
- type: entity
- parent: BaseWall
+ parent: WallReinforced
id: WallShuttle
name: shuttle wall
+ suffix: Reinforced, Exterior
components:
- - type: Tag
- tags:
- - Wall
- - RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/shuttle.rsi
- type: Icon
sprite: Structures/Walls/shuttle.rsi
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 1000
- behaviors:
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- - trigger:
- !type:DamageTrigger
- damage: 500
- behaviors:
- - !type:PlaySoundBehavior
- sound:
- path: /Audio/Effects/metalbreak.ogg
- - !type:DoActsBehavior
- acts: ["Destruction"]
- destroySound:
- path: /Audio/Effects/metalbreak.ogg
+ state: full
+ - type: Construction
+ graph: Girder
+ node: shuttleWall
+ - type: IconSmooth
+ key: walls
+ base: state
+ - type: Appearance
+ - type: GenericVisualizer
+ visuals:
+ enum.ShuttleWallVisuals.DeconstructionStage:
+ ShuttleWallVisualLayers.Deconstruction:
+ -1: { visible: false }
+ 0: { state: shuttle_construct-0, visible: true}
+ 1: { state: shuttle_construct-1, visible: true}
+ 2: { state: shuttle_construct-2, visible: true}
+ 3: { state: shuttle_construct-3, visible: true}
+ 4: { state: shuttle_construct-4, visible: true}
+ 5: { state: shuttle_construct-5, visible: true}
- type: Reflect
reflectProb: 1
+
+- type: entity
+ parent: WallSolid
+ id: WallShuttleInterior
+ name: shuttle wall
+ suffix: Interior
+ components:
+ - type: Sprite
+ sprite: Structures/Walls/shuttleinterior.rsi
+ - type: Icon
+ sprite: Structures/Walls/shuttleinterior.rsi
+ - type: Construction
+ graph: Girder
+ node: shuttleInteriorWall
- type: IconSmooth
key: walls
base: state
+ - type: Reflect
+ reflectProb: 1
- type: entity
parent: BaseWall
sprite: Structures/Windows/shuttle_window.rsi
- type: Icon
sprite: Structures/Windows/shuttle_window.rsi
+ - type: Repairable
+ fuelCost: 15
+ doAfterDelay: 3
- type: Damageable
damageContainer: Inorganic
damageModifierSet: RGlass
acts: [ "Destruction" ]
- type: IconSmooth
base: swindow
+ - type: Construction
+ graph: Window
+ node: shuttleWindow
- type: Appearance
- type: DamageVisuals
thresholds: [4, 8, 12]
damageOverlay:
sprite: Structures/Windows/cracks.rsi
- type: StaticPrice
- price: 75
+ price: 100
- type: entity
parent: ShuttleWindow
- to: reinforcedGirder
completed:
- !type:SnapToGrid
- southRotation: true
+ southRotation: false
conditions:
- !type:EntityAnchored {}
steps:
amount: 2
doAfter: 2
+ - to: shuttleInteriorWall
+ completed:
+ - !type:SnapToGrid
+ southRotation: true
+ conditions:
+ - !type:EntityAnchored { }
+ steps:
+ - material: MetalRod
+ amount: 2
+ doAfter: 1
+ - tool: Screwing
+ doAfter: 1
+ - material: Steel
+ amount: 2
+ doAfter: 1
+
- node: wall
entity: WallSolid
edges:
- tool: Prying
doAfter: 5
+ - node: shuttleInteriorWall
+ entity: WallShuttleInterior
+ edges:
+ - to: girder
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetSteel1
+ amount: 2
+ - !type:SpawnPrototype
+ prototype: PartRodMetal1
+ amount: 2
+ steps:
+ - tool: Welding
+ doAfter: 10
+ - tool: Screwing
+ doAfter: 1
+
- node: reinforcedGirder
entity: ReinforcedGirder
edges:
amount: 2
doAfter: 1
+ - to: shuttleWall
+ completed:
+ - !type:SnapToGrid
+ southRotation: true
+ conditions:
+ - !type:EntityAnchored { }
+ steps:
+ - material: MetalRod
+ amount: 4
+ doAfter: 1
+ - tool: Screwing
+ doAfter: 2
+ - material: Plasteel
+ amount: 2
+ doAfter: 1
+
+ - to: diagonalshuttleWall
+ completed:
+ - !type:SnapToGrid
+ southRotation: false
+ conditions:
+ - !type:EntityAnchored { }
+ steps:
+ - material: Steel
+ amount: 1
+ doAfter: 1
+ - tool: Welding
+ doAfter: 4
+ - material: Plasteel
+ amount: 1
+ doAfter: 1
+
- to: girder
completed:
- !type:SnapToGrid
- tool: Cutting
doAfter: 1
+ - node: shuttleWall
+ entity: WallShuttle
+ edges:
+ - to: reinforcedGirder
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetPlasteel1
+ amount: 2
+ - !type:SpawnPrototype
+ prototype: PartRodMetal1
+ amount: 4
+ steps:
+ - tool: Welding
+ doAfter: 10
+ - tool: Cutting
+ doAfter: 1
+ completed:
+ - !type:VisualizerDataInt
+ key: "enum.ShuttleWallVisuals.DeconstructionStage"
+ data: 5
+ - tool: Screwing
+ doAfter: 2
+ - tool: Welding
+ doAfter: 5
+ completed:
+ - !type:VisualizerDataInt
+ key: "enum.ShuttleWallVisuals.DeconstructionStage"
+ data: 4
+ - tool: Prying
+ doAfter: 2
+ - tool: Anchoring
+ doAfter: 1
+ completed:
+ - !type:VisualizerDataInt
+ key: "enum.ShuttleWallVisuals.DeconstructionStage"
+ data: 3
+ - tool: Welding
+ doAfter: 10
+ completed:
+ - !type:VisualizerDataInt
+ key: "enum.ShuttleWallVisuals.DeconstructionStage"
+ data: 2
+ - tool: Prying
+ doAfter: 1
+ completed:
+ - !type:VisualizerDataInt
+ key: "enum.ShuttleWallVisuals.DeconstructionStage"
+ data: 1
+ - tool: Screwing
+ doAfter: 1
+ completed:
+ - !type:VisualizerDataInt
+ key: "enum.ShuttleWallVisuals.DeconstructionStage"
+ data: 0
+ - tool: Cutting
+ doAfter: 4
+
+ - node: diagonalshuttleWall
+ entity: WallShuttleDiagonal
+ edges:
+ - to: reinforcedGirder
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetPlasteel1
+ amount: 1
+ - !type:SpawnPrototype
+ prototype: SheetSteel1
+ amount: 1
+ steps:
+ #To-Do: Add deconstruct visuals
+ - tool: Welding
+ doAfter: 5
+ - tool: Cutting
+ doAfter: 1
+ - tool: Screwing
+ doAfter: 1
+ - tool: Welding
+ doAfter: 5
+ - tool: Prying
+ doAfter: 1
+ - tool: Anchoring
+ doAfter: 1
+ - tool: Welding
+ doAfter: 10
+ - tool: Prying
+ doAfter: 1
+ - tool: Screwing
+ doAfter: 1
+ - tool: Cutting
+ doAfter: 1
+
- node: wallrust
entity: WallSolidRust
edges:
amount: 2
doAfter: 3
+ - to: shuttleWindow
+ steps:
+ - material: Plasteel
+ amount: 2
+ - material: ReinforcedGlass
+ amount: 2
+ doAfter: 4
+
- node: window
entity: Window
edges:
doAfter: 2
- tool: Anchoring
doAfter: 3
+
+ - node: shuttleWindow
+ entity: ShuttleWindow
+ edges:
+ - to: start
+ completed:
+ - !type:SpawnPrototype
+ prototype: SheetRGlass1
+ amount: 2
+ - !type:SpawnPrototype
+ prototype: SheetPlasteel1
+ amount: 2
+ - !type:DeleteEntity {}
+ steps:
+ #To-Do: Add deconstruct visuals
+ - tool: Welding
+ doAfter: 6
+ - tool: Screwing
+ doAfter: 2
+ - tool: Prying
+ doAfter: 3
+ - tool: Welding
+ doAfter: 5
+ - tool: Screwing
+ doAfter: 1
+ - tool: Prying
+ doAfter: 2
+ - tool: Welding
+ doAfter: 4
+ - tool: Anchoring
+ doAfter: 1
conditions:
- !type:TileNotBlocked
+- type: construction
+ name: shuttle wall
+ id: ShuttleWall
+ graph: Girder
+ startNode: start
+ targetNode: shuttleWall
+ category: construction-category-structures
+ description: Keeps the air in and the greytide out.
+ icon:
+ sprite: Structures/Walls/shuttle.rsi
+ state: full
+ objectType: Structure
+ placementMode: SnapgridCenter
+ canRotate: false
+ canBuildInImpassable: false
+ conditions:
+ - !type:TileNotBlocked
+
+- type: construction
+ name: interior shuttle wall
+ id: InteriorShuttleWall
+ graph: Girder
+ startNode: start
+ targetNode: shuttleInteriorWall
+ category: construction-category-structures
+ description: Keeps the air in and the greytide out.
+ icon:
+ sprite: Structures/Walls/shuttleinterior.rsi
+ state: full
+ objectType: Structure
+ placementMode: SnapgridCenter
+ canRotate: false
+ canBuildInImpassable: false
+ conditions:
+ - !type:TileNotBlocked
+
+
+- type: construction
+ name: diagonal shuttle wall
+ id: DiagonalShuttleWall
+ graph: Girder
+ startNode: start
+ targetNode: diagonalshuttleWall
+ category: construction-category-structures
+ description: Keeps the air in and the greytide out.
+ icon:
+ sprite: Structures/Walls/shuttle_diagonal.rsi
+ state: state0
+ objectType: Structure
+ placementMode: SnapgridCenter
+ canRotate: true
+ canBuildInImpassable: false
+ conditions:
+ - !type:TileNotBlocked
+
- type: construction
name: bananium wall
id: ClownWall
canRotate: false
- type: construction
+ name: shuttle window
+ id: ShuttleWindow
+ graph: Window
+ startNode: start
+ targetNode: shuttleWindow
+ category: construction-category-structures
+ canBuildInImpassable: true
+ description: Extra sturdy to resist the pressure of FTL or sustain damage from munitions.
+ conditions:
+ - !type:EmptyOrWindowValidInTile
+ - !type:NoWindowsInTile
+ icon:
+ sprite: Structures/Windows/shuttle_window.rsi
+ state: full
+ objectType: Structure
+ placementMode: SnapgridCenter
+ canRotate: false
+
+- type: construction
name: diagonal plasma window
id: PlasmaWindowDiagonal
graph: WindowDiagonal
{
"name": "state7",
"directions": 4
+ },
+ {
+ "name": "shuttle_construct-0"
+ },
+ {
+ "name": "shuttle_construct-1"
+ },
+ {
+ "name": "shuttle_construct-2"
+ },
+ {
+ "name": "shuttle_construct-3"
+ },
+ {
+ "name": "shuttle_construct-4"
+ },
+ {
+ "name": "shuttle_construct-5"
}
]
-}
\ No newline at end of file
+}
--- /dev/null
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "https://github.com/tgstation/tgstation/blob/9ddb8cf084e292571d4e9c79745db25befbd82fe/icons/turf/walls/shuttle_wall.dmi",
+ "states": [
+ {
+ "name": "full"
+ },
+ {
+ "name": "state0",
+ "directions": 4
+ },
+ {
+ "name": "state1",
+ "directions": 4
+ },
+ {
+ "name": "state2",
+ "directions": 4
+ },
+ {
+ "name": "state3",
+ "directions": 4
+ },
+ {
+ "name": "state4",
+ "directions": 4
+ },
+ {
+ "name": "state5",
+ "directions": 4
+ },
+ {
+ "name": "state6",
+ "directions": 4
+ },
+ {
+ "name": "state7",
+ "directions": 4
+ }
+ ]
+}
\ No newline at end of file