From: Flareguy <78941145+Flareguy@users.noreply.github.com> Date: Sun, 14 May 2023 01:36:46 +0000 (-0500) Subject: Suit storage units (#16128) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=19b5d9253d5045f9ef5b4a67dd7068855035a34b;p=space-station-14.git Suit storage units (#16128) --- diff --git a/Resources/Prototypes/Catalog/Fills/Crates/antag.yml b/Resources/Prototypes/Catalog/Fills/Crates/antag.yml index 24f22ebef7..e874394eaa 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/antag.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/antag.yml @@ -6,7 +6,6 @@ components: - type: StorageFill contents: - - id: ClothingOuterHardsuitPirateCap - id: ClothingNeckCloakPirateCap - id: EnergyCutlass - id: MicroBombImplanter diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml b/Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml index a0f17e0e37..772c7013f2 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml @@ -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 diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 53707fe2d8..3bb14610d9 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -40,8 +40,6 @@ - id: ClothingHeadHatCaptain - id: ClothingNeckCloakCap - id: ClothingHandsGlovesCaptain - - id: ClothingOuterHardsuitCap - - id: ClothingMaskGasCaptain - id: WeaponDisabler - id: CommsComputerCircuitboard - id: ClothingHeadsetAltCommand @@ -98,21 +96,15 @@ 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 @@ -132,7 +124,6 @@ - id: ClothingOuterCoatLabCmo - id: ClothingMaskSterile - id: ClothingHeadHatBeretCmo - - id: ClothingOuterHardsuitMedical - id: DiagnoserMachineCircuitboard - id: VaccinatorMachineCircuitboard prob: 0.25 @@ -157,7 +148,6 @@ - id: CircuitImprinterMachineCircuitboard - id: ClothingNeckCloakRd - id: ClothingHeadsetMedicalScience - - id: ClothingOuterHardsuitRd - id: HandTeleporter - id: PlushieSlime prob: 0.1 @@ -190,8 +180,6 @@ prob: 0.1 - id: ClothingUniformJumpskirtHoSParadeMale prob: 0.1 - - id: ClothingOuterHardsuitSecurityRed - - id: ClothingMaskGasSwat - id: ClothingShoeSlippersDuck prob: 0.2 - id: DrinkVacuumFlask @@ -209,6 +197,5 @@ - 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 index 0000000000..ff0f001afa --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml index 6c33daa069..6b12337bf5 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml @@ -167,3 +167,87 @@ - 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 index 0000000000..d663fd569c 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 index 0000000000..ca43c4f47f 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 index 0000000000..a9c1ea2053 --- /dev/null +++ b/Resources/Textures/Structures/Storage/suit_storage.rsi/meta.json @@ -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 index 0000000000..c485f0b488 Binary files /dev/null and b/Resources/Textures/Structures/Storage/suit_storage.rsi/welded.png differ