]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Suit storage units (#16128)
authorFlareguy <78941145+Flareguy@users.noreply.github.com>
Sun, 14 May 2023 01:36:46 +0000 (20:36 -0500)
committerGitHub <noreply@github.com>
Sun, 14 May 2023 01:36:46 +0000 (21:36 -0400)
Resources/Prototypes/Catalog/Fills/Crates/antag.yml
Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml
Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml
Resources/Textures/Structures/Storage/suit_storage.rsi/base.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/suit_storage.rsi/closed.png [new file with mode: 0644]
Resources/Textures/Structures/Storage/suit_storage.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Storage/suit_storage.rsi/welded.png [new file with mode: 0644]

index 24f22ebef7f65d7e267aa7e3ce030e11da326d21..e874394eaaf5654e10cc30e27a20fcb9bbf38d03 100644 (file)
@@ -6,7 +6,6 @@
   components:
   - type: StorageFill
     contents:
-      - id: ClothingOuterHardsuitPirateCap
       - id: ClothingNeckCloakPirateCap
       - id: EnergyCutlass
       - id: MicroBombImplanter
index a0f17e0e371f53215b75b1bcd293f72b166a2ac3..772c7013f2c8e504770050e94bb9720c7d6c89c5 100644 (file)
@@ -5,12 +5,6 @@
   components:
   - type: StorageFill
     contents:
-# Should be moved to a suit storage unit when/if they are added.
-      - id: ClothingOuterHardsuitSpatio
-      - id: YellowOxygenTankFilled
-      - id: NitrogenTankFilled
-      - id: ClothingShoesBootsMag
-      - id: ClothingMaskGasExplorer
 # Currently do not function as 'true' mesons, so they're useless for salvagers.
 #      - id: ClothingEyesGlassesMeson
       - id: ClothingBeltUtilityFilled
index 53707fe2d8f35ce4971b4fec95edae0167078eb7..3bb14610d9439120c822b806e57c3ff1ea07ff9a 100644 (file)
@@ -40,8 +40,6 @@
       - id: ClothingHeadHatCaptain
       - id: ClothingNeckCloakCap
       - id: ClothingHandsGlovesCaptain
-      - id: ClothingOuterHardsuitCap
-      - id: ClothingMaskGasCaptain
       - id: WeaponDisabler
       - id: CommsComputerCircuitboard
       - id: ClothingHeadsetAltCommand
   components:
   - type: StorageFill
     contents:
-      - id: ClothingOuterHardsuitEngineeringWhite
-      - id: ClothingMaskBreath
-      - id: OxygenTankFilled
-      - id: NitrogenTankFilled
       - id: ClothingNeckCloakCe
       - id: ClothingEyesGlassesMeson
       - id: ClothingBeltChiefEngineerFilled
       - id: ClothingHeadHatBeretEngineering
-      - id: ClothingShoesBootsMagAdv
       - id: ClothingHandsGlovesColorYellow
       - id: CigarCase
         prob: 0.15
       - id: DoorRemoteEngineering
       - id: RubberStampCE
-      - id: JetpackVoidFilled
       - id: ClothingHeadsetAltEngineering
       - id: BoxEncryptionKeyEngineering
 
       - id: ClothingOuterCoatLabCmo
       - id: ClothingMaskSterile
       - id: ClothingHeadHatBeretCmo
-      - id: ClothingOuterHardsuitMedical
       - id: DiagnoserMachineCircuitboard
       - id: VaccinatorMachineCircuitboard
         prob: 0.25
       - id: CircuitImprinterMachineCircuitboard
       - id: ClothingNeckCloakRd
       - id: ClothingHeadsetMedicalScience
-      - id: ClothingOuterHardsuitRd
       - id: HandTeleporter
       - id: PlushieSlime
         prob: 0.1
         prob: 0.1
       - id: ClothingUniformJumpskirtHoSParadeMale
         prob: 0.1
-      - id: ClothingOuterHardsuitSecurityRed
-      - id: ClothingMaskGasSwat
       - id: ClothingShoeSlippersDuck
         prob: 0.2
       - id: DrinkVacuumFlask
       - id: ClothingUniformJumpsuitHosFormal
       - id: RubberStampHos
       - id: SecurityTechFabCircuitboard
-      - id: JetpackSecurityFilled
       - id: BoxEncryptionKeySecurity
       - id: HoloprojectorSecurity
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
new file mode 100644 (file)
index 0000000..ff0f001
--- /dev/null
@@ -0,0 +1,233 @@
+#SOFTSUITS
+#Basic EVA
+- type: entity
+  id: SuitStorageEVA
+  parent: SuitStorageBase
+  suffix: EVA
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitEVA
+        - id: ClothingHeadHelmetEVA
+        - id: ClothingMaskBreath
+        
+#Prisoner EVA
+- type: entity
+  id: SuitStorageEVAPrisoner
+  parent: SuitStorageBase
+  suffix: Prisoner EVA
+  components:
+  - type: StorageFill
+    contents:
+#        - id: NitrogenTankFilled #there's no emergency nitrogen tank to match yet so i have opted to remove it. call it cost cutting measures
+        - id: EmergencyOxygenTankFilled
+        - id: ClothingOuterHardsuitEVAPrisoner
+        - id: ClothingHeadHelmetEVA
+        - id: ClothingMaskBreath
+
+#Syndicate EVA
+- type: entity
+  id: SuitStorageEVASyndicate
+  parent: SuitStorageBase
+  suffix: Syndicate EVA
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitSyndicate
+        - id: ClothingHeadHelmetSyndicate
+        - id: ClothingMaskGasSyndicate
+
+#Pirate EVA
+- type: entity
+  id: SuitStorageEVAPirate
+  parent: SuitStorageBase
+  suffix: Pirate EVA
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitEVAPrisoner
+        - id: ClothingHeadHelmetEVA
+        - id: ClothingMaskGas
+
+#HARDSUITS
+#Engineering hardsuit
+- type: entity
+  id: SuitStorageEngi
+  parent: SuitStorageBase
+  suffix: Station Engineer
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingShoesBootsMag
+        - id: ClothingOuterHardsuitEngineering
+        - id: ClothingMaskBreath
+
+#Atmospherics hardsuit
+- type: entity
+  id: SuitStorageAtmos
+  parent: SuitStorageBase
+  suffix: Atmospheric Technician
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitAtmos
+        - id: ClothingMaskBreath
+
+#Security hardsuit
+- type: entity
+  id: SuitStorageSec
+  parent: SuitStorageBase
+  suffix: Security
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitSecurity
+        - id: ClothingMaskBreath
+
+#CE's hardsuit
+- type: entity
+  id: SuitStorageCE
+  parent: SuitStorageBase
+  suffix: Chief Engineer
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: JetpackVoidFilled
+        - id: ClothingShoesBootsMagAdv
+        - id: ClothingOuterHardsuitEngineeringWhite
+        - id: ClothingMaskBreath
+
+#CMO's hardsuit
+- type: entity
+  id: SuitStorageCMO
+  parent: SuitStorageBase
+  suffix: Chief Medical Officer
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitMedical
+        - id: ClothingMaskBreathMedical
+
+#RD's hardsuit
+- type: entity
+  id: SuitStorageRD
+  parent: SuitStorageBase
+  suffix: Research Director
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitRd
+        - id: ClothingMaskBreath
+
+#HOS's hardsuit
+- type: entity
+  id: SuitStorageHOS
+  parent: SuitStorageBase
+  suffix: Head of Security
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: JetpackSecurityFilled
+        - id: ClothingOuterHardsuitSecurityRed
+        - id: ClothingMaskGasSwat
+
+#Warden's hardsuit
+- type: entity
+  id: SuitStorageWarden
+  parent: SuitStorageBase
+  suffix: Warden
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitWarden
+        - id: ClothingMaskBreath
+
+#Captain's hardsuit
+- type: entity
+  id: SuitStorageCaptain
+  parent: SuitStorageBase
+  suffix: Captain
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitCap
+        - id: ClothingMaskGasCaptain
+
+#Salvage hardsuit
+- type: entity
+  id: SuitStorageSalv
+  parent: SuitStorageBase
+  suffix: Salvage
+  components:
+  - type: StorageFill
+    contents:
+      - id: NitrogenTankFilled
+      - id: YellowOxygenTankFilled
+      - id: ClothingShoesBootsMag
+      - id: ClothingOuterHardsuitSpatio
+      - id: ClothingMaskGasExplorer
+
+#Blood-red hardsuit
+- type: entity
+  id: SuitStorageSyndie
+  parent: SuitStorageBase
+  suffix: Syndicate Hardsuit
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitSyndie
+        - id: ClothingShoesBootsMagSyndie
+        - id: ClothingMaskGasSyndicate
+
+#Pirate Captain's hardsuit
+- type: entity
+  id: SuitStoragePirateCap
+  parent: SuitStorageBase
+  suffix: Pirate Captain
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitPirateCap
+        - id: ClothingMaskGas
+
+#Wizard
+- type: entity
+  id: SuitStorageWizard
+  parent: SuitStorageBase
+  suffix: Wizard
+  components:
+  - type: StorageFill
+    contents:
+        - id: NitrogenTankFilled
+        - id: OxygenTankFilled
+        - id: ClothingOuterHardsuitWizard
+        - id: ClothingMaskBreath
+        
\ No newline at end of file
index 6c33daa069773f01fdc94ccba4598d5d2c99ce4c..6b12337bf5dba31d2e7187fac807f542ed0ede45 100644 (file)
     - state: welded
       visible: false
       map: ["enum.WeldableLayers.BaseWelded"]
+
+#Base suit storage unit
+#I am terribly sorry for duplicating the closet almost-wholesale, but the game malds at me if I don't so here we are.
+- type: entity
+  id: SuitStorageBase
+  parent: BaseStructureDynamic
+  name: suit storage unit
+  description: A fancy hi-tech storage unit made for storing space suits.
+  components:
+  - type: StaticPrice
+    price: 80
+  - type: ResistLocker
+  - type: Transform
+    noRot: true
+  - type: Sprite
+    noRot: true
+    netsync: false
+    sprite: Structures/Storage/suit_storage.rsi
+    layers:
+    - state: base
+    - state: closed
+      map: ["enum.StorageVisualLayers.Door"]
+    - state: welded
+      visible: false
+      map: ["enum.WeldableLayers.BaseWelded"]
+  - type: MovedByPressure
+  - type: DamageOnHighSpeedImpact
+    damage:
+      types:
+        Blunt: 5
+    soundHit:
+      path: /Audio/Effects/bang.ogg
+  - type: InteractionOutline
+  - type: Physics
+  - type: Fixtures
+    fixtures:
+      fix1:
+        shape:
+          !type:PhysShapeAabb
+          bounds: "-0.25,-0.48,0.25,0.48"
+        density: 145
+        mask:
+        - MachineMask
+        layer:
+        - MachineLayer
+  - type: EntityStorage
+  - type: ContainerContainer
+    containers:
+      entity_storage: !type:Container
+  - type: Weldable
+  - type: PlaceableSurface
+    placeCentered: true
+    isPlaceable: false
+  - type: Damageable
+    damageContainer: Inorganic
+    damageModifierSet: Metallic
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 300
+      behaviors:
+        - !type:DoActsBehavior
+          acts: [ "Destruction" ]
+    - trigger:
+        !type:DamageTrigger
+        damage: 150
+      behaviors:
+      - !type:DoActsBehavior
+        acts: ["Destruction"]
+      - !type:PlaySoundBehavior
+        sound:
+          path: /Audio/Effects/metalbreak.ogg
+      - !type:SpawnEntitiesBehavior
+        spawn:
+          SheetSteel1:
+            min: 1
+            max: 1
+  - type: Appearance
+    visuals:
+    - type: StorageVisualizer
+      state: base
+      state_open: base 
+      state_closed: closed
diff --git a/Resources/Textures/Structures/Storage/suit_storage.rsi/base.png b/Resources/Textures/Structures/Storage/suit_storage.rsi/base.png
new file mode 100644 (file)
index 0000000..d663fd5
Binary files /dev/null and b/Resources/Textures/Structures/Storage/suit_storage.rsi/base.png differ
diff --git a/Resources/Textures/Structures/Storage/suit_storage.rsi/closed.png b/Resources/Textures/Structures/Storage/suit_storage.rsi/closed.png
new file mode 100644 (file)
index 0000000..ca43c4f
Binary files /dev/null and b/Resources/Textures/Structures/Storage/suit_storage.rsi/closed.png differ
diff --git a/Resources/Textures/Structures/Storage/suit_storage.rsi/meta.json b/Resources/Textures/Structures/Storage/suit_storage.rsi/meta.json
new file mode 100644 (file)
index 0000000..a9c1ea2
--- /dev/null
@@ -0,0 +1,20 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Taken from /tg/station commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34 and slightly edited, welded state drawn by Flareguy for Space Station 14",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "base"
+    },
+    {
+      "name": "closed"
+    },
+    {
+      "name": "welded"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Structures/Storage/suit_storage.rsi/welded.png b/Resources/Textures/Structures/Storage/suit_storage.rsi/welded.png
new file mode 100644 (file)
index 0000000..c485f0b
Binary files /dev/null and b/Resources/Textures/Structures/Storage/suit_storage.rsi/welded.png differ