]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Added plastitanium walls and windows (#31178)
authorUnisol <1929445+Unisol@users.noreply.github.com>
Thu, 29 Aug 2024 02:15:00 +0000 (22:15 -0400)
committerGitHub <noreply@github.com>
Thu, 29 Aug 2024 02:15:00 +0000 (12:15 +1000)
* added plastitanium walls and windows

* Changed crack sprite on diagonal window from square to diagonal

Resources/Prototypes/Entities/Structures/Walls/walls.yml
Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml

index 0e98b0a803fa041e0944e232015c454b42e8ee85..f48a12de33793f4dd04dbeb44a7efd190abfecf0 100644 (file)
   - type: Icon
     sprite: Structures/Walls/plastitanium_diagonal.rsi
     state: state0
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 2000
+      behaviors:
+        - !type:DoActsBehavior
+          acts: [ "Destruction" ]
+        - !type:PlaySoundBehavior
+          sound:
+            collection: MetalSlam
+    - trigger:
+        !type:DamageTrigger
+        damage: 1000
+      behaviors:
+      - !type:ChangeConstructionNodeBehavior
+        node: girder
+      - !type:PlaySoundBehavior
+        sound:
+          collection: MetalSlam
+      - !type:DoActsBehavior
+        acts: ["Destruction"]
+
+- type: entity
+  id: WallPlastitaniumDiagonalIndestructible
+  name: plastitanium wall
+  suffix: diagonal, indestructible
+  description: Keeps the air in and the greytide out.
+  placement:
+    mode: SnapgridCenter
+    snap:
+    - Wall
+  components:
+  - type: Transform
+    anchored: true
+  - type: Clickable
+  - type: Tag
+    tags:
+    - Wall
+  - type: Sprite
+    drawdepth: Walls
+    sprite: Structures/Walls/plastitanium_diagonal.rsi
+    state: state0
+  - type: IconSmooth
+    mode: Diagonal
+    key: walls
+    base: state
+  - type: Icon
+    sprite: Structures/Walls/plastitanium_diagonal.rsi
+    state: state0
+  - type: Physics
+    bodyType: Static
+  - type: Airtight
+    noAirWhenFullyAirBlocked: false
+    airBlockedDirection:
+    - South
+    - East
+  - type: Fixtures
+    fixtures:
+      fix1:
+        shape:
+          !type:PolygonShape
+            vertices:
+            - "-0.5,-0.5"
+            - "0.5,0.5"
+            - "0.5,-0.5"
+        mask:
+        - FullTileMask
+        layer:
+        - WallLayer
 
 - type: entity
   parent: BaseWall
index cb05f80cd1215a08fd25fc5d6676bee2a39c95d7..2134cfe892769fc43fabcf592afb5fa4fe0b4c97 100644 (file)
@@ -1,19 +1,77 @@
 - type: entity
-  id: PlastitaniumWindow
+  id: PlastitaniumWindowBase
+  parent: BaseStructure
+  abstract: true
   name: plastitanium window
-  parent: Window
+  description: Don't smudge up the glass down there.
+  placement:
+    mode: SnapgridCenter
+    snap:
+    - Window
+  components:
+  - type: RCDDeconstructable
+    deconstructable: false
+  - type: MeleeSound
+    soundGroups:
+      Brute:
+        collection: GlassSmack
+  - type: WallMount
+    arc: 360 # interact despite grilles
+  - type: Tag
+    tags:
+      - ForceFixRotations
+      - Window
+  - type: Physics
+    bodyType: Static
+  - type: ExaminableDamage
+    messages: WindowMessages
+  - type: InteractionPopup
+    interactSuccessString: comp-window-knock
+    messagePerceivedByOthers: comp-window-knock
+    interactSuccessSound:
+      path: /Audio/Effects/glass_knock.ogg
+  - type: Appearance
+  - type: StaticPrice
+    price: 100
+  - type: BlockWeather
+
+- type: entity
+  id: PlastitaniumWindowSquareBase
+  abstract: true
+  name: plastitanium window
+  parent: PlastitaniumWindowBase
   components:
   - type: Sprite
     drawdepth: WallTops
     sprite: Structures/Windows/plastitanium_window.rsi
   - type: Icon
     sprite: Structures/Windows/plastitanium_window.rsi
-  - type: Repairable
-    fuelCost: 15
-    doAfterDelay: 3
-  - type: Damageable
-    damageContainer: StructuralInorganic
-    damageModifierSet: RGlass
+    state: full
+  - type: IconSmooth
+    key: windows
+    base: ptwindow
+  - type: Airtight
+  - type: Fixtures
+    fixtures:
+      fix1:
+        shape:
+          !type:PhysShapeAabb {}
+        mask:
+        - FullTileMask
+        layer:
+        - GlassLayer
+
+- type: entity
+  id: PlastitaniumWindowIndestructible
+  name: plastitanium window
+  parent: PlastitaniumWindowSquareBase
+  suffix: indestructible
+
+- type: entity
+  id: PlastitaniumWindow
+  name: plastitanium window
+  parent: PlastitaniumWindowSquareBase
+  components:
   - type: Destructible
     thresholds:
     - trigger:
             max: 2
       - !type:DoActsBehavior
         acts: [ "Destruction" ]
-  - type: IconSmooth
-    base: ptwindow
-  - type: Appearance
   - type: DamageVisuals
     thresholds: [4, 8, 12]
     damageDivisor: 28
     trackAllDamage: true
     damageOverlay:
       sprite: Structures/Windows/cracks.rsi
-  - type: StaticPrice
-    price: 100
+  - type: Repairable
+    fuelCost: 15
+    doAfterDelay: 3
+  - type: Damageable
+    damageContainer: StructuralInorganic
+    damageModifierSet: RGlass
 
 - type: entity
-  parent: ShuttleWindow
-  id: PlastitaniumWindowDiagonal
+  id: PlastitaniumWindowDiagonalBase
+  abstract: true
+  name: plastitanium window
+  parent: PlastitaniumWindowBase
   suffix: diagonal
-  placement:
-    mode: SnapgridCenter
-    snap:
-    - Window
   components:
   - type: Sprite
     drawdepth: WallTops
     sprite: Structures/Windows/plastitanium_window_diagonal.rsi
     state: state0
+  - type: Icon
+    sprite: Structures/Windows/plastitanium_window_diagonal.rsi
+    state: state0
   - type: IconSmooth
     mode: Diagonal
     key: windows
     base: state
-  - type: Icon
-    sprite: Structures/Windows/plastitanium_window_diagonal.rsi
-    state: state0
   - type: Fixtures
     fixtures:
       fix1:
     airBlockedDirection:
     - South
     - East
+
+- type: entity
+  id: PlastitaniumWindowDiagonalIndestructible
+  name: plastitanium window
+  parent: PlastitaniumWindowDiagonalBase
+  suffix: diagonal, indestructible
+
+- type: entity
+  id: PlastitaniumWindowDiagonal
+  name: plastitanium window
+  parent: PlastitaniumWindowDiagonalBase
+  suffix: diagonal
+  components:
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 1000
+      behaviors:
+      - !type:DoActsBehavior
+        acts: [ "Destruction" ]
+    - trigger:
+        !type:DamageTrigger
+        damage: 500
+      behaviors:
+      - !type:PlaySoundBehavior
+        sound:
+          collection: WindowShatter
+      - !type:SpawnEntitiesBehavior
+        spawn:
+          ShardGlassReinforced:
+            min: 1
+            max: 2
+          PartRodMetal:
+            min: 1
+            max: 2
+      - !type:DoActsBehavior
+        acts: [ "Destruction" ]
   - type: DamageVisuals
+    thresholds: [4, 8, 12]
+    damageDivisor: 28
+    trackAllDamage: true
     damageOverlay:
       sprite: Structures/Windows/cracks_diagonal.rsi
+  - type: Repairable
+    fuelCost: 15
+    doAfterDelay: 3
+  - type: Damageable
+    damageContainer: StructuralInorganic
+    damageModifierSet: RGlass