diff --git a/Content.Client/Wall/ShuttleWallVisuals.cs b/Content.Client/Wall/ShuttleWallVisuals.cs new file mode 100644 index 0000000000..9060e892a8 --- /dev/null +++ b/Content.Client/Wall/ShuttleWallVisuals.cs @@ -0,0 +1,6 @@ +namespace Content.Client.Wall; + +public enum ShuttleWallVisualLayers : byte +{ + Deconstruction, +} diff --git a/Content.Shared/Wall/ShuttleWallVisuals.cs b/Content.Shared/Wall/ShuttleWallVisuals.cs new file mode 100644 index 0000000000..31fef9f399 --- /dev/null +++ b/Content.Shared/Wall/ShuttleWallVisuals.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Wall; +using Robust.Shared.Serialization; + +[Serializable, NetSerializable] +public enum ShuttleWallVisuals +{ + DeconstructionStage, +} diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 9ef0ef95d3..ff9a7ef9ae 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -530,9 +530,6 @@ !type:DamageTrigger damage: 600 behaviors: - - !type:PlaySoundBehavior #Nyano - sound: - collection: MetalBreak - !type:DoActsBehavior acts: ["Destruction"] - !type:PlaySoundBehavior @@ -793,19 +790,13 @@ !type:DamageTrigger damage: 300 behaviors: + - !type:ChangeConstructionNodeBehavior + node: girder - !type:PlaySoundBehavior sound: collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - - trigger: #this trigger is a Nyano addition - !type:DamageTrigger - damage: 300 - behaviors: - - !type:ChangeConstructionNodeBehavior - node: girder - - !type:DoActsBehavior - acts: ["Destruction"] destroySound: collection: MetalBreak - type: Construction @@ -813,45 +804,54 @@ node: diagonalshuttleWall - type: entity - parent: WallReinforced #Nyano, basically Reinforced Wall (shuttle variant) + parent: WallReinforced id: WallShuttle name: shuttle wall components: - - type: Tag - tags: - - Wall - type: Sprite sprite: Structures/Walls/shuttle.rsi - type: Icon sprite: Structures/Walls/shuttle.rsi state: full -# - 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 - - type: Reflect - reflectProb: 1 - 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 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml index 1254829991..0d398128af 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml @@ -1,22 +1,3 @@ -- type: entity - parent: WallSolid #basically non-Reinforced Wall (shuttle variant) - id: WallShuttleInterior - name: shuttle wall - suffix: Interior - components: - - type: Sprite - sprite: Nyanotrasen/Structures/Walls/shuttleinterior.rsi - - type: Icon - sprite: Nyanotrasen/Structures/Walls/shuttleinterior.rsi - - type: Construction - graph: Girder - node: shuttleInteriorWall - - type: IconSmooth - key: walls - base: state - - type: Reflect - reflectProb: 1 - - type: entity parent: BaseWall id: WallPaper diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Construction/structures.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Construction/structures.yml index 16dc3dcbbd..16a85346b3 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Construction/structures.yml @@ -15,78 +15,3 @@ canBuildInImpassable: false 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: Nyanotrasen/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: 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 - \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml index 9f18fe8f2f..9e9087fbd7 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml @@ -156,7 +156,7 @@ amount: 2 doAfter: 2 - - to: shuttleInteriorWall #Nyano + - to: shuttleInteriorWall completed: - !type:SnapToGrid southRotation: true @@ -290,7 +290,7 @@ - tool: Prying doAfter: 5 - - node: shuttleInteriorWall #Nyano + - node: shuttleInteriorWall entity: WallShuttleInterior edges: - to: girder @@ -321,7 +321,7 @@ amount: 2 doAfter: 1 - - to: shuttleWall #Nyano + - to: shuttleWall completed: - !type:SnapToGrid southRotation: true @@ -337,7 +337,7 @@ amount: 2 doAfter: 1 - - to: diagonalshuttleWall #Nyano + - to: diagonalshuttleWall completed: - !type:SnapToGrid southRotation: false @@ -418,7 +418,7 @@ - tool: Cutting doAfter: 1 - - node: shuttleWall #Nyano + - node: shuttleWall entity: WallShuttle edges: - to: reinforcedGirder @@ -436,7 +436,7 @@ doAfter: 1 completed: - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" + key: "enum.ShuttleWallVisuals.DeconstructionStage" data: 5 - tool: Screwing doAfter: 2 @@ -444,7 +444,7 @@ doAfter: 5 completed: - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" + key: "enum.ShuttleWallVisuals.DeconstructionStage" data: 4 - tool: Prying doAfter: 2 @@ -452,30 +452,30 @@ doAfter: 1 completed: - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" + key: "enum.ShuttleWallVisuals.DeconstructionStage" data: 3 - tool: Welding doAfter: 10 completed: - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" + key: "enum.ShuttleWallVisuals.DeconstructionStage" data: 2 - tool: Prying doAfter: 1 completed: - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" + key: "enum.ShuttleWallVisuals.DeconstructionStage" data: 1 - tool: Screwing doAfter: 1 completed: - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" + key: "enum.ShuttleWallVisuals.DeconstructionStage" data: 0 - tool: Cutting doAfter: 4 - - node: diagonalshuttleWall #Nyano + - node: diagonalshuttleWall entity: WallShuttleDiagonal edges: - to: reinforcedGirder @@ -487,48 +487,25 @@ prototype: SheetSteel1 amount: 1 steps: + #To-Do: Add deconstruct visuals - tool: Welding doAfter: 5 - tool: Cutting doAfter: 1 - completed: - - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" - data: 5 - tool: Screwing doAfter: 1 - tool: Welding doAfter: 5 - completed: - - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" - data: 4 - tool: Prying doAfter: 1 - tool: Anchoring doAfter: 1 - completed: - - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" - data: 3 - tool: Welding doAfter: 10 - completed: - - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" - data: 2 - tool: Prying doAfter: 1 - completed: - - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" - data: 1 - tool: Screwing doAfter: 1 - completed: - - !type:VisualizerDataInt - key: "enum.ReinforcedWallVisuals.DeconstructionStage" - data: 0 - tool: Cutting doAfter: 1 diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index be793ed189..a1f370cc1b 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -214,6 +214,60 @@ 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 @@ -488,6 +542,25 @@ placementMode: SnapgridCenter 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 diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json b/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json index 97ca2aa3b0..9aff20a66c 100644 --- a/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json +++ b/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json @@ -41,6 +41,24 @@ { "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 +} diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-0.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-0.png new file mode 100644 index 0000000000..dde7f67085 Binary files /dev/null and b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-0.png differ diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-1.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-1.png new file mode 100644 index 0000000000..c68cfbac68 Binary files /dev/null and b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-1.png differ diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-2.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-2.png new file mode 100644 index 0000000000..d2f5bc0c3b Binary files /dev/null and b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-2.png differ diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-3.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-3.png new file mode 100644 index 0000000000..7098ec309a Binary files /dev/null and b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-3.png differ diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-4.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-4.png new file mode 100644 index 0000000000..120b1638c4 Binary files /dev/null and b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-4.png differ diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-5.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-5.png new file mode 100644 index 0000000000..c29bdb3197 Binary files /dev/null and b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-5.png differ diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/full.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/full.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/full.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/full.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/meta.json b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/meta.json similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/meta.json rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/meta.json diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state0.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state0.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state0.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state0.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state1.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state1.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state1.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state1.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state2.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state2.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state2.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state2.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state3.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state3.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state3.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state3.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state4.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state4.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state4.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state4.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state5.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state5.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state5.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state5.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state6.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state6.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state6.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state6.png diff --git a/Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state7.png b/Resources/Textures/Structures/Walls/shuttleinterior.rsi/state7.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Structures/Walls/shuttleinterior.rsi/state7.png rename to Resources/Textures/Structures/Walls/shuttleinterior.rsi/state7.png