Skip to content

Commit

Permalink
Make shuttle walls/windows constructable (#19255)
Browse files Browse the repository at this point in the history
  • Loading branch information
IamVelcroboy authored Nov 21, 2023
1 parent 646aee0 commit a698a85
Show file tree
Hide file tree
Showing 25 changed files with 407 additions and 30 deletions.
6 changes: 6 additions & 0 deletions Content.Client/Wall/ShuttleWallVisuals.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace Content.Client.Wall;

public enum ShuttleWallVisualLayers : byte
{
Deconstruction,
}
8 changes: 8 additions & 0 deletions Content.Shared/Wall/ShuttleWallVisuals.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Content.Shared.Wall;
using Robust.Shared.Serialization;

[Serializable, NetSerializable]
public enum ShuttleWallVisuals
{
DeconstructionStage,
}
2 changes: 1 addition & 1 deletion Resources/Prototypes/Entities/Structures/Walls/girders.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
components:
- type: Transform
anchored: true
noRot: true
noRot: false
- type: Physics
bodyType: Static
- type: Fixtures
Expand Down
76 changes: 50 additions & 26 deletions Resources/Prototypes/Entities/Structures/Walls/walls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -514,10 +514,15 @@
!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
Expand Down Expand Up @@ -642,10 +647,11 @@
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
Expand All @@ -671,7 +677,7 @@
state: state0
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
damageModifierSet: StrongMetallic
- type: Physics
bodyType: Static
- type: Reflect
Expand Down Expand Up @@ -707,51 +713,69 @@
!type:DamageTrigger
damage: 300
behaviors:
- !type:ChangeConstructionNodeBehavior
node: girder
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
- !type:DoActsBehavior
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
Expand Down
8 changes: 7 additions & 1 deletion Resources/Prototypes/Entities/Structures/Windows/shuttle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
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
Expand Down Expand Up @@ -38,6 +41,9 @@
acts: [ "Destruction" ]
- type: IconSmooth
base: swindow
- type: Construction
graph: Window
node: shuttleWindow
- type: Appearance
- type: DamageVisuals
thresholds: [4, 8, 12]
Expand All @@ -46,7 +52,7 @@
damageOverlay:
sprite: Structures/Windows/cracks.rsi
- type: StaticPrice
price: 75
price: 100

- type: entity
parent: ShuttleWindow
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
- to: reinforcedGirder
completed:
- !type:SnapToGrid
southRotation: true
southRotation: false
conditions:
- !type:EntityAnchored {}
steps:
Expand Down Expand Up @@ -145,6 +145,22 @@
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:
Expand Down Expand Up @@ -263,6 +279,23 @@
- 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:
Expand All @@ -277,6 +310,38 @@
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
Expand Down Expand Up @@ -342,6 +407,97 @@
- 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:
Expand Down
Loading

0 comments on commit a698a85

Please sign in to comment.